|
Am 17.07.2015 um 19:57 schröbte Karl Skomski:
I played around with lua + libfuzzer and can't continue because it always stops because of the sheer numbers of luaL_loadbuffer calls results into a heap-buffer-overflow. #include <stdlib.h> #include "lua.h" #include "lauxlib.h" #include "lualib.h" unsigned long long persist_cnt; int main(int argc, char** argv) { lua_State* L = luaL_newstate(); unsigned long long persist_max = getenv("PERSIST_MAX") ? strtoull(getenv("PERSIST_MAX"), 0, 0) : 1010000; try_again: luaL_loadbuffer(L, 0, 0, "stdin");
You should add a `printf("stack top: %d\n", lua_gettop(L));` here, and check the manual section[1] on stack size afterwards.
if (persist_cnt++ < persist_max) { goto try_again; } lua_close(L); return 0; } Kind regards, Karl Skomski
Philipp [1]: http://www.lua.org/manual/5.3/manual.html#4.2