aboutsummaryrefslogtreecommitdiff
path: root/databases/keydb/files/patch-CVE-2025-49844
diff options
context:
space:
mode:
Diffstat (limited to 'databases/keydb/files/patch-CVE-2025-49844')
-rw-r--r--databases/keydb/files/patch-CVE-2025-4984423
1 files changed, 23 insertions, 0 deletions
diff --git a/databases/keydb/files/patch-CVE-2025-49844 b/databases/keydb/files/patch-CVE-2025-49844
new file mode 100644
index 000000000000..d17aa3285453
--- /dev/null
+++ b/databases/keydb/files/patch-CVE-2025-49844
@@ -0,0 +1,23 @@
+diff --git a/deps/lua/src/lparser.c b/deps/lua/src/lparser.c
+index dda7488dcad..ee7d90c90d7 100644
+--- deps/lua/src/lparser.c
++++ deps/lua/src/lparser.c
+@@ -384,13 +384,17 @@ Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const char *name) {
+ struct LexState lexstate;
+ struct FuncState funcstate;
+ lexstate.buff = buff;
+- luaX_setinput(L, &lexstate, z, luaS_new(L, name));
++ TString *tname = luaS_new(L, name);
++ setsvalue2s(L, L->top, tname);
++ incr_top(L);
++ luaX_setinput(L, &lexstate, z, tname);
+ open_func(&lexstate, &funcstate);
+ funcstate.f->is_vararg = VARARG_ISVARARG; /* main func. is always vararg */
+ luaX_next(&lexstate); /* read first token */
+ chunk(&lexstate);
+ check(&lexstate, TK_EOS);
+ close_func(&lexstate);
++ --L->top;
+ lua_assert(funcstate.prev == NULL);
+ lua_assert(funcstate.f->nups == 0);
+ lua_assert(lexstate.fs == NULL);