[asterisk-commits] mnicholson: testsuite/asterisk/trunk r643 - /asterisk/trunk/asttest/lib/lua/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jul 29 12:11:02 CDT 2010


Author: mnicholson
Date: Thu Jul 29 12:10:59 2010
New Revision: 643

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=643
Log:
Revert the previous change and just pop the name (and testsuite struct) instead.  Popping the test name string before using it could cause a crash.

Modified:
    asterisk/trunk/asttest/lib/lua/testlib.c

Modified: asterisk/trunk/asttest/lib/lua/testlib.c
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/asttest/lib/lua/testlib.c?view=diff&rev=643&r1=642&r2=643
==============================================================================
--- asterisk/trunk/asttest/lib/lua/testlib.c (original)
+++ asterisk/trunk/asttest/lib/lua/testlib.c Thu Jul 29 12:10:59 2010
@@ -52,12 +52,9 @@
  * \brief Push the current test's name on the stack and return a pointer to it.
  * \param L the lua state to use
  */
-static const char *get_test_name(lua_State *L) {
-	const char *c;
+static const char *push_test_name(lua_State *L) {
 	lua_getfield(L, LUA_REGISTRYINDEX, "testlib_name");
-	c = lua_tostring(L, -1);
-	lua_pop(L, 1);
-	return c;
+	return lua_tostring(L, -1);
 }
 
 /*
@@ -67,9 +64,11 @@
 static int lua_ts_log(lua_State *L) {
 	const char *string = luaL_checkstring(L, 1);
 	struct testsuite *ts = push_ts(L);
-	const char *name = get_test_name(L);
+	const char *name = push_test_name(L);
 
 	ts_log(ts, name, "%s", string);
+
+	lua_pop(L, 2); /* pop the test name and ts */
 
 	return 0;
 }




More information about the asterisk-commits mailing list