diff options
author | brian m. carlson <sandals@crustytoothpaste.net> | 2019-02-19 00:05:25 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-04-01 11:57:39 +0900 |
commit | bcbb44ba053988fcc0d3ddb876c007898f345992 (patch) | |
tree | be83f815e5fdba41bbf1d93093f804b3147b89bf | |
parent | read-cache: read data in a hash-independent way (diff) | |
download | tgif-bcbb44ba053988fcc0d3ddb876c007898f345992.tar.xz |
Git.pm: make hash size independent
The cat_blob function was matching on exactly 40 hex characters. This
won't work with SHA-256, which uses 64-character hex object IDs. While
it should be fine to simply match any number of hex characters since the
output is space delimited, be extra safe by matching either exactly 40
or exactly 64 hex characters.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | perl/Git.pm | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/perl/Git.pm b/perl/Git.pm index d856930b2e..62c472e0ce 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -980,7 +980,7 @@ sub cat_blob { return -1; } - if ($description !~ /^[0-9a-fA-F]{40} \S+ (\d+)$/) { + if ($description !~ /^[0-9a-fA-F]{40}(?:[0-9a-fA-F]{24})? \S+ (\d+)$/) { carp "Unexpected result returned from git cat-file"; return -1; } |