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.
This commit is contained in:
parent
b0e32c6263
commit
d355bce7e4
@ -766,6 +766,7 @@ static void quic_release_cc_conn(struct quic_cc_conn *cc_qc)
|
|||||||
|
|
||||||
task_destroy(cc_qc->idle_timer_task);
|
task_destroy(cc_qc->idle_timer_task);
|
||||||
cc_qc->idle_timer_task = NULL;
|
cc_qc->idle_timer_task = NULL;
|
||||||
|
tasklet_free(qc->wait_event.tasklet);
|
||||||
free_quic_conn_cids(qc);
|
free_quic_conn_cids(qc);
|
||||||
pool_free(pool_head_quic_cids, cc_qc->cids);
|
pool_free(pool_head_quic_cids, cc_qc->cids);
|
||||||
cc_qc->cids = NULL;
|
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);
|
quic_release_cc_conn(cc_qc);
|
||||||
cc_qc = NULL;
|
cc_qc = NULL;
|
||||||
qc = NULL;
|
qc = NULL;
|
||||||
|
t = NULL;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user