diff --git a/apps/app_playback.c b/apps/app_playback.c index 87b06b02e5c628fface31e7534f57e5d5d5e4fda..396ed71e6cf34e7425f14c777a8c60ecfe85c453 100644 --- a/apps/app_playback.c +++ b/apps/app_playback.c @@ -380,6 +380,7 @@ static struct ast_cli_entry cli_playback[] = { static int playback_exec(struct ast_channel *chan, void *data) { int res = 0; + int mres = 0; struct ast_module_user *u; char *tmp; int option_skip=0; @@ -422,11 +423,11 @@ static int playback_exec(struct ast_channel *chan, void *data) res = ast_answer(chan); } if (!res) { - int mres = 0; + char *back = args.filenames; char *front; ast_stopstream(chan); - while (!res && (front = strsep(&tmp, "&"))) { + while (!res && (front = strsep(&back, "&"))) { if (option_say) res = say_full(chan, front, "", chan->language, NULL, -1, -1); else @@ -442,9 +443,9 @@ static int playback_exec(struct ast_channel *chan, void *data) mres = 1; } } - pbx_builtin_setvar_helper(chan, "PLAYBACKSTATUS", mres ? "FAILED" : "SUCCESS"); } done: + pbx_builtin_setvar_helper(chan, "PLAYBACKSTATUS", mres ? "FAILED" : "SUCCESS"); ast_module_user_remove(u); return res; } diff --git a/main/pbx.c b/main/pbx.c index 538b5fb9c3ac67489dbf197ad8fbbe6035a27f7b..a800ae8739ce0f169a4ceb25435453a8a906c7fc 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -5292,8 +5292,10 @@ static int pbx_builtin_background(struct ast_channel *chan, void *data) AST_APP_ARG(context); ); - if (ast_strlen_zero(data)) + if (ast_strlen_zero(data)) { ast_log(LOG_WARNING, "Background requires an argument (filename)\n"); + return -1; + } parse = ast_strdupa(data);