From: Mike Pall Date: Mon, 19 Aug 2024 14:14:55 +0000 (+0200) Subject: Correctly close VM state after early OOM during open. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ca25ee83ec1b0343556cd5783ade449676b4037;p=thirdparty%2FLuaJIT.git Correctly close VM state after early OOM during open. Reported by Assumeru. #1248 --- diff --git a/src/lj_gc.c b/src/lj_gc.c index 9c0d6797..25374d03 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c @@ -564,12 +564,11 @@ void lj_gc_finalize_cdata(lua_State *L) /* Free all remaining GC objects. */ void lj_gc_freeall(global_State *g) { - MSize i, strmask; + MSize i; /* Free everything, except super-fixed objects (the main thread). */ g->gc.currentwhite = LJ_GC_WHITES | LJ_GC_SFIXED; gc_fullsweep(g, &g->gc.root); - strmask = g->strmask; - for (i = 0; i <= strmask; i++) /* Free all string hash chains. */ + for (i = g->strmask; i != ~(MSize)0; i--) /* Free all string hash chains. */ gc_fullsweep(g, &g->strhash[i]); }