aboutsummaryrefslogtreecommitdiff
path: root/builtin/mainmenu/common.lua
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2021-11-26 19:32:41 +0100
committerGitHub <noreply@github.com>2021-11-26 19:32:41 +0100
commit87ab97da2ace31fdb46a88a0901ec664dd666feb (patch)
tree71990e03cc72a8780e76a16e9c33cf348c7f05d0 /builtin/mainmenu/common.lua
parentb9051386ae296a6112383725bc8bfcd96dc9a226 (diff)
downloadminetest-87ab97da2ace31fdb46a88a0901ec664dd666feb.tar.gz
minetest-87ab97da2ace31fdb46a88a0901ec664dd666feb.tar.bz2
minetest-87ab97da2ace31fdb46a88a0901ec664dd666feb.zip
Fix find_nodes_in_area misbehaving with out-of-map coordinates (#11770)
This ensures that no overflows (side-effects) happen within the find_nodes_in_area function by limiting coordinates like done in the map generation code.
Diffstat (limited to 'builtin/mainmenu/common.lua')
0 files changed, 0 insertions, 0 deletions
ss="hl str">"table", "function", "userdata", "thread", "proto", "upval" }; void luaT_init (lua_State *L) { static const char *const luaT_eventname[] = { /* ORDER TM */ "__index", "__newindex", "__gc", "__mode", "__eq", "__add", "__sub", "__mul", "__div", "__mod", "__pow", "__unm", "__len", "__lt", "__le", "__concat", "__call" }; int i; for (i=0; i<TM_N; i++) { G(L)->tmname[i] = luaS_new(L, luaT_eventname[i]); luaS_fix(G(L)->tmname[i]); /* never collect these names */ } } /* ** function to be used with macro "fasttm": optimized for absence of ** tag methods */ const TValue *luaT_gettm (Table *events, TMS event, TString *ename) { const TValue *tm = luaH_getstr(events, ename); lua_assert(event <= TM_EQ); if (ttisnil(tm)) { /* no tag method? */ events->flags |= cast_byte(1u<<event); /* cache this fact */ return NULL; } else return tm; } const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, TMS event) { Table *mt; switch (ttype(o)) { case LUA_TTABLE: mt = hvalue(o)->metatable; break; case LUA_TUSERDATA: mt = uvalue(o)->metatable; break; default: mt = G(L)->mt[ttype(o)]; } return (mt ? luaH_getstr(mt, G(L)->tmname[event]) : luaO_nilobject); }