]> git.kaiwu.me - haproxy.git/commit
BUG/MEDIUM: h3: split absolute URIs like the HTTP analysers do on output
authorOlivier Houchard <ohouchard@haproxy.com>
Wed, 7 Oct 2026 09:20:11 +0000 (11:20 +0200)
committerOlivier Houchard <cognet@ci0.org>
Mon, 19 Oct 2026 18:56:23 +0000 (20:56 +0200)
commit4f0076be836f2a80d5aad09a4fe17f745d7c50b8
tree4726f7901127e5d4a2dab8e110fa3631cafb4a7d
parent6982230035aa12260c945fe0fb5aa3e7998b33a0
BUG/MEDIUM: h3: split absolute URIs like the HTTP analysers do on output

h3_req_headers_send() derived :authority and :path from absolute-form
URIs with the same flaw as the H2 mux, fixed by the previous commit:
the authority ended at the first '/' instead of the first '/', '?' or
'#' (RFC3986#3.2), the userinfo was not stripped, and an empty path
was sent as an empty :path. A request evaluated by haproxy for one
host/path could be delivered to an H3 server with another one,
bypassing host and path based rules.

Now the authority is extracted like http_parse_authority() does, the
userinfo is stripped, and :path always starts with a '/' (or is '*'
for OPTIONS). As H3 backends are still experimental, the impact is
limited.

This was introduced by commit 235e818fa ("MINOR: h3: complete HTTP/3
request scheme encoding") in 3.3. Must be backported as far as 3.3.
src/h3.c