On Tue, Feb 12 2019, brian m. carlson wrote:

> Change one hard-coded use of the constant 40 to a reference to
> the_hash_algo.  In addition, switch a use of get_oid_hex to
> parse_oid_hex to avoid the need to use a constant.
>
> Signed-off-by: brian m. carlson <sand...@crustytoothpaste.net>
> ---
>  remote-curl.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/remote-curl.c b/remote-curl.c
> index bb7421023b..8395b71bbb 100644
> --- a/remote-curl.c
> +++ b/remote-curl.c
> @@ -249,7 +249,7 @@ static struct ref *parse_info_refs(struct discovery 
> *heads)
>               if (data[i] == '\t')
>                       mid = &data[i];
>               if (data[i] == '\n') {
> -                     if (mid - start != 40)
> +                     if (mid - start != the_hash_algo->hexsz)
>                               die("%sinfo/refs not valid: is this a git 
> repository?",
>                                   url.buf);
>                       data[i] = 0;

Similar to my comment on 28/31 I may be missing something, but this is
the part where we're parsing the ref advertisement from a remote
repository, which may e.g. be SHA-1, and our local "the hash algo" may
be SHA-256, no?

So isn't this a point where we need to accept both, and parse it into
some structure where we mark it as either/or SHA-1 or SHA-256, and late
or consult SHA-1<->SHA-256 lookup tables etc.?

Reply via email to