]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
FFI: Avoid dangling cts->L.
authorMike Pall <mike>
Mon, 10 Nov 2025 17:15:11 +0000 (18:15 +0100)
committerMike Pall <mike>
Mon, 10 Nov 2025 17:15:11 +0000 (18:15 +0100)
Reported by ZumiKua. #1405

src/lj_state.c

index ecf1519865e912c346b2ca07e03e45c50338a945..18a55e7227e19deac2b14d891025e7f79c917d3f 100644 (file)
@@ -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);