From 1ecfbfa1a1debd2258decdf7c1954ac6f9761699 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Wed, 15 Jul 2020 16:01:03 -0300 Subject: Fixed bug: invalid mode can crash 'io.popen' --- testes/files.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'testes') diff --git a/testes/files.lua b/testes/files.lua index 677c0dc2..16cf9b6a 100644 --- a/testes/files.lua +++ b/testes/files.lua @@ -721,6 +721,21 @@ if not _port then progname = '"' .. arg[i + 1] .. '"' end print("testing popen/pclose and execute") + -- invalid mode for popen + checkerr("invalid mode", io.popen, "cat", "") + checkerr("invalid mode", io.popen, "cat", "r+") + checkerr("invalid mode", io.popen, "cat", "rw") + do -- basic tests for popen + local file = os.tmpname() + local f = assert(io.popen("cat - > " .. file, "w")) + f:write("a line") + assert(f:close()) + local f = assert(io.popen("cat - < " .. file, "r")) + assert(f:read("a") == "a line") + assert(f:close()) + assert(os.remove(file)) + end + local tests = { -- command, what, code {"ls > /dev/null", "ok"}, -- cgit v1.2.3-55-g6feb