From 9a2de786de5da862404995ddd3408f7ad3d54ee8 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 2 Mar 2021 11:35:40 -0300 Subject: Stack check in warning function for tests The warning function using for tests need to check the stack before pushing anything. (Warning functions are not expected to access a Lua state, therefore they have no preallocated stack space.) --- ltests.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ltests.c') diff --git a/ltests.c b/ltests.c index da95d027..a50f7830 100644 --- a/ltests.c +++ b/ltests.c @@ -121,6 +121,7 @@ static void warnf (void *ud, const char *msg, int tocont) { strcat(buff, msg); /* add new message to current warning */ if (!tocont) { /* message finished? */ lua_unlock(L); + luaL_checkstack(L, 1, "warn stack space"); lua_getglobal(L, "_WARN"); if (!lua_toboolean(L, -1)) lua_pop(L, 1); /* ok, no previous unexpected warning */ @@ -142,6 +143,7 @@ static void warnf (void *ud, const char *msg, int tocont) { } case 2: { /* store */ lua_unlock(L); + luaL_checkstack(L, 1, "warn stack space"); lua_pushstring(L, buff); lua_setglobal(L, "_WARN"); /* assign message to global '_WARN' */ lua_lock(L); -- cgit v1.2.3-55-g6feb