Diff

plugins/mod_admin_telnet.lua @ 10067:598befab492e

mod_admin_telnet: Check for simple commands before executing in sandbox This makes fixing yield over pcall boundry issue easier since it would have jumped to the thread error handler instead of proceeding to checking for simple commands.
author Kim Alvefur <zash@zash.se>
date Fri, 10 May 2019 01:28:09 +0200
parent 10044:4fd27023224a
child 10068:73a8192058f9
line wrap: on
line diff
--- a/plugins/mod_admin_telnet.lua	Tue Jul 09 15:12:32 2019 +0200
+++ b/plugins/mod_admin_telnet.lua	Fri May 10 01:28:09 2019 +0200
@@ -114,6 +114,11 @@
 
 	session.env._ = line;
 
+	if not useglobalenv and commands[line:lower()] then
+		commands[line:lower()](session, line);
+		return;
+	end
+
 	local chunkname = "=console";
 	local env = (useglobalenv and redirect_output(_G, session)) or session.env or nil
 	local chunk, err = envload("return "..line, chunkname, env);
@@ -130,11 +135,6 @@
 
 	local ranok, taskok, message = pcall(chunk);
 
-	if not (ranok or message or useglobalenv) and commands[line:lower()] then
-		commands[line:lower()](session, line);
-		return;
-	end
-
 	if not ranok then
 		session.print("Fatal error while running command, it did not complete");
 		session.print("Error: "..taskok);