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: