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 eee13a2..7508b27 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,