X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=util%2Fserialization.lua;h=06e4505442dfc4934be8dd9fe20d42e122fddca6;hb=95dfe4b0aaaf26ee4651c09eb9757c56210a135a;hp=e193b64f7ff70e8683ef06cfafa365cefbcd65f3;hpb=70281db08732799bcd1ff4dcc3ca51b1388f1375;p=prosody.git diff --git a/util/serialization.lua b/util/serialization.lua index e193b64f..06e45054 100644 --- a/util/serialization.lua +++ b/util/serialization.lua @@ -1,7 +1,7 @@ -- Prosody IM -- Copyright (C) 2008-2010 Matthew Wild -- Copyright (C) 2008-2010 Waqas Hussain --- +-- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- @@ -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;