Software /
code /
prosody-modules
Comparison
mod_storage_appendmap/mod_storage_appendmap.lua @ 2205:98354fbea63c
mod_storage_appendmap: Prevent _ENV = false
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 09 Jun 2016 11:47:55 +0200 |
parent | 2062:8f7083b980cf |
child | 2430:a2625a36c092 |
comparison
equal
deleted
inserted
replaced
2204:affccf479f89 | 2205:98354fbea63c |
---|---|
30 end | 30 end |
31 | 31 |
32 function map:set_keys(user, keyvalues) | 32 function map:set_keys(user, keyvalues) |
33 local keys, values = {}, {}; | 33 local keys, values = {}, {}; |
34 if _VERSION == "Lua 5.1" then | 34 if _VERSION == "Lua 5.1" then |
35 assert(not keyvalues._ENV, "'_ENV' is a restricted key"); | 35 assert(keyvalues._ENV == nil, "'_ENV' is a restricted key"); |
36 end | 36 end |
37 for key, value in pairs(keyvalues) do | 37 for key, value in pairs(keyvalues) do |
38 module:log("debug", "user %s sets %q to %s", user, key, tostring(value)) | 38 module:log("debug", "user %s sets %q to %s", user, key, tostring(value)) |
39 if type(key) ~= "string" or not key:find("^[%w_][%w%d_]*$") or key == "_ENV" then | 39 if type(key) ~= "string" or not key:find("^[%w_][%w%d_]*$") or key == "_ENV" then |
40 key = "_ENV[" .. dump(key) .. "]"; | 40 key = "_ENV[" .. dump(key) .. "]"; |