From 50fd8d03c33bbe52ac5b34c4eb748197b349cedd Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 17 Apr 2025 14:58:55 -0300 Subject: Function 'luaK_semerror' made vararg All calls to 'luaK_semerror' were using 'luaO_pushfstring' to create the error messages. --- lcode.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lcode.c') diff --git a/lcode.c b/lcode.c index 8c04d8ab..d22a081a 100644 --- a/lcode.c +++ b/lcode.c @@ -40,7 +40,14 @@ static int codesJ (FuncState *fs, OpCode o, int sj, int k); /* semantic error */ -l_noret luaK_semerror (LexState *ls, const char *msg) { +l_noret luaK_semerror (LexState *ls, const char *fmt, ...) { + const char *msg; + va_list argp; + va_start(argp, fmt); + msg = luaO_pushvfstring(ls->L, fmt, argp); + va_end(argp); + if (msg == NULL) /* error? */ + luaD_throw(ls->L, LUA_ERRMEM); ls->t.token = 0; /* remove "near " from final message */ luaX_syntaxerror(ls, msg); } -- cgit v1.2.3-55-g6feb