From 059eca1546962bf17007981059e5882c1c6d90fe Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Wed, 12 Jan 2022 14:20:34 -0500 Subject: [PATCH] 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 3fd47840c93bd834cda82562f121eec5883b5a23) --- main/say.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/main/say.c b/main/say.c index ebbb9f0f1a..df9462aa16 100644 --- a/main/say.c +++ b/main/say.c @@ -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, "&"))) {