]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: h3: missing goto on buf alloc failure
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 15 May 2023 07:35:59 +0000 (09:35 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 15 May 2023 12:57:56 +0000 (14:57 +0200)
The following patch introduced proper error management on buffer
allocation failure :
  0abde9dee69fe151f5f181a34e0782ef840abe53
  BUG/MINOR: mux-quic: properly handle buf alloc failure

However, when decoding an empty STREAM frame with just FIN bit set, this
was not done correctly. Indeed, there is a missing goto statement in
case of a NULL buffer check.

This was reported thanks to coverity analysis. This should fix github
issue #2163.

This must be backported up to 2.6.

src/h3.c

index 99c2d76474ec9181bdd9743fb49b7febf2ab4e15..50e6b4f81c9a9b90bef4926f307b960dcc400fd4 100644 (file)
--- a/src/h3.c
+++ b/src/h3.c
@@ -1061,6 +1061,7 @@ static ssize_t h3_decode_qcs(struct qcs *qcs, struct buffer *b, int fin)
                if (!(appbuf = qc_get_buf(qcs, &qcs->rx.app_buf))) {
                        TRACE_ERROR("data buffer alloc failure", H3_EV_RX_FRAME, qcs->qcc->conn, qcs);
                        h3c->err = H3_INTERNAL_ERROR;
+                       goto err;
                }
 
                htx = htx_from_buf(appbuf);