浏览代码

Fix potential file descriptor leak in luaL_loadfile*().

Reported by Assumeru. #1249
Mike Pall 1 年之前
父节点
当前提交
19db4e9b7c
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      src/lj_load.c

+ 2 - 1
src/lj_load.c

@@ -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";