summaryrefslogtreecommitdiff
path: root/builtin/common/strict.lua
diff options
context:
space:
mode:
authorred-001 <red-001@outlook.ie>2017-01-28 16:24:25 +0000
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-03-13 23:56:05 +0100
commita50d07d39a76053328846d82a32bac61468bb16f (patch)
tree4103d0f4b4f9ede76bba90d49a475b901f3fec64 /builtin/common/strict.lua
parent92b45b2a189b703fc7cfc8ddbc09a7ad563a13bc (diff)
downloadminetest-a50d07d39a76053328846d82a32bac61468bb16f.tar.gz
minetest-a50d07d39a76053328846d82a32bac61468bb16f.tar.bz2
minetest-a50d07d39a76053328846d82a32bac61468bb16f.zip
[CSM] Improve security for client-sided mods (#5100)
Diffstat (limited to 'builtin/common/strict.lua')
-rw-r--r--builtin/common/strict.lua5
1 files changed, 3 insertions, 2 deletions
diff --git a/builtin/common/strict.lua b/builtin/common/strict.lua
index 23ba3d727..ccde9676b 100644
--- a/builtin/common/strict.lua
+++ b/builtin/common/strict.lua
@@ -3,6 +3,7 @@
-- This ignores mod namespaces (variables with the same name as the current mod).
local WARN_INIT = false
+local getinfo = debug.getinfo
function core.global_exists(name)
if type(name) ~= "string" then
@@ -18,7 +19,7 @@ local declared = {}
local warned = {}
function meta:__newindex(name, value)
- local info = debug.getinfo(2, "Sl")
+ local info = getinfo(2, "Sl")
local desc = ("%s:%d"):format(info.short_src, info.currentline)
if not declared[name] then
local warn_key = ("%s\0%d\0%s"):format(info.source,
@@ -42,7 +43,7 @@ end
function meta:__index(name)
- local info = debug.getinfo(2, "Sl")
+ local info = getinfo(2, "Sl")
local warn_key = ("%s\0%d\0%s"):format(info.source, info.currentline, name)
if not declared[name] and not warned[warn_key] and info.what ~= "C" then
core.log("warning", ("Undeclared global variable %q accessed at %s:%s")