If no '?' is found in the arguments, don't attempt to continue.
authorTilghman Lesher <tilghman@meg.abyt.es>
Tue, 30 Oct 2007 22:15:28 +0000 (22:15 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Tue, 30 Oct 2007 22:15:28 +0000 (22:15 +0000)
Reported by: blitzrage
Fixed by: tilghman
Closes issue #11111

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

apps/app_exec.c

index 73d534a..12b91a4 100644 (file)
@@ -166,6 +166,11 @@ static int execif_exec(struct ast_channel *chan, void *data)
        char *parse = ast_strdupa(data);
 
        AST_NONSTANDARD_APP_ARGS(expr, parse, '?');
+       if (ast_strlen_zero(expr.remainder)) {
+               ast_log(LOG_ERROR, "Usage: ExecIf(<cond>?<appiftrue>(<args>):<appiffalse>(<args))\n");
+               return -1;
+       }
+
        AST_NONSTANDARD_APP_ARGS(apps, expr.remainder, ':');
 
        if (apps.t && (truedata = strchr(apps.t, '('))) {