From: Frédéric Lécaille Date: Wed, 13 Sep 2023 07:28:10 +0000 (+0200) Subject: BUG/MINOR: quic: Leak of frames to send. X-Git-Tag: v2.9-dev6~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3921bf80c7c2933afbb93ea595b1797bcfc44982;p=thirdparty%2Fhaproxy.git BUG/MINOR: quic: Leak of frames to send. In very rare cases, it is possible that packet are detected as lost, their frames requeued, then the connection is released without releasing for any reason (to be killed because of a sendto() fatal failure for instance. Such frames are lost and never release because the function which release their packet number spaces does not release the frames which are still enqueued to be send. Must be backported as far as 2.6. --- diff --git a/src/quic_tls.c b/src/quic_tls.c index ae5207887f..182b62696d 100644 --- a/src/quic_tls.c +++ b/src/quic_tls.c @@ -86,6 +86,7 @@ void quic_pktns_release(struct quic_conn *qc, struct quic_pktns **pktns) return; quic_pktns_tx_pkts_release(*pktns, qc); + qc_release_pktns_frms(qc, *pktns); quic_free_arngs(qc, &(*pktns)->rx.arngs); LIST_DEL_INIT(&(*pktns)->list); pool_free(pool_head_quic_pktns, *pktns);