From: Amaury Denoyelle Date: Wed, 8 Dec 2021 14:51:04 +0000 (+0100) Subject: MINOR: h3: fix possible invalid dereference on htx parsing X-Git-Tag: v2.6-dev1~297 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7059ebc095a563536095028dd9889e5aaba6c2c6;p=thirdparty%2Fhaproxy.git MINOR: h3: fix possible invalid dereference on htx parsing The htx variable is only initialized if we have received a HTTP/3 HEADERS frame. Else it must not be dereferenced. This should fix the compilation on CI with gcc. src/h3.c: In function ‘h3_decode_qcs’: src/h3.c:224:14: error: ‘htx’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 224 | htx->flags |= HTX_FL_EOM --- diff --git a/src/h3.c b/src/h3.c index 970b95752d..79d7460015 100644 --- a/src/h3.c +++ b/src/h3.c @@ -100,7 +100,7 @@ static int h3_decode_qcs(struct qcs *qcs, int fin, void *ctx) { struct buffer *rxbuf = &qcs->rx.buf; struct h3 *h3 = ctx; - struct htx *htx; + struct htx *htx = NULL; struct htx_sl *sl; struct conn_stream *cs; struct http_hdr list[global.tune.max_http_hdr]; @@ -220,8 +220,10 @@ static int h3_decode_qcs(struct qcs *qcs, int fin, void *ctx) b_del(rxbuf, flen); } - if (fin && !b_data(rxbuf)) - htx->flags |= HTX_FL_EOM; + if (htx) { + if (fin && !b_data(rxbuf)) + htx->flags |= HTX_FL_EOM; + } return 0;