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

Jenkins2 asteriskteam at digium.com
Thu May 3 11:41:35 CDT 2018


Jenkins2 has submitted this change and it was merged. ( 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, 12 insertions(+), 0 deletions(-)

Approvals:
  Joshua Colp: Looks good to me, but someone else must approve
  Kevin Harwell: Looks good to me, approved
  Jenkins2: Approved for Submit



diff --git a/pbx/pbx_lua.c b/pbx/pbx_lua.c
index 741e950..8673dfd 100644
--- a/pbx/pbx_lua.c
+++ b/pbx/pbx_lua.c
@@ -805,7 +805,19 @@
 	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);

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

Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I34ba0a098f1ae06a3af7b4d1b098bd43f42f96c8
Gerrit-Change-Number: 8862
Gerrit-PatchSet: 2
Gerrit-Owner: Christof Lauber <christof.lauber at annax.ch>
Gerrit-Reviewer: Christof Lauber <christof.lauber at annax.ch>
Gerrit-Reviewer: Jenkins2
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Kevin Harwell <kharwell at digium.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180503/ccc771d6/attachment-0001.html>


More information about the asterisk-code-review mailing list