X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=remote-curl.c;h=a1bf4f68c77d9e3b46fe2008a00c21b08b754060;hb=1d9f0b79a0f568c4d40703ff223b8ea80abcb086;hp=8bba57270b00b72c7e70fe749880a29c1ddfea1f;hpb=b72e90712eb0e802b232ad4c88460d04279c7111;p=thirdparty%2Fgit.git diff --git a/remote-curl.c b/remote-curl.c index 8bba57270b..a1bf4f68c7 100644 --- a/remote-curl.c +++ b/remote-curl.c @@ -250,7 +250,7 @@ static struct ref *parse_info_refs(struct discovery *heads) if (data[i] == '\t') mid = &data[i]; if (data[i] == '\n') { - if (mid - start != 40) + if (mid - start != the_hash_algo->hexsz) die(_("%sinfo/refs not valid: is this a git repository?"), transport_anonymize_url(url.buf)); data[i] = 0; @@ -1114,12 +1114,13 @@ static void parse_fetch(struct strbuf *buf) const char *name; struct ref *ref; struct object_id old_oid; + const char *q; - if (get_oid_hex(p, &old_oid)) + if (parse_oid_hex(p, &old_oid, &q)) die(_("protocol error: expected sha/ref, got %s'"), p); - if (p[GIT_SHA1_HEXSZ] == ' ') - name = p + GIT_SHA1_HEXSZ + 1; - else if (!p[GIT_SHA1_HEXSZ]) + if (*q == ' ') + name = q + 1; + else if (!*q) name = ""; else die(_("protocol error: expected sha/ref, got %s'"), p);