From 3921bf80c7c2933afbb93ea595b1797bcfc44982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Wed, 13 Sep 2023 09:28:10 +0200 Subject: [PATCH] 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. --- src/quic_tls.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/quic_tls.c b/src/quic_tls.c index ae5207887..182b62696 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);