From: Aurelien DARRAGON Date: Mon, 20 Mar 2023 15:29:55 +0000 (+0100) Subject: BUG/MINOR: hlua: fix reference leak in hlua_post_init_state() X-Git-Tag: v2.8-dev7~48 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=16d047b615408e05e35f0a655962ff755d6924a4;p=thirdparty%2Fhaproxy.git BUG/MINOR: hlua: fix reference leak in hlua_post_init_state() hlua init function references were not released during hlua_post_init_state(). Hopefully, this function is only used during startup so the resulting leak is not a big deal. Since each init lua function runs precisely once, it is safe to release the ref as soon as the function is restored on the stack. This could be backported to every stable versions. Please note that this commit depends on "MINOR: hlua: add simple hlua reference handling API" --- diff --git a/src/hlua.c b/src/hlua.c index dc9c5f96bc..3962381abd 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -11857,6 +11857,10 @@ int hlua_post_init_state(lua_State *L) list_for_each_entry(init, &hlua_init_functions[hlua_state_id], l) { lua_rawgeti(L, LUA_REGISTRYINDEX, init->function_ref); + /* function ref should be released right away since it was pushed + * on the stack and will not be used anymore + */ + hlua_unref(L, init->function_ref); #if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 504 ret = lua_resume(L, L, 0, &nres);