From a9dea6a38e2dcd3d2b112b244588fe78a7af98d0 Mon Sep 17 00:00:00 2001 From: sungtae kim Date: Tue, 9 Jun 2020 11:57:24 +0000 Subject: [PATCH] res_ari: Fix create request body parameter parsing. If parameters were passed in the body as JSON to the create route they were not being parsed before checking to ensure that required fields were set. This change moves the parsing so it occurs before checking. ASTERISK-28940 Change-Id: I898b4c3c7ae1cde19a6840e59f498822701cf5cf --- res/ari/resource_channels.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/res/ari/resource_channels.c b/res/ari/resource_channels.c index 3603dee1c4..680d777167 100644 --- a/res/ari/resource_channels.c +++ b/res/ari/resource_channels.c @@ -1794,18 +1794,6 @@ void ast_ari_channels_create(struct ast_variable *headers, struct ast_format_cap *request_cap; struct ast_channel *originator; - if (!ast_strlen_zero(args->originator) && !ast_strlen_zero(args->formats)) { - ast_ari_response_error(response, 400, "Bad Request", - "Originator and formats can't both be specified"); - return; - } - - if (ast_strlen_zero(args->endpoint)) { - ast_ari_response_error(response, 400, "Bad Request", - "Endpoint must be specified"); - return; - } - /* Parse any query parameters out of the body parameter */ if (args->variables) { struct ast_json *json_variables; @@ -1818,6 +1806,18 @@ void ast_ari_channels_create(struct ast_variable *headers, } } + if (!ast_strlen_zero(args->originator) && !ast_strlen_zero(args->formats)) { + ast_ari_response_error(response, 400, "Bad Request", + "Originator and formats can't both be specified"); + return; + } + + if (ast_strlen_zero(args->endpoint)) { + ast_ari_response_error(response, 400, "Bad Request", + "Endpoint must be specified"); + return; + } + chan_data = ast_calloc(1, sizeof(*chan_data)); if (!chan_data) { ast_ari_response_alloc_failed(response); -- 2.47.2