From: Alexey Melnichuk Date: Wed, 7 Dec 2016 07:06:48 +0000 (+0300) Subject: FS-9821 [mod_lua] Fix. memory/resource leak in mod_lua X-Git-Tag: v1.8.0~997^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=672b5d8309b57f4f6996bded4fa365b90a8516ac;p=thirdparty%2Ffreeswitch.git FS-9821 [mod_lua] Fix. memory/resource leak in mod_lua --- diff --git a/src/mod/languages/mod_lua/mod_lua.cpp b/src/mod/languages/mod_lua/mod_lua.cpp index 09bfac596d..8eb68c5a2d 100644 --- a/src/mod/languages/mod_lua/mod_lua.cpp +++ b/src/mod/languages/mod_lua/mod_lua.cpp @@ -237,9 +237,10 @@ static switch_xml_t lua_fetch(const char *section, switch_xml_t xml = NULL; char *mycmd = NULL; + lua_State *L = NULL; if (!zstr(globals.xml_handler)) { - lua_State *L = lua_init(); + L = lua_init(); const char *str; int error; @@ -285,14 +286,16 @@ static switch_xml_t lua_fetch(const char *section, } } - lua_uninit(L); - } end: switch_safe_free(mycmd); + if (L) { + lua_uninit(L); + } + return xml; } @@ -519,14 +522,13 @@ SWITCH_STANDARD_CHAT_APP(lua_chat_function) SWITCH_STANDARD_API(lua_api_function) { - lua_State *L = lua_init(); char *mycmd; int error; if (zstr(cmd)) { stream->write_function(stream, ""); } else { - + lua_State *L = lua_init(); mycmd = strdup(cmd); switch_assert(mycmd);