From 3f2e0c1206ed3d4dfe8a58048170a4ce3309b059 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 18 Feb 2018 10:40:45 +0100 Subject: [PATCH] Check argument types inside MetaDataRef Lua API (#7045) --- src/script/lua_api/l_metadata.cpp | 12 ++++++------ src/script/lua_api/l_nodemeta.cpp | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/script/lua_api/l_metadata.cpp b/src/script/lua_api/l_metadata.cpp index 494d2dce0..e84d1d939 100644 --- a/src/script/lua_api/l_metadata.cpp +++ b/src/script/lua_api/l_metadata.cpp @@ -95,7 +95,7 @@ int MetaDataRef::l_get_int(lua_State *L) MAP_LOCK_REQUIRED; MetaDataRef *ref = checkobject(L, 1); - std::string name = lua_tostring(L, 2); + std::string name = luaL_checkstring(L, 2); Metadata *meta = ref->getmeta(false); if (meta == NULL) { @@ -114,8 +114,8 @@ int MetaDataRef::l_set_int(lua_State *L) MAP_LOCK_REQUIRED; MetaDataRef *ref = checkobject(L, 1); - std::string name = lua_tostring(L, 2); - int a = lua_tointeger(L, 3); + std::string name = luaL_checkstring(L, 2); + int a = luaL_checkint(L, 3); std::string str = itos(a); Metadata *meta = ref->getmeta(true); @@ -133,7 +133,7 @@ int MetaDataRef::l_get_float(lua_State *L) MAP_LOCK_REQUIRED; MetaDataRef *ref = checkobject(L, 1); - std::string name = lua_tostring(L, 2); + std::string name = luaL_checkstring(L, 2); Metadata *meta = ref->getmeta(false); if (meta == NULL) { @@ -152,8 +152,8 @@ int MetaDataRef::l_set_float(lua_State *L) MAP_LOCK_REQUIRED; MetaDataRef *ref = checkobject(L, 1); - std::string name = lua_tostring(L, 2); - float a = lua_tonumber(L, 3); + std::string name = luaL_checkstring(L, 2); + float a = luaL_checknumber(L, 3); std::string str = ftos(a); Metadata *meta = ref->getmeta(true); diff --git a/src/script/lua_api/l_nodemeta.cpp b/src/script/lua_api/l_nodemeta.cpp index 3d7adf27d..348d73ad5 100644 --- a/src/script/lua_api/l_nodemeta.cpp +++ b/src/script/lua_api/l_nodemeta.cpp @@ -159,7 +159,7 @@ bool NodeMetaRef::handleFromTable(lua_State *L, int table, Metadata *_meta) lua_pushnil(L); while (lua_next(L, inventorytable) != 0) { // key at index -2 and value at index -1 - std::string name = lua_tostring(L, -2); + std::string name = luaL_checkstring(L, -2); read_inventory_list(L, -1, inv, name.c_str(), getServer(L)); lua_pop(L, 1); // Remove value, keep key for next iteration } -- 2.25.1