X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=util%2Fserialization.lua;h=8a259184c61b715326b03d176e95a6e5d56e60fe;hb=955d30f46255169144300a9ebac5e441ebfd7e8e;hp=e193b64f7ff70e8683ef06cfafa365cefbcd65f3;hpb=093e7bb084c42c8ec56cc94bbd51cff25f94664a;p=prosody.git diff --git a/util/serialization.lua b/util/serialization.lua index e193b64f..8a259184 100644 --- a/util/serialization.lua +++ b/util/serialization.lua @@ -16,11 +16,12 @@ local pairs = pairs; local next = next; local loadstring = loadstring; -local setfenv = setfenv; local pcall = pcall; local debug_traceback = debug.traceback; local log = require "util.logger".init("serialization"); +local envload = require"util.envload".envload; + module "serialization" local indent = function(i) @@ -84,9 +85,8 @@ end function deserialize(str) if type(str) ~= "string" then return nil; end str = "return "..str; - local f, err = loadstring(str, "@data"); + local f, err = envload(str, "@data", {}); if not f then return nil, err; end - setfenv(f, {}); local success, ret = pcall(f); if not success then return nil, ret; end return ret;