aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2024-08-19 16:11:36 +0200
committerMike Pall <mike>2024-08-19 16:11:36 +0200
commit19db4e9b7c5e19398286adb4d953a4874cc39ae0 (patch)
treea6c2e81aa126d998a7eb8768299d280e5b2aa28a
parent86e7123bb1782a5f200ba5e83b8c4f3fbad4f7bc (diff)
downloadluajit-19db4e9b7c5e19398286adb4d953a4874cc39ae0.tar.gz
luajit-19db4e9b7c5e19398286adb4d953a4874cc39ae0.tar.bz2
luajit-19db4e9b7c5e19398286adb4d953a4874cc39ae0.zip
Fix potential file descriptor leak in luaL_loadfile*().
Reported by Assumeru. #1249
-rw-r--r--src/lj_load.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_load.c b/src/lj_load.c
index dab037b4..d92bd1b4 100644
--- a/src/lj_load.c
+++ b/src/lj_load.c
@@ -88,12 +88,13 @@ LUALIB_API int luaL_loadfilex(lua_State *L, const char *filename,
88 int status; 88 int status;
89 const char *chunkname; 89 const char *chunkname;
90 if (filename) { 90 if (filename) {
91 chunkname = lua_pushfstring(L, "@%s", filename);
91 ctx.fp = fopen(filename, "rb"); 92 ctx.fp = fopen(filename, "rb");
92 if (ctx.fp == NULL) { 93 if (ctx.fp == NULL) {
94 L->top--;
93 lua_pushfstring(L, "cannot open %s: %s", filename, strerror(errno)); 95 lua_pushfstring(L, "cannot open %s: %s", filename, strerror(errno));
94 return LUA_ERRFILE; 96 return LUA_ERRFILE;
95 } 97 }
96 chunkname = lua_pushfstring(L, "@%s", filename);
97 } else { 98 } else {
98 ctx.fp = stdin; 99 ctx.fp = stdin;
99 chunkname = "=stdin"; 100 chunkname = "=stdin";