[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Stack overflow in lsys_load (lua/loadlib.c:134)
- From: Ką Mykolas <kamicc@...>
- Date: Sat, 5 Sep 2020 00:16:06 +0300
Also, funnily, on Musl-C I've got this:
==16325== Conditional jump or move depends on uninitialised value(s)
==16325== at 0x42EC0C: strlen (in /tmp/static_test/musl/lua-5.4.0/src/lua)
==16325== by 0x40E588: luaS_new (lstring.c:265)
==16325== by 0x401F22: lua_pushstring (lapi.c:515)
==16325== by 0x41F82F: lsys_load (loadlib.c:135)
==16325== by 0x41F82F: lookforfunc (loadlib.c:391)
==16325== by 0x41F874: ll_loadlib (loadlib.c:412)
==16325== by 0x4058EC: luaD_call (ldo.c:482)
==16325== by 0x41274A: luaV_execute (lvm.c:1615)
==16325== by 0x41274A: luaV_execute (lvm.c:1615)
==16325== by 0x4059FB: luaD_callnoyield (ldo.c:526)
==16325== by 0x404CD8: luaD_rawrunprotected (ldo.c:148)
==16325== by 0x405CDD: luaD_pcall (ldo.c:749)
==16325== by 0x402B96: lua_pcallk (lapi.c:1023)
==16325== Uninitialised value was created
==16325== at 0x432E81: __expand_heap (in
/tmp/static_test/musl/lua-5.4.0/src/lua)
==16325== by 0x29EB233E9F05FB6F: ???
On Sat, Sep 5, 2020 at 12:06 AM Ką Mykolas <kamicc@gmail.com> wrote:
>
> On Fri, Sep 4, 2020 at 10:58 PM Roberto Ierusalimschy
> <roberto@inf.puc-rio.br> wrote:
> >
> > > > Stack overflow in lsys_load (lua/loadlib.c:134)
> > > >
> > > > [...]
>
> Valgrind on this matter:
>
> > ==15401== Warning: client switching stacks? SP change: 0x1ffeffd8a0 --> 0x1ffe801aa0
> > ==15401== to suppress, use: --max-stackframe=8371712 or greater
> > ==15401== Stack overflow in thread #1: can't grow stack to 0x1ffe801000
> > ==15401==
> > ==15401== Process terminating with default action of signal 11 (SIGSEGV)
> > ==15401== Access not within mapped region at address 0x1FFE801A98
> > ==15401== Stack overflow in thread #1: can't grow stack to 0x1ffe801000
> > ==15401== at 0x40062B6: open_path (dl-load.c:1963)
>
> So, I wonder if it refers to some kind of "optimisation" putting the
> whole darn string onto the stack instead of passing it by the address.