From: Junio C Hamano Date: Mon, 10 Sep 2018 17:29:16 +0000 (-0700) Subject: Merge branch 'mk/http-backend-content-length' X-Git-Tag: v2.19.0~3 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/fe468efff533c3c92c174ae4706532c1521c150c?ds=inline;hp=-c Merge branch 'mk/http-backend-content-length' The earlier attempt barfed when given a CONTENT_LENGTH that is set to an empty string. RFC 3875 is fairly clear that in this case we should not read any message body, but we've been reading through to the EOF in previous versions (which did not even pay attention to the environment variable), so keep that behaviour for now in this late update. * mk/http-backend-content-length: http-backend: allow empty CONTENT_LENGTH --- fe468efff533c3c92c174ae4706532c1521c150c diff --combined http-backend.c index 88c38c834b,a1230d7ead..458642ef72 --- a/http-backend.c +++ b/http-backend.c @@@ -353,7 -353,7 +353,7 @@@ static ssize_t get_content_length(void ssize_t val = -1; const char *str = getenv("CONTENT_LENGTH"); - if (str && !git_parse_ssize_t(str, &val)) + if (str && *str && !git_parse_ssize_t(str, &val)) die("failed to parse CONTENT_LENGTH: %s", str); return val; } @@@ -508,13 -508,13 +508,13 @@@ static int show_text_ref(const char *na { const char *name_nons = strip_namespace(name); struct strbuf *buf = cb_data; - struct object *o = parse_object(oid); + struct object *o = parse_object(the_repository, oid); if (!o) return 0; strbuf_addf(buf, "%s\t%s\n", oid_to_hex(oid), name_nons); if (o->type == OBJ_TAG) { - o = deref_tag(o, name, 0); + o = deref_tag(the_repository, o, name, 0); if (!o) return 0; strbuf_addf(buf, "%s\t%s^{}\n", oid_to_hex(&o->oid),