[Asterisk-code-review] pbx lua: Support displaying lua error message if no debug t... (asterisk[master])

Christof Lauber asteriskteam at digium.com
Wed Apr 25 01:58:02 CDT 2018


Christof Lauber has uploaded this change for review. ( https://gerrit.asterisk.org/8862


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

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
---
M pbx/pbx_lua.c
1 file changed, 13 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/62/8862/1

diff --git a/pbx/pbx_lua.c b/pbx/pbx_lua.c
index 741e950..7a894b6 100644
--- a/pbx/pbx_lua.c
+++ b/pbx/pbx_lua.c
@@ -805,7 +805,20 @@
 	lua_pushliteral(L, "\n");
 
 	lua_getglobal(L, "debug");
+	if (!lua_istable(L, -1)) {
+		/* Have no 'debug' table for whatever reason */
+		lua_pop(L, 2);
+		/*  Keep at least original err message */
+		lua_pushvalue(L, message_index);
+		return 1;
+	}
 	lua_getfield(L, -1, "traceback");
+	if (!lua_isfunction(L, -1)) {
+		/* Same here for traceback function */
+		lua_pop(L, 3);
+		lua_pushvalue(L, message_index);
+		return 1;
+	}
 	lua_remove(L, -2); /* remove the 'debug' table */
 
 	lua_pushvalue(L, message_index);

-- 
To view, visit https://gerrit.asterisk.org/8862
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I34ba0a098f1ae06a3af7b4d1b098bd43f42f96c8
Gerrit-Change-Number: 8862
Gerrit-PatchSet: 1
Gerrit-Owner: Christof Lauber <christof.lauber at annax.ch>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180425/a73c2163/attachment.html>


More information about the asterisk-code-review mailing list