Re: [PATCH 30/31] Git.pm: make hash size independent
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Feb 12, 2019, 10:59 UTC
- Message-ID
- <87zhr1jmr4.fsf@evledraar.gmail.com>
- In-Reply-To
- <20190212012256.1005924-31-sandals@crustytoothpaste.net>
On Tue, Feb 12 2019, brian m. carlson wrote:
Show 24 quoted lines
> 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>
> ---
> perl/Git.pm | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> 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;
> }The gitweb code doesn't load Git.pm now, but does anyone know a reason for why we'd avoid any perl/* dependency in the gitweb code? If not the regex here & in gitweb could be factored into e.g. a tiny Git::OID library which would either just expose a $GIT::OID_REGEX, or something like the sort of interface (might not be worth it) that I suggested in my feedback to 31/31.