diff options
author | Frédéric Lécaille <flecaille@haproxy.com> | 2021-11-16 10:54:19 +0100 |
---|---|---|
committer | Frédéric Lécaille <flecaille@haproxy.com> | 2021-11-19 14:37:35 +0100 |
commit | 0e25783d47edfc8efeb53a3c1a93aca270af1890 (patch) | |
tree | 98db49eab8e32c0f74c97b0dee5d89121562cd77 | |
parent | f67b35620e9310f446923312ba0ce765359f8a47 (diff) | |
download | haproxy-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.c | 2 |
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 = |