summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Lécaille <flecaille@haproxy.com>2021-11-16 10:54:19 +0100
committerFrédéric Lécaille <flecaille@haproxy.com>2021-11-19 14:37:35 +0100
commit0e25783d47edfc8efeb53a3c1a93aca270af1890 (patch)
tree98db49eab8e32c0f74c97b0dee5d89121562cd77
parentf67b35620e9310f446923312ba0ce765359f8a47 (diff)
downloadhaproxy-0e25783d47edfc8efeb53a3c1a93aca270af1890.tar.gz
MINOR: quic: Wrong ACK range building
When adding a range, if no "lower" range was present in the ack range root for the packet number space concerned, we did not check if the new added range could overlap the next one. This leaded haproxy to crash when encoding negative integer when building ACK frames. This bug was revealed thanks to "multi_packet_client_hello" QUIC tracker test which makes a client send two first Initial packets out of order.
-rw-r--r--src/xprt_quic.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/xprt_quic.c b/src/xprt_quic.c
index d4511609d..0407cc716 100644
--- a/src/xprt_quic.c
+++ b/src/xprt_quic.c
@@ -2592,6 +2592,8 @@ int quic_update_ack_ranges_list(struct quic_arngs *arngs,
new_node = quic_insert_new_range(arngs, ar);
if (!new_node)
return 0;
+
+ new = &new_node->first;
}
else {
struct quic_arng_node *le_ar =