Fix a crash caused by muting and unmuting a channel in ARI without specifying a direc...
authorJoshua Colp <jcolp@digium.com>
Thu, 3 Oct 2013 19:06:48 +0000 (19:06 +0000)
committerJoshua Colp <jcolp@digium.com>
Thu, 3 Oct 2013 19:06:48 +0000 (19:06 +0000)
(closes issue ASTERISK-22637)
Reported by: Scott Griepentrog

Patch by Matt Jordan, whose office I have taken over in the name of Canada.
........

Merged revisions 400401 from http://svn.asterisk.org/svn/asterisk/branches/12

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

res/ari/resource_channels.c

index 4d52281..aaf04a3 100644 (file)
@@ -152,6 +152,13 @@ void ast_ari_mute_channel(struct ast_variable *headers, struct ast_mute_channel_
                return;
        }
 
+       if (ast_strlen_zero(args->direction)) {
+               ast_ari_response_error(
+                       response, 400, "Bad Request",
+                       "Direction is required");
+               return;
+       }
+
        if (!strcmp(args->direction, "in")) {
                direction = AST_MUTE_DIRECTION_READ;
        } else if (!strcmp(args->direction, "out")) {
@@ -181,6 +188,13 @@ void ast_ari_unmute_channel(struct ast_variable *headers, struct ast_unmute_chan
                return;
        }
 
+       if (ast_strlen_zero(args->direction)) {
+               ast_ari_response_error(
+                       response, 400, "Bad Request",
+                       "Direction is required");
+               return;
+       }
+
        if (!strcmp(args->direction, "in")) {
                direction = AST_MUTE_DIRECTION_READ;
        } else if (!strcmp(args->direction, "out")) {