From b0baa698a495cc990ce5d9c22763957f1138aed3 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Wed, 26 Jun 2019 19:37:14 +0200 Subject: [PATCH] CSM: Fix itemstack:get_meta() 'metadata' indexing error --- src/script/cpp_api/s_security.cpp | 1 + src/script/scripting_client.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/script/cpp_api/s_security.cpp b/src/script/cpp_api/s_security.cpp index d972be980..b90b3aa2c 100644 --- a/src/script/cpp_api/s_security.cpp +++ b/src/script/cpp_api/s_security.cpp @@ -243,6 +243,7 @@ void ScriptApiSecurity::initializeSecurityClient() "rawset", "select", "setfenv", + // getmetatable can be used to escape the sandbox "setmetatable", "tonumber", "tostring", diff --git a/src/script/scripting_client.cpp b/src/script/scripting_client.cpp index 239c98e57..c3e0ca373 100644 --- a/src/script/scripting_client.cpp +++ b/src/script/scripting_client.cpp @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "lua_api/l_client.h" #include "lua_api/l_env.h" #include "lua_api/l_item.h" +#include "lua_api/l_itemstackmeta.h" #include "lua_api/l_minimap.h" #include "lua_api/l_modchannels.h" #include "lua_api/l_particles_local.h" @@ -67,6 +68,7 @@ ClientScripting::ClientScripting(Client *client): void ClientScripting::InitializeModApi(lua_State *L, int top) { LuaItemStack::Register(L); + ItemStackMetaRef::Register(L); StorageRef::Register(L); LuaMinimap::Register(L); NodeMetaRef::RegisterClient(L);