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.
This commit is contained in:
Christopher Faulet 2024-02-16 15:00:07 +01:00
parent 6a92fc704e
commit cd7e73efae

View File

@ -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)