diff --git a/pbx/pbx_lua.c b/pbx/pbx_lua.c index 741e9507db..8673dfdef5 100644 --- a/pbx/pbx_lua.c +++ b/pbx/pbx_lua.c @@ -805,7 +805,19 @@ static int lua_error_function(lua_State *L) lua_pushliteral(L, "\n"); lua_getglobal(L, "debug"); + if (!lua_istable(L, -1)) { + /* Have no 'debug' table for whatever reason */ + lua_pop(L, 2); + /* Original err message is on stack top now */ + return 1; + } lua_getfield(L, -1, "traceback"); + if (!lua_isfunction(L, -1)) { + /* Same here for traceback function */ + lua_pop(L, 3); + /* Original err message is on stack top now */ + return 1; + } lua_remove(L, -2); /* remove the 'debug' table */ lua_pushvalue(L, message_index);