From 8347f27221a3cdeae5e86b2756859e18b34e098a Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Tue, 29 Mar 2022 14:46:55 +0200 Subject: [PATCH] BUG/MINOR: h3: release resources on close Implement the release app-ops ops for H3 layer. This is used to clean up uni-directional streams and the h3 context. This prevents a memory leak on H3 resources for each connection. --- src/h3.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/h3.c b/src/h3.c index 463c1318a..4d373f5d9 100644 --- a/src/h3.c +++ b/src/h3.c @@ -892,6 +892,15 @@ static int h3_init(struct qcc *qcc) return 0; } +static void h3_release(void *ctx) +{ + struct h3 *h3 = ctx; + + h3_uqs_release_all(h3); + h3_uqs_tasklets_release(h3); + pool_free(pool_head_h3, h3); +} + /* HTTP/3 application layer operations */ const struct qcc_app_ops h3_ops = { .init = h3_init, @@ -899,4 +908,5 @@ const struct qcc_app_ops h3_ops = { .decode_qcs = h3_decode_qcs, .snd_buf = h3_snd_buf, .finalize = h3_finalize, + .release = h3_release, };