Re: [PATCH 21/41] http: eliminate hard-coded constants

2018-04-24 Thread brian m. carlson
On Wed, Apr 25, 2018 at 08:44:19AM +0900, Junio C Hamano wrote:
> Martin Ågren  writes:
> 
> >> 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/ ?
> 
> Quite right.

Good point.  Will fix.
-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204


signature.asc
Description: PGP signature


Re: [PATCH 21/41] http: eliminate hard-coded constants

2018-04-24 Thread Junio C Hamano
Martin Ågren  writes:

>> 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/ ?

Quite right.


Re: [PATCH 21/41] http: eliminate hard-coded constants

2018-04-24 Thread Martin Ågren
On 24 April 2018 at 01:39, brian m. carlson
 wrote:
> Use the_hash_algo to find the right size for parsing pack names.
>
> Signed-off-by: brian m. carlson 
> ---
>  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(, base_url);
> strbuf_addstr(, "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/ ?


[PATCH 21/41] http: eliminate hard-coded constants

2018-04-23 Thread brian m. carlson
Use the_hash_algo to find the right size for parsing pack names.

Signed-off-by: brian m. carlson 
---
 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(, base_url);
strbuf_addstr(, "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;
break;