diff options
Diffstat (limited to 'res/res_ari_bridges.c')
-rw-r--r-- | res/res_ari_bridges.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/res/res_ari_bridges.c b/res/res_ari_bridges.c index bc8e20041..d3b3a649d 100644 --- a/res/res_ari_bridges.c +++ b/res/res_ari_bridges.c @@ -300,8 +300,16 @@ static void ast_ari_add_channel_to_bridge_cb( goto fin; } - args.channel_count = ast_app_separate_args( - args.channel_parse, ',', vals, ARRAY_LEN(vals)); + if (strlen(args.channel_parse) == 0) { + /* ast_app_separate_args can't handle "" */ + args.channel_count = 1; + vals[0] = args.channel_parse; + } else { + args.channel_count = ast_app_separate_args( + args.channel_parse, ',', vals, + ARRAY_LEN(vals)); + } + if (args.channel_count == 0) { ast_ari_response_alloc_failed(response); goto fin; @@ -403,8 +411,16 @@ static void ast_ari_remove_channel_from_bridge_cb( goto fin; } - args.channel_count = ast_app_separate_args( - args.channel_parse, ',', vals, ARRAY_LEN(vals)); + if (strlen(args.channel_parse) == 0) { + /* ast_app_separate_args can't handle "" */ + args.channel_count = 1; + vals[0] = args.channel_parse; + } else { + args.channel_count = ast_app_separate_args( + args.channel_parse, ',', vals, + ARRAY_LEN(vals)); + } + if (args.channel_count == 0) { ast_ari_response_alloc_failed(response); goto fin; |