Fix potential vulnerable cloned functions: Save stack space while handling errors

This commit is contained in:
npt-1707 2025-04-24 17:06:24 +08:00
parent 5f1bea0b6b
commit edf2ce7cfe
2 changed files with 8 additions and 3 deletions

View file

@ -657,8 +657,11 @@ l_noret luaG_runerror (lua_State *L, const char *fmt, ...) {
va_start(argp, fmt);
msg = luaO_pushvfstring(L, fmt, argp); /* format message */
va_end(argp);
if (isLua(ci)) /* if Lua function, add source:line information */
if (isLua(ci)) { /* if Lua function, add source:line information */
luaG_addinfo(L, msg, ci_func(ci)->p->source, currentline(ci));
setobjs2s(L, L->top - 2, L->top - 1); /* remove 'msg' from the stack */
L->top--;
}
luaG_errormsg(L);
}