Skip to content

Commit

Permalink
Fix LUA garbage collector (CVE-2024-46981) (#1513)
Browse files Browse the repository at this point in the history
Reset GC state before closing the lua VM to prevent user data to be
wrongly freed while still might be used on destructor callbacks.

Created and publish by Redis in their OSS branch.

Signed-off-by: Madelyn Olson <[email protected]>
Co-authored-by: YaacovHazan <[email protected]>
  • Loading branch information
madolson and YaacovHazan authored Jan 6, 2025
1 parent 7977c55 commit 4ffd3eb
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions src/eval.c
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,7 @@ void scriptingInit(int setup) {
void freeLuaScriptsSync(dict *lua_scripts, list *lua_scripts_lru_list, lua_State *lua) {
dictRelease(lua_scripts);
listRelease(lua_scripts_lru_list);
lua_gc(lctx.lua, LUA_GCCOLLECT, 0);
lua_close(lua);

#if !defined(USE_LIBC)
Expand Down

0 comments on commit 4ffd3eb

Please sign in to comment.