From: Christopher Faulet Date: Fri, 16 Feb 2024 14:00:07 +0000 (+0100) Subject: BUG/MEDIUM: applet: Immediately free appctx on early error X-Git-Tag: v3.0-dev4~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cd7e73efae643940153b891d3333b6042db14244;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/applet.c b/src/applet.c index 0525967f51..303d9f7080 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)