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
This commit is contained in:
Amaury Denoyelle 2021-12-08 15:51:04 +01:00
parent a842ca1fca
commit 7059ebc095

View File

@ -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;