Skip to content

Commit

Permalink
http: update curl http/2 info matching for curl 8.3.0
Browse files Browse the repository at this point in the history
To redact header lines in http/2 curl traces, we have to parse past some
prefix bytes that curl sticks in the info lines it passes to us. That
changed once already, and we adapted in db30130 (http: handle both
"h2" and "h2h3" in curl info lines, 2023-06-17).

Now it has changed again, in curl's fbacb14c4 (http2: cleanup trace
messages, 2023-08-04), which was released in curl 8.3.0. Running a build
of git linked against that version will fail to redact the trace (and as
before, t5559 notices and complains).

The format here is a little more complicated than the other ones, as it
now includes a "stream id". This is not constant but is always numeric,
so we can easily parse past it.

We'll continue to match the old versions, of course, since we want to
work with many different versions of curl. We can't even select one
format at compile time, because the behavior depends on the runtime
version of curl we use, not the version we build against.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
peff authored and dscho committed Nov 3, 2023
1 parent 0695639 commit 67441f9
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions http.c
Original file line number Diff line number Diff line change
Expand Up @@ -765,6 +765,8 @@ static int redact_sensitive_header(struct strbuf *header, size_t offset)

static int match_curl_h2_trace(const char *line, const char **out)
{
const char *p;

/*
* curl prior to 8.1.0 gives us:
*
Expand All @@ -776,6 +778,18 @@ static int match_curl_h2_trace(const char *line, const char **out)
skip_iprefix(line, "h2 [", out))
return 1;

/*
* curl 8.3.0 uses:
* [HTTP/2] [<stream-id>] [<header-name>: <header-val>]
* where <stream-id> is numeric.
*/
if (skip_iprefix(line, "[HTTP/2] [", &p)) {
while (isdigit(*p))
p++;
if (skip_prefix(p, "] [", out))
return 1;
}

return 0;
}

Expand Down

0 comments on commit 67441f9

Please sign in to comment.