Disallow negative states to prevent crashes

This commit is contained in:
NepDisk 2025-08-31 21:10:07 -04:00
parent 33054b7d94
commit cea4d86dea

View file

@ -741,11 +741,18 @@ static int mobj_set(lua_State *L)
mo->tics = luaL_checkinteger(L, 3);
break;
case mobj_state: // set state by enum
{
statenum_t state = luaL_checkinteger(L, 3);
if (state < 0 || state >= numstates)
return luaL_error(L, "State %d out of range (0 - %d)", state, numstates - 1);
if (mo->player)
P_SetPlayerMobjState(mo, luaL_checkinteger(L, 3));
P_SetPlayerMobjState(mo, state);
else
P_SetMobjState(mo, luaL_checkinteger(L, 3));
P_SetMobjState(mo, state);
break;
}
case mobj_flags: // special handling for MF_NOBLOCKMAP and MF_NOSECTOR
{
UINT32 flags = luaL_checkinteger(L, 3);