Skip to content
Snippets Groups Projects
Commit 9c9f314f authored by Christof Lauber's avatar Christof Lauber
Browse files

pbx_lua: Support displaying lua error message if no debug table exists

The lua_error_function assumed that lua's debug table and traceback function
are always accessible, which is not the case. This fixes the error message
'Error in the lua error handler' triggred by switch exec() function.
If this happens lua's error message is shown without traceback.

Change-Id: I34ba0a098f1ae06a3af7b4d1b098bd43f42f96c8
parent a9e45eb5
Branches
Tags
No related merge requests found
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment