From cd7e73efae643940153b891d3333b6042db14244 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 16 Feb 2024 15:00:07 +0100 Subject: [PATCH] BUG/MEDIUM: applet: Immediately free appctx on early error When an error is triggered during the applet initialization, a dedicated function is called to release it. Indeed, in this case, because the applet was not initialized, the ->release callback must not be called. However, because the init stage may be delayed to be performed during the first applet wakeup, we must also take care to not rely on the default appctx_free() function, to immediately release the applet. Otherwise, if the error happens in a delayed init stage, the applet is never released. This patch partially fix the issue #2451. It must be backported as far as 2.6. --- src/applet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/applet.c b/src/applet.c index 0525967f5..303d9f708 100644 --- a/src/applet.c +++ b/src/applet.c @@ -340,7 +340,7 @@ void appctx_free_on_early_error(struct appctx *appctx) stream_free(appctx_strm(appctx)); return; } - appctx_free(appctx); + __appctx_free(appctx); } void appctx_free(struct appctx *appctx)