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
(cherry picked from commit 3fd47840c9)
pull/498/head
Sean Bright 3 years ago committed by Joshua Colp
parent 5274bfdc07
commit 059eca1546

@ -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, "&"))) {

Loading…
Cancel
Save