From: Frédéric Lécaille Date: Fri, 11 Aug 2023 09:32:10 +0000 (+0200) Subject: BUG/MINOR: quic: Missing tasklet (quic_cc_conn_io_cb) memory release (leak) X-Git-Tag: v2.9-dev3~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d355bce7e4f64f61c62a7e5f036c9599d37139ae;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/quic_conn.c b/src/quic_conn.c index d0ffc992c9..a2e85d8dfd 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; }