Fix too restrictive Lua sandbox
authorRobin Gareus <robin@gareus.org>
Sat, 26 Aug 2017 13:38:41 +0000 (15:38 +0200)
committerRobin Gareus <robin@gareus.org>
Sat, 26 Aug 2017 13:42:14 +0000 (15:42 +0200)
Don't limit the environment when evaluating bytecode (factory function).

gtk2_ardour/luainstance.cc

index 248e867be90bce9dbd1d4091a89e2dc38b882871..8d7d972d04e9a218ad3a47b537d7e369c44e7cf9 100644 (file)
@@ -1061,7 +1061,7 @@ LuaInstance::init ()
                        "   assert(type(f) == 'function', 'Factory is a not a function')"
                        "   assert(type(a) == 'table' or type(a) == 'nil', 'Given argument is invalid')"
                        "   self.scripts[i] = { ['n'] = n, ['s'] = s, ['f'] = f, ['a'] = a, ['c'] = c }"
-                       "   local env = _ENV; env.f = nil env.io = nil"
+                       "   local env = _ENV; env.f = nil"
                        "   self.instances[i] = load (string.dump(f, true), nil, nil, env)(a)"
                        "   if type(c) == 'function' then"
                        "     self.icons[i] = load (string.dump(c, true), nil, nil, env)(a)"
@@ -1792,7 +1792,7 @@ LuaCallback::init (void)
                        "   assert(type(f) == 'function', 'Factory is a not a function')"
                        "   assert(type(a) == 'table' or type(a) == 'nil', 'Given argument is invalid')"
                        "   self.script = { ['n'] = n, ['s'] = s, ['f'] = f, ['a'] = a }"
-                       "   local env = _ENV; env.f = nil env.io = nil"
+                       "   local env = _ENV; env.f = nil"
                        "   self.instance = load (string.dump(f, true), nil, nil, env)(a)"
                        "  end"
                        ""