aboutsummaryrefslogtreecommitdiff
path: root/ldo.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2020-11-08 11:52:26 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2020-11-08 11:52:26 -0300
commitd28265256110a0c5437247d443ddedc2a7aab116 (patch)
treee1aacb5eaa1ef67127aa8206e85eee32d36697be /ldo.c
parent58216600eba27d472de33dbb89e2f3e629bf8a59 (diff)
downloadlua-d28265256110a0c5437247d443ddedc2a7aab116.tar.gz
lua-d28265256110a0c5437247d443ddedc2a7aab116.tar.bz2
lua-d28265256110a0c5437247d443ddedc2a7aab116.zip
Bug when growing a stack
When a stack grows, its extra area can be in use, and it becomes part of the common area. So, the extra area must be kept correct all the times. (Bug introduced by commit 5aa36e894f5.)
Diffstat (limited to '')
-rw-r--r--ldo.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ldo.c b/ldo.c
index a60972b2..4b55c31c 100644
--- a/ldo.c
+++ b/ldo.c
@@ -192,7 +192,7 @@ int luaD_reallocstack (lua_State *L, int newsize, int raiseerror) {
192 else return 0; /* do not raise an error */ 192 else return 0; /* do not raise an error */
193 } 193 }
194 for (; lim < newsize; lim++) 194 for (; lim < newsize; lim++)
195 setnilvalue(s2v(newstack + lim)); /* erase new segment */ 195 setnilvalue(s2v(newstack + lim + EXTRA_STACK)); /* erase new segment */
196 correctstack(L, L->stack, newstack); 196 correctstack(L, L->stack, newstack);
197 L->stack = newstack; 197 L->stack = newstack;
198 L->stack_last = L->stack + newsize; 198 L->stack_last = L->stack + newsize;