From: Mike Pall Date: Mon, 10 Nov 2025 17:15:11 +0000 (+0100) Subject: FFI: Avoid dangling cts->L. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c94312d348e3530b369b4e517fce4c65df6cd270;p=thirdparty%2FLuaJIT.git FFI: Avoid dangling cts->L. Reported by ZumiKua. #1405 --- diff --git a/src/lj_state.c b/src/lj_state.c index ecf15198..18a55e72 100644 --- a/src/lj_state.c +++ b/src/lj_state.c @@ -304,6 +304,10 @@ lua_State *lj_state_new(lua_State *L) void LJ_FASTCALL lj_state_free(global_State *g, lua_State *L) { lua_assert(L != mainthread(g)); +#if LJ_HASFFI + if (ctype_ctsG(g) && ctype_ctsG(g)->L == L) /* Avoid dangling cts->L. */ + ctype_ctsG(g)->L = mainthread(g); +#endif lj_func_closeuv(L, tvref(L->stack)); lua_assert(gcref(L->openupval) == NULL); lj_mem_freevec(g, tvref(L->stack), L->stacksize, TValue);