From: Frédéric Lécaille Date: Fri, 22 Jul 2022 14:27:44 +0000 (+0200) Subject: BUG/MAJOR: quic: Useless resource intensive loop qc_ackrng_pkts() X-Git-Tag: v2.7-dev3~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=843399fd451ac0dd22dd4ed8269cf289c16cf045;p=thirdparty%2Fhaproxy.git BUG/MAJOR: quic: Useless resource intensive loop qc_ackrng_pkts() This usless loop should have been removed a long time ago. As it is CPU resource intensive, it could trigger the watchdog. Must be backported to 2.6. --- diff --git a/src/xprt_quic.c b/src/xprt_quic.c index 2c66058732..4a77db16a6 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -1602,15 +1602,7 @@ static inline struct eb64_node *qc_ackrng_pkts(struct quic_conn *qc, struct eb64_node *node; struct quic_tx_packet *pkt; - if (largest_node) - node = largest_node; - else { - node = eb64_lookup(pkts, largest); - while (!node && largest > smallest) { - node = eb64_lookup(pkts, --largest); - } - } - + node = largest_node ? largest_node : eb64_lookup_le(pkts, largest); while (node && node->key >= smallest) { struct quic_frame *frm, *frmbak;