From d87da3d5fed7f046c426d6a747bb84c2880f4e8d Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Thu, 22 Jul 2021 16:21:45 +0200 Subject: Fix io.close() error message. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported by François Perrad. --- src/lib_io.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lib_io.c b/src/lib_io.c index 76d3ace1..35c57d8b 100644 --- a/src/lib_io.c +++ b/src/lib_io.c @@ -293,8 +293,14 @@ static int io_file_lines(lua_State *L) LJLIB_CF(io_method_close) { - IOFileUD *iof = L->base < L->top ? io_tofile(L) : - io_stdfile(L, GCROOT_IO_OUTPUT); + IOFileUD *iof; + if (L->base < L->top) { + iof = io_tofile(L); + } else { + iof = IOSTDF_IOF(L, GCROOT_IO_OUTPUT); + if (iof->fp == NULL) + lj_err_caller(L, LJ_ERR_IOCLFL); + } return io_file_close(L, iof); } -- cgit v1.2.1