Skip to content

Commit

Permalink
chore(patches): fix luajit segment release check in internal memory a…
Browse files Browse the repository at this point in the history
…llocator

### Summary

See: LuaJIT/LuaJIT@9b5e837
Signed-off-by: Aapo Talvensaari <[email protected]>
  • Loading branch information
bungle committed Jun 17, 2024
1 parent 3c0aa60 commit b3df3f8
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
From 9b5e837ac2dfdc0638830c048a47ca9378c504d3 Mon Sep 17 00:00:00 2001
From: Mike Pall <mike>
Date: Fri, 19 Apr 2024 01:44:19 +0200
Subject: [PATCH] Fix segment release check in internal memory allocator.

Thanks to Jinji Zeng. #1179 #1157
---
src/lj_alloc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bundle/LuaJIT-2.1-20231117/src/lj_alloc.c b/bundle/LuaJIT-2.1-20231117/src/lj_alloc.c
index 9adaa0e5bd..0c0c0c4f4c 100644
--- a/bundle/LuaJIT-2.1-20231117/src/lj_alloc.c
+++ b/bundle/LuaJIT-2.1-20231117/src/lj_alloc.c
@@ -1057,7 +1057,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;
1 change: 1 addition & 0 deletions t/01-pdk/16-rl-ctx.t
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ X-2: 2
[error]
=== TEST 3: should work in header_filter phase
--- http_config eval: $t::Util::HttpConfig
--- config
Expand Down

0 comments on commit b3df3f8

Please sign in to comment.