From 3af5eef96463510a27cf06b9c3ecc9f1d04cdac6 Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Thu, 24 Nov 2016 10:10:20 -0500 Subject: [PATCH] Fix secure io.lines It used to drop all of the return values from the insecure version of the function. --- src/script/cpp_api/s_security.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/script/cpp_api/s_security.cpp b/src/script/cpp_api/s_security.cpp index 5a64c249..c9816f89 100644 --- a/src/script/cpp_api/s_security.cpp +++ b/src/script/cpp_api/s_security.cpp @@ -577,13 +577,13 @@ int ScriptApiSecurity::sl_io_lines(lua_State *L) CHECK_SECURE_PATH(L, path); } + int top_precall = lua_gettop(L); push_original(L, "io", "lines"); lua_pushvalue(L, 1); - int top_precall = lua_gettop(L); lua_call(L, 1, LUA_MULTRET); // Return number of arguments returned by the function, // adjusting for the function being poped. - return lua_gettop(L) - (top_precall - 1); + return lua_gettop(L) - top_precall; }