Check Lua stack before pushing cons args

Prevents a Lua stack overrun when executing absurd console commands for
local-only lua commands.
This commit is contained in:
Eidolon 2024-02-11 15:10:51 -06:00
parent 388a72a89b
commit 73cf19038c

View file

@ -184,6 +184,11 @@ void COM_Lua_f(void)
I_Assert(lua_isfunction(gL, -1));
lua_remove(gL, -2); // pop command info table
if (!lua_checkstack(gL, COM_Argc() + 1))
{
CONS_Alert(CONS_WARNING, "lua command stack overflow (%d, need %s more)\n", lua_gettop(gL), sizeu1(COM_Argc() + 1));
return;
}
LUA_PushUserdata(gL, &players[playernum], META_PLAYER);
for (i = 1; i < COM_Argc(); i++)
lua_pushstring(gL, COM_Argv(i));