]> git.kaiwu.me - haproxy.git/commitdiff
BUG/MINOR: http-htx: Don't normalize emtpy path for OPTIONS requests
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 29 Apr 2026 13:20:50 +0000 (15:20 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 29 Apr 2026 13:26:13 +0000 (15:26 +0200)
When the scheme-based normalization is performed, an empty path is
normalized to "/". But as stated in RFC9110#4.2.3, this must not be applied
on OPTIONS requests.

So let's fix the issue by adding a test on the method.

Thanks to @zhanhb for the bug report and the analysis.

This patch should fix the issue #3352. It must be backported as far as 3.0.

src/http_htx.c

index a0f7fc318aad7c121077c2ce29dda7100f6dabc0..c870fa11b7527c350b634f9f7d00ede492c6dc4e 100644 (file)
@@ -1867,7 +1867,7 @@ int http_scheme_based_normalize(struct htx *htx)
                normalize = 1;
        }
 
-       if (!isttest(path)) {
+       if (!isttest(path) && sl->info.req.meth != HTTP_METH_OPTIONS) {
                path = ist("/");
                normalize = 1;
        }