clix.raw: Update sandboxing to use util.envload and work with Lua 5.2+

Thu, 02 Mar 2023 18:01:05 +0100

author
Kim Alvefur <zash@zash.se>
date
Thu, 02 Mar 2023 18:01:05 +0100
changeset 167
57bb6e03d239
parent 166
b0c586241224
child 168
75e8ca131178

clix.raw: Update sandboxing to use util.envload and work with Lua 5.2+

clix/raw.lua file | annotate | diff | comparison | revisions
--- a/clix/raw.lua	Wed Aug 03 03:02:12 2022 +0200
+++ b/clix/raw.lua	Thu Mar 02 18:01:05 2023 +0100
@@ -1,4 +1,5 @@
 local verse = require "verse";
+local envload = require "util.envload".envload;
 local xml = require "util.xml";
 short_opts.i = "interactive";
 short_opts.e = "echo";
@@ -96,15 +97,12 @@
 					else
 						data = "return "..data;
 					end
-					local chunk, err = loadstring(data, "@stdin");
+					local chunk, err = envload(data, "@stdin", sandboxed and env or _G);
 					if not chunk then
 						conn:error(err);
 						return;
 					end
 					data = "";
-					if sandboxed then
-						setfenv(chunk, env);
-					end
 					local ok, ret = pcall(chunk);
 					if ok then
 						data = ret

mercurial