From: Mike Pall Date: Thu, 18 Apr 2024 23:44:19 +0000 (+0200) Subject: Fix segment release check in internal memory allocator. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b5e837ac2dfdc0638830c048a47ca9378c504d3;p=thirdparty%2FLuaJIT.git Fix segment release check in internal memory allocator. Thanks to Jinji Zeng. #1179 #1157 --- diff --git a/src/lj_alloc.c b/src/lj_alloc.c index 9adaa0e5..0c0c0c4f 100644 --- a/src/lj_alloc.c +++ b/src/lj_alloc.c @@ -975,7 +975,7 @@ static size_t release_unused_segments(mstate m) mchunkptr p = align_as_chunk(base); size_t psize = chunksize(p); /* Can unmap if first chunk holds entire segment and not pinned */ - if (!cinuse(p) && (char *)p + psize >= base + size - TOP_FOOT_SIZE) { + if (!cinuse(p) && (char *)p + psize == (char *)mem2chunk(sp)) { tchunkptr tp = (tchunkptr)p; if (p == m->dv) { m->dv = 0;