Re: [PATCH 21/41] http: eliminate hard-coded constants
- From
- Martin Ågren <martin.agren@gmail.com>
- Date
- Apr 24, 2018, 09:53 UTC
- Message-ID
- <CAN0heSoCsFYqDmwTRCzh2FGDnOghBqVBTCOa7yEw0jtQ3LxDbA@mail.gmail.com>
- In-Reply-To
- <20180423233951.276447-22-sandals@crustytoothpaste.net>
On 24 April 2018 at 01:39, brian m. carlson <sandals@crustytoothpaste.net> wrote:
Show 36 quoted lines
> Use the_hash_algo to find the right size for parsing pack names.
>
> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
> ---
> 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/ ?