From 5901137c1e2ce1745ab19a979bf1855ab45c103e Mon Sep 17 00:00:00 2001 From: stujones11 Date: Mon, 10 Jul 2017 17:01:47 +0100 Subject: [PATCH] Check length of serialized item stacks --- api.lua | 7 ++++++- init.lua | 6 ------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/api.lua b/api.lua index 127f60d..c4dd225 100644 --- a/api.lua +++ b/api.lua @@ -336,7 +336,12 @@ meshnode.create = function(pos, parent) if meta_tab.inventory then for _, list in pairs(meta_tab.inventory) do for i, stack in ipairs(list) do - list[i] = ItemStack(stack):to_string() + local str = ItemStack(stack):to_string() + if str:len() > 0xffff then + minetest.log("error", "String too long for serialization!") + str = "" + end + list[i] = str end end end diff --git a/init.lua b/init.lua index 82741a8..4d50d8c 100644 --- a/init.lua +++ b/init.lua @@ -275,12 +275,6 @@ minetest.register_entity("meshnode:ctrl", { end end, get_staticdata = function(self) - for k, v in pairs(self.nodes) do - if type(v) == "string" and v:len() > 0xffff then - minetest.log("error", "String too long for serialization!") - self.nodes[k] = "" - end - end local data = {self.mesh_id, self.activated, self.nodes} return minetest.serialize(data) end,