]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MAJOR: quic: Really ignore malformed ACK frames.
authorFrédéric Lécaille <flecaille@haproxy.com>
Tue, 29 Aug 2023 12:48:54 +0000 (14:48 +0200)
committerWilly Tarreau <w@1wt.eu>
Mon, 4 Sep 2023 09:29:35 +0000 (11:29 +0200)
commit9077f202511a074cd1ca5a6020664ddcffceb870
treecf2a14b6813d89fbb69ae28eb59d4b40eaee22c2
parent7dad52bdbd6cc5020edcd863a4ce09a5ccf5c613
BUG/MAJOR: quic: Really ignore malformed ACK frames.

If not correctly parsed, an ACK frame must be ignored without any more
treatment. Before this patch an ACK frame could be partially correctly
parsed, then some errors could be detected which leaded newly acknowledged
packets to be released in a wrong way calling free_quic_tx_pkts() called
by qc_parse_ack_frm(). But there is no reason to release such packets because
of a malformed ACK frame.

This patch modifies qc_parse_ack_frm(). The newly acknowledged TX packets is done
in two steps. It first collects the newly acknowledged packet calling
qc_newly_acked_pkts(). Then proceed the same way as before for the treatments of
haproxy TX packets acknowledged by the peer. If the ACK frame could not be fully
parsed, the newly ackowledged packets are replaced back from where they were
detached: the tree of TX packets for their encryption level.

Must be backported as far as 2.6.
src/quic_rx.c