]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: quic: Wrong largest acked packet number parsing
authorFrédéric Lécaille <flecaille@haproxy.com>
Wed, 17 Nov 2021 15:16:04 +0000 (16:16 +0100)
committerFrédéric Lécaille <flecaille@haproxy.com>
Fri, 19 Nov 2021 13:37:35 +0000 (14:37 +0100)
When we have already received ACK frames with the same largest packet
number, this is not an error at all. In this case, we must continue
to parse the ACK current frame.

src/xprt_quic.c

index eee13a26f166b3ddd22b444e1e711b8ac9acaece..7508b276bbc79d88634d22e14a3f782e6296c952 100644 (file)
@@ -1511,11 +1511,11 @@ static inline int qc_parse_ack_frm(struct quic_frame *frm, struct ssl_sock_ctx *
                if (!largest_node) {
                        TRACE_DEVEL("Largest acked packet not found",
                                    QUIC_EV_CONN_PRSAFRM, ctx->conn);
-                       goto err;
                }
-
-               time_sent = eb64_entry(&largest_node->node,
-                                      struct quic_tx_packet, pn_node)->time_sent;
+               else {
+                       time_sent = eb64_entry(&largest_node->node,
+                                              struct quic_tx_packet, pn_node)->time_sent;
+               }
        }
 
        TRACE_PROTO("ack range", QUIC_EV_CONN_PRSAFRM,