app_voicemail: Add blank argument to externnotify if no context argument
authorJonathan Rose <jrose@digium.com>
Fri, 29 Mar 2013 16:37:23 +0000 (16:37 +0000)
committerJonathan Rose <jrose@digium.com>
Fri, 29 Mar 2013 16:37:23 +0000 (16:37 +0000)
At least one call to run_externnotify provides a NULL context parameter and
because the snprintf statement doesn't account for a NULL context parameter,
it simply writes '(null)' to the arguments string instead. This patch makes
it write two quotes back to back for that argument instead in the event of
a NULL context.

(closes issue ASTERISK-18207)
Reported by: Barry L. Kline
Patches:
modified from patch-20130306 uploaded by Karsten Wemheuer (License 5930)
........

Merged revisions 384325 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 384326 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@384327 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index a05c34c..c2de8da 100644 (file)
@@ -5944,7 +5944,10 @@ static void run_externnotify(char *context, char *extension, const char *flag)
                if (inboxcount2(ext_context, &urgentvoicemails, &newvoicemails, &oldvoicemails)) {
                        ast_log(AST_LOG_ERROR, "Problem in calculating number of voicemail messages available for extension %s\n", extension);
                } else {
-                       snprintf(arguments, sizeof(arguments), "%s %s %s %d %d %d &", externnotify, context, extension, newvoicemails, oldvoicemails, urgentvoicemails);
+                       snprintf(arguments, sizeof(arguments), "%s %s %s %d %d %d &",
+                               externnotify, S_OR(context, "\"\""),
+                               extension, newvoicemails,
+                               oldvoicemails, urgentvoicemails);
                        ast_debug(1, "Executing %s\n", arguments);
                        ast_safe_system(arguments);
                }