Re: [PATCH v4] http-backend: allow empty CONTENT_LENGTH
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Sep 10, 2018, 05:25 UTC
- Message-ID
- <20180910052558.GB55941@aiede.svl.corp.google.com>
- In-Reply-To
- <20180909041016.23980-1-max@max630.net>
Max Kirillov wrote:
> Reported-By: Jelmer Vernooij <jelmer@jelmer.uk> > Authored-by: Jeff King <peff@peff.net> > Signed-off-by: Max Kirillov <max@max630.net>
Nit: for this kind of case of forwarding someone else's patch, we put a From field at the beginning of the body of the message. "git format-patch" can produce a message with that format if you commit with 'git commit --author="Someone Else <person@example.com>"' and run format-patch with --from="My Name <me@example.com>". More details are in the DISCUSSION section of git-format-patch(1).
As with v3, since v2 is already in "next" this should go incremental.
[...]
Show 21 quoted lines
> --- a/http-backend.c
> +++ b/http-backend.c
> @@ -353,8 +353,28 @@ 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))
> - die("failed to parse CONTENT_LENGTH: %s", str);
> + if (!str) {
> + /*
> + * RFC3875 says this must mean "no body", but in practice we
> + * receive chunked encodings with no CONTENT_LENGTH. Tell the
> + * caller to read until EOF.
> + */
> + val = -1;
> + } else if (!*str) {
> + /*
> + * An empty length should be treated as "no body" according to
> + * RFC3875, and this seems to hold in practice.
> + */
> + val = 0;Are there example callers that this version fixes? Where can I read more, or what can I run to experience it?
For example, v2.19.0-rc0~45^2~2 (http-backend: respect CONTENT_LENGTH as specified by rfc3875, 2018-06-10) mentions IIS/Windows; does IIS make use of this distinction?
Thanks, Jonathan