say.c: Prevent erroneous failures with 'say' family of functions.

A regression was introduced in ASTERISK~29531 that caused 'say'
functions to fail with file lists that would previously have
succeeded. This caused affected channels to hang up where previously
they would have continued.

We now explicitly check for the empty string to restore the previous
behavior.

ASTERISK-29859 #close

Change-Id: Ia2e5769868e2792313c2d7c07996efe009c6f8d5
This commit is contained in:
Sean Bright 2022-01-12 14:20:34 -05:00 committed by Friendly Automation
parent 6dbed99435
commit 96c2a7932d
1 changed files with 7 additions and 0 deletions

View File

@ -180,6 +180,13 @@ static int say_filenames(struct ast_channel *chan, const char *ints, const char
if (!filenames) {
return -1;
}
/* No filenames to play? Return success so we don't hang up erroneously */
if (ast_str_strlen(filenames) == 0) {
ast_free(filenames);
return 0;
}
files = ast_str_buffer(filenames);
while ((fn = strsep(&files, "&"))) {