From d355bce7e4f64f61c62a7e5f036c9599d37139ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Fri, 11 Aug 2023 11:32:10 +0200 Subject: [PATCH] BUG/MINOR: quic: Missing tasklet (quic_cc_conn_io_cb) memory release (leak) The tasklet responsible of handling the remaining QUIC connection object and its traffic was not released, leading to a memory leak. Furthermore its callback, quic_cc_conn_io_cb(), should return NULL after this tasklet is released. --- src/quic_conn.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/quic_conn.c b/src/quic_conn.c index d0ffc992c..a2e85d8df 100644 --- a/src/quic_conn.c +++ b/src/quic_conn.c @@ -766,6 +766,7 @@ static void quic_release_cc_conn(struct quic_cc_conn *cc_qc) task_destroy(cc_qc->idle_timer_task); cc_qc->idle_timer_task = NULL; + tasklet_free(qc->wait_event.tasklet); free_quic_conn_cids(qc); pool_free(pool_head_quic_cids, cc_qc->cids); cc_qc->cids = NULL; @@ -806,6 +807,7 @@ static struct task *quic_cc_conn_io_cb(struct task *t, void *context, unsigned i quic_release_cc_conn(cc_qc); cc_qc = NULL; qc = NULL; + t = NULL; goto leave; }