]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: h1: Don't compare host and authority if only h1 headers are parsed
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 4 May 2020 07:01:45 +0000 (09:01 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 4 May 2020 07:27:01 +0000 (09:27 +0200)
When only request headers are parsed, the host header should not be compared to
the request authority because no start-line was parsed. Thus there is no
authority.

Till now this bug was hidden because this parsing mode was only used for the
response in the FCGI multiplexer. Since the HTTP checks refactoring, the request
headers may now also be parsed without the start-line.

This patch fixes the issue #610. It must be backported to 2.1.

src/h1.c

index 7513773c8155024a865b9cce5be5e10d4756e3ee..53da12a29a092388ffc35172f589e098a15da58c 100644 (file)
--- a/src/h1.c
+++ b/src/h1.c
@@ -830,7 +830,7 @@ int h1_headers_to_hdr_list(char *start, const char *stop,
                                                break;
                                        }
                                }
-                               else if (!(h1m->flags & H1_MF_RESP) && isteqi(n, ist("host"))) {
+                               else if (!(h1m->flags & (H1_MF_HDRS_ONLY|H1_MF_RESP)) && isteqi(n, ist("host"))) {
                                        if (host_idx == -1) {
                                                struct ist authority;