From 16d047b615408e05e35f0a655962ff755d6924a4 Mon Sep 17 00:00:00 2001 From: Aurelien DARRAGON Date: Mon, 20 Mar 2023 16:29:55 +0100 Subject: [PATCH] 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" --- src/hlua.c | 4 ++++ 1 file changed, 4 insertions(+) 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); -- 2.47.3