]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_musiconhold: Added check for dot character in path of playlist entries to avoid...
authorNicholas John Koch <koch@njk-it.de>
Wed, 13 May 2020 18:32:35 +0000 (20:32 +0200)
committerFriendly Automation <jenkins2@gerrit.asterisk.org>
Wed, 20 May 2020 12:16:56 +0000 (07:16 -0500)
A warning was triggered that there may be a problem regarding file
extension (which is correct and should not be set anyway). The warning
also appeared if there was dot within the path itself.

E.g.
[sales-queue-hold]
mode=playlist
entry=/var/www/domain.tld/moh/funky_music

The music played correctly but you get a warning message.

Now there will be a check if the position of a potential dot character
is after the last position of a slash character. This dot charachter
will be treated as a extension naming. Dots within the path then ignored.

ASTERISK-28892
Reported-By: Nicholas John Koch
Change-Id: I2ec35a613413affbf5fcc01c8c181eba24865b9e

res/res_musiconhold.c

index dd9b8a5176135d37ac43d508ef5285c163866e00..01a14b93fbcdad1d93f8a073ff5a2cd410a8a0be 100644 (file)
@@ -1087,9 +1087,14 @@ static void moh_parse_options(struct ast_variable *var, struct mohclass *mohclas
                                if (!dup) {
                                        continue;
                                }
-                               if (ast_begins_with(dup, "/") && strrchr(dup, '.')) {
-                                       ast_log(LOG_WARNING, "The playlist entry '%s' may include an extension, which could prevent it from playing.\n",
-                                               dup);
+
+                               if (ast_begins_with(dup, "/")) {
+                                       char *last_pos_dot = strrchr(dup, '.');
+                                       char *last_pos_slash = strrchr(dup, '/');
+                                       if (last_pos_dot && last_pos_dot > last_pos_slash) {
+                                               ast_log(LOG_WARNING, "The playlist entry '%s' may include an extension, which could prevent it from playing.\n",
+                                                       dup);
+                                       }
                                }
                                AST_VECTOR_APPEND(&mohclass->files, dup);
                        } else {