]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: quic: Wrong ACK range building
authorFrédéric Lécaille <flecaille@haproxy.com>
Tue, 16 Nov 2021 09:54:19 +0000 (10:54 +0100)
committerFrédéric Lécaille <flecaille@haproxy.com>
Fri, 19 Nov 2021 13:37:35 +0000 (14:37 +0100)
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.

src/xprt_quic.c

index d4511609dcea92221ee9ed5fbc5f36d2058b1de0..0407cc716864ac7a1ca854b6a9475d41dacf3a36 100644 (file)
@@ -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 =