]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Fix potential file descriptor leak in luaL_loadfile*().
authorMike Pall <mike>
Mon, 19 Aug 2024 14:11:36 +0000 (16:11 +0200)
committerMike Pall <mike>
Mon, 19 Aug 2024 14:11:36 +0000 (16:11 +0200)
Reported by Assumeru. #1249

src/lj_load.c

index dab037b450b088dcb8b1c7c35b5c3a913f598af6..d92bd1b4bfb0982ec74c05800f94081a070c6aae 100644 (file)
@@ -88,12 +88,13 @@ LUALIB_API int luaL_loadfilex(lua_State *L, const char *filename,
   int status;
   const char *chunkname;
   if (filename) {
+    chunkname = lua_pushfstring(L, "@%s", filename);
     ctx.fp = fopen(filename, "rb");
     if (ctx.fp == NULL) {
+      L->top--;
       lua_pushfstring(L, "cannot open %s: %s", filename, strerror(errno));
       return LUA_ERRFILE;
     }
-    chunkname = lua_pushfstring(L, "@%s", filename);
   } else {
     ctx.fp = stdin;
     chunkname = "=stdin";