From 5a45352f3abc6036d3433ba42e94d08308ae523a Mon Sep 17 00:00:00 2001
From: Jason Parker <jparker@digium.com>
Date: Wed, 27 Sep 2006 19:45:24 +0000
Subject: [PATCH] Merged revisions 43803 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r43803 | qwell | 2006-09-27 12:44:02 -0700 (Wed, 27 Sep 2006) | 4 lines

Fix an issue with PLAYBACKSTATUS not being set under certain circumstances.
Fix a minor issue, to make it use the filenames that were parsed, instead of the entire argument string.
Fix Background() to return -1 like Playback(), if no args are specified.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43804 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_playback.c | 7 ++++---
 main/pbx.c          | 4 +++-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/apps/app_playback.c b/apps/app_playback.c
index 87b06b02e5..396ed71e6c 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 538b5fb9c3..a800ae8739 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);
 
-- 
GitLab