[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Lua 5.4.2 crashes where Lua 5.3.6 does not
- From: Andrew Gierth <andrew@...>
- Date: Sat, 19 Dec 2020 10:02:04 +0000
>>>>> "Sean" == Sean Conner <sean@conman.org> writes:
Sean> (gdb) where
Sean> #0 0x0806a7bc in resizebox (L=0x8d9900c, idx=-1, newsize=2048) at lauxlib.c:477
Sean> #1 0x0806a96e in prepbuffsize (B=0xbfa1d448, sz=1, boxidx=-1) at lauxlib.c:546
Sean> #2 0x0806aa41 in luaL_addlstring (B=0xbfa1d448, s=0x8dbd1b0 "\n", l=1) at lauxlib.c:572
Sean> #3 0xb7de62ca in yy_5_CHAR (yy=0xbfa1d400, yytext=0x8dbd1b0 "\n", yyleng=1) at html.i:3
The overwhelmingly most likely cause for the crash here is that you
changed the Lua stack in an unbalanced way between a previous add* call
and this one. resizebox is only hit if the buffer has already overflowed
its static allocation and been moved to a udata on the Lua stack; but
that the value of "box" is NULL implies that something other than a
udata was found at the expected stack index.
This isn't any different between 5.3 and 5.4, but one thing that _did_
change was the default size for the static buffer (in 5.4 it's much
smaller - 512/1024 bytes for 32/64 bit, vs. 4096/8192 bytes for 5.3), so
it's possible that you simply didn't reach the limit on 5.3.
Your issue didn't reproduce for me when I tried it. But I was on a
64-bit system, and the values in your stacktrace suggest a 32-bit
system?
--
Andrew.