]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: mux-quic: fix possible infinite loop during decoding
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 23 Apr 2025 15:27:24 +0000 (17:27 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 24 Apr 2025 12:15:02 +0000 (14:15 +0200)
With the support of multiple Rx buffers per QCS instance, stream
decoding in qcc_io_recv() has been reworked for the next haproxy
release. An issue appears in a double while loop : a break statement is
used in the inner loop, which is not sufficient as it should instead
exit from the outer one.

Fix this by replacing break with a goto statement.

No need to backport this.

src/mux_quic.c

index 58733a556f0ee8cc46f1646a8eec93803c3e4da6..000113645d0214782cbe36a593c240e09aa25f00 100644 (file)
@@ -2952,10 +2952,11 @@ static int qcc_io_recv(struct qcc *qcc)
                        LIST_DEL_INIT(&qcs->el_recv);
 
                        if (ret <= 0)
-                               break;
+                               goto done;
                }
        }
 
+ done:
        TRACE_LEAVE(QMUX_EV_QCC_RECV, qcc->conn);
        return 0;
 }