From: Willy Tarreau Date: Wed, 29 Apr 2020 09:50:38 +0000 (+0200) Subject: BUG/MEDIUM: http: the "unique-id" sample fetch could crash without a steeam X-Git-Tag: v2.1.5~64 X-Git-Url: http://git.haproxy.org/?a=commitdiff_plain;h=c000f0d1e1228dd64a00538a387e7de3290b0860;p=haproxy-2.1.git BUG/MEDIUM: http: the "unique-id" sample fetch could crash without a steeam Since commit 5f940703b3 ("MINOR: log: Don't depends on a stream to process samples in log-format string") it has become quite obvious that a few sample fetch functions and converters were still heavily dependent on the presence of a stream without testing for it. The unique-id sample fetch function, if called without a stream, will result in a crash. This fix adds a check for the stream's existence, and should be backported to all stable versions up to 1.7. (cherry picked from commit a1062a4de8ba300979cc380b69b284f86dc13853) [wt: adjusted ctx: unique_id was a ptr not an ist in 2.1] Signed-off-by: Willy Tarreau --- diff --git a/src/http_fetch.c b/src/http_fetch.c index 24f6d6a..22797e2 100644 --- a/src/http_fetch.c +++ b/src/http_fetch.c @@ -412,6 +412,9 @@ static int smp_fetch_uniqueid(const struct arg *args, struct sample *smp, const if (LIST_ISEMPTY(&smp->sess->fe->format_unique_id)) return 0; + if (!smp->strm) + return 0; + if (!smp->strm->unique_id) { if ((smp->strm->unique_id = pool_alloc(pool_head_uniqueid)) == NULL) return 0;