mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-25 12:43:09 +00:00
Fix dangling c pointer to lua string value
Lua string object referenced by C pointer from lua_tolstring() was
removed from stack by lua_settop(L,0).
Lua 5.3 Reference Manual says:
> Because Lua has garbage collection, there is no guarantee that the
> pointer returned by lua_tolstring will be valid after the
> corresponding Lua value is removed from the stack.
That is it.
Introduced in commit 9937081854.
This commit is contained in:
@@ -572,7 +572,7 @@ _luaseri_unpack(lua_State *L) {
|
|||||||
return luaL_error(L, "deserialize null pointer");
|
return luaL_error(L, "deserialize null pointer");
|
||||||
}
|
}
|
||||||
|
|
||||||
lua_settop(L,0);
|
lua_settop(L,1);
|
||||||
struct read_block rb;
|
struct read_block rb;
|
||||||
rball_init(&rb, buffer, len);
|
rball_init(&rb, buffer, len);
|
||||||
|
|
||||||
@@ -591,7 +591,7 @@ _luaseri_unpack(lua_State *L) {
|
|||||||
|
|
||||||
// Need not free buffer
|
// Need not free buffer
|
||||||
|
|
||||||
return lua_gettop(L);
|
return lua_gettop(L) - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|||||||
Reference in New Issue
Block a user