]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: http-fetch: Make method smp safe if headers were already forwarded
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 15 Apr 2021 07:28:02 +0000 (09:28 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 19 Apr 2021 06:31:05 +0000 (08:31 +0200)
When method sample fetch is called, if an exotic method is found
(HTTP_METH_OTHER), when smp_prefetch_htx() is called, we must be sure the
start-line is still there. Otherwise, HAproxy may crash because of a NULL
pointer dereference, for instance if the method sample fetch is used inside
a unique-id format string. Indeed, the unique id may be generated when the
log message is emitted. At this stage, the request channel is empty.

This patch must be backported as far as 2.0. But the bug exists in all
stable versions for the legacy HTTP mode too. Thus it must be adapted to the
legacy HTTP mode and backported to all other stable versions.

src/http_fetch.c

index 0d2be7ea40df755021d851a5f4f3edbfd5f9417f..020b25fcf571a985d2287fb3cb697188c7ff1d0d 100644 (file)
@@ -342,7 +342,7 @@ static int smp_fetch_meth(const struct arg *args, struct sample *smp, const char
                        return 0;
                }
 
-               htx = smp_prefetch_htx(smp, chn, NULL, 0);
+               htx = smp_prefetch_htx(smp, chn, NULL, 1);
                if (!htx)
                        return 0;