[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: LuaJIT segfault
- From: Pierre Chapuis <catwell@...>
- Date: Tue, 08 Nov 2011 15:18:44 +0100
On 08.11.2011 14:35, Mike Pall wrote:
No, it's really two steps in one, like malloc() + memcpy(). If you
don't want to create the space for the extra \0, simply use:
local l = #str
local s = ffi.new("char[?]", l)
ffi.copy(s, str, l)
-- Don't use ffi.copy(s, str), since that would copy the \0, too.
But what I find the most strange is that the segfault doesn't happen
at that line, it happens later when the memory is garbage collected.
The extra byte written beyond the end of the array trashes the
memory allocator info.
OK, that explains it, thanks.