http: eliminate hard-coded constants

Use the_hash_algo to find the right size for parsing pack names. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

brian m. carlson committed May 2, 2018 at 00:25 UTC dd724bcb2f23618b53593230e13c9f352be7a873
1 file changed +7 -6
http.c
+7 -6
@@ -2047,7 +2047,8 @@ int http_get_info_packs(const char *base_url, struct packed_git **packs_head)
2047 int ret = 0, i = 0;
2048 char *url, *data;
2049 struct strbuf buf = STRBUF_INIT;
2050 - unsigned char sha1[20];
2050 + unsigned char hash[GIT_MAX_RAWSZ];
2051 + const unsigned hexsz = the_hash_algo->hexsz;
2052
2053 end_url_with_slash(&buf, base_url);
2054 strbuf_addstr(&buf, "objects/info/packs");
@@ -2063,13 +2064,13 @@ int http_get_info_packs(const char *base_url, struct packed_git **packs_head)
2064 switch (data[i]) {
2065 case 'P':
2066 i++;
2066 - if (i + 52 <= buf.len &&
2067 + if (i + hexsz + 12 <= buf.len &&
2068 starts_with(data + i, " pack-") &&
2068 - starts_with(data + i + 46, ".pack\n")) {
2069 - get_sha1_hex(data + i + 6, sha1);
2070 - fetch_and_setup_pack_index(packs_head, sha1,
2069 + starts_with(data + i + hexsz + 6, ".pack\n")) {
2070 + get_sha1_hex(data + i + 6, hash);
2071 + fetch_and_setup_pack_index(packs_head, hash,
2072 base_url);
2072 - i += 51;
2073 + i += hexsz + 11;
2074 break;
2075 }
2076 default: