FS-8167 [mod_lua] Fixed a segfault caused by using api:execute or session:execute and not quoting the first argument like api:execute(log, “Second argument”) instead of api:execute(“log”, “Second argument”)

This commit is contained in:
Anthony Minessale 2015-09-15 22:35:29 -05:00 committed by Michael Jerris
parent 5844c10fdd
commit 9936846e01
1 changed files with 14 additions and 1 deletions

View File

@ -234,8 +234,16 @@ SWITCH_DECLARE(const char *) API::execute(const char *cmd, const char *arg)
{
switch_stream_handle_t stream = { 0 };
this_check("");
SWITCH_STANDARD_STREAM(stream);
switch_api_execute(cmd, arg, session, &stream);
if (zstr(cmd)) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "No application specified\n");
stream.write_function(&stream, "-ERR No application specified");
} else {
switch_api_execute(cmd, arg, session, &stream);
}
return (char *) stream.data;
}
@ -730,6 +738,11 @@ SWITCH_DECLARE(void) CoreSession::execute(const char *app, const char *data)
this_check_void();
sanity_check_noreturn;
if (zstr(app)) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "No application specified\n");
return;
}
begin_allow_threads();
switch_core_session_execute_application(session, app, data);
end_allow_threads();