From c72d2c7e5b05b64b1188c0d34cced8ad47b62ebe Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 24 Feb 2022 19:35:05 +0100 Subject: [PATCH] BUILD: stream: fix build warning with older compilers GCC 6 was not very good at value propagation and is often mislead about risks of null derefs. Since 2.6-dev commit 13a35e575 ("MAJOR: conn_stream/ stream-int: move the appctx to the conn-stream"), it sees a risk of null- deref in stream_upgrade_from_cs() after checking cs_conn_mux(cs). Let's disguise the result so that it doesn't complain anymore. The output code is exactly the same. The same method could be used to shut warnings at -O1 that affect the same compiler by the way. --- src/stream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stream.c b/src/stream.c index 37cd79378..23d431233 100644 --- a/src/stream.c +++ b/src/stream.c @@ -278,7 +278,7 @@ int stream_upgrade_from_cs(struct conn_stream *cs, struct buffer *input) struct stream *s = cs_strm(cs); if (cs_conn_mux(cs)) { - const struct mux_ops *mux = cs_conn_mux(cs); + const struct mux_ops *mux = DISGUISE(cs_conn_mux(cs)); if (mux->flags & MX_FL_HTX) s->flags |= SF_HTX;