On 24 April 2018 at 01:39, brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> wrote: > Use the_hash_algo to find the right size for parsing pack names. > > Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> > --- > http.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/http.c b/http.c > index 3034d10b68..ec70676748 100644 > --- a/http.c > +++ b/http.c > @@ -2047,7 +2047,8 @@ int http_get_info_packs(const char *base_url, struct packed_git **packs_head) > int ret = 0, i = 0; > char *url, *data; > struct strbuf buf = STRBUF_INIT; > - unsigned char sha1[20]; > + unsigned char hash[GIT_MAX_RAWSZ]; > + const unsigned hexsz = the_hash_algo->hexsz; > > end_url_with_slash(&buf, base_url); > strbuf_addstr(&buf, "objects/info/packs"); > @@ -2063,11 +2064,11 @@ int http_get_info_packs(const char *base_url, struct packed_git **packs_head) > switch (data[i]) { > case 'P': > i++; > - if (i + 52 <= buf.len && > + if (i + hexsz + 12 <= buf.len && > starts_with(data + i, " pack-") && > - starts_with(data + i + 46, ".pack\n")) { > - get_sha1_hex(data + i + 6, sha1); > - fetch_and_setup_pack_index(packs_head, sha1, > + starts_with(data + i + hexsz + 6, ".pack\n")) { > + get_sha1_hex(data + i + 6, hash); > + fetch_and_setup_pack_index(packs_head, hash, > base_url); > i += 51; s/51/hexsz + 11/ ?