mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-19 00:00:09 +00:00
res/res_ari: Fix null endpoint handle
The res_ari(POST /channels/create handler) deos not check the endpoint parameter length. And it causes core dump. Fixed it to check the parameter length. Also fixed memory leak. ASTERISK-28169 Change-Id: Ibf10a9eb8a2e3a9ee1e13fbe748b2ecf955c3993
This commit is contained in:
@@ -1748,18 +1748,24 @@ void ast_ari_channels_create(struct ast_variable *headers,
|
|||||||
struct ast_format_cap *request_cap;
|
struct ast_format_cap *request_cap;
|
||||||
struct ast_channel *originator;
|
struct ast_channel *originator;
|
||||||
|
|
||||||
chan_data = ast_calloc(1, sizeof(*chan_data));
|
|
||||||
if (!chan_data) {
|
|
||||||
ast_ari_response_alloc_failed(response);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ast_strlen_zero(args->originator) && !ast_strlen_zero(args->formats)) {
|
if (!ast_strlen_zero(args->originator) && !ast_strlen_zero(args->formats)) {
|
||||||
ast_ari_response_error(response, 400, "Bad Request",
|
ast_ari_response_error(response, 400, "Bad Request",
|
||||||
"Originator and formats can't both be specified");
|
"Originator and formats can't both be specified");
|
||||||
return;
|
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);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
chan_data->stasis_stuff = ast_str_create(32);
|
chan_data->stasis_stuff = ast_str_create(32);
|
||||||
if (!chan_data->stasis_stuff) {
|
if (!chan_data->stasis_stuff) {
|
||||||
ast_ari_response_alloc_failed(response);
|
ast_ari_response_alloc_failed(response);
|
||||||
|
|||||||
Reference in New Issue
Block a user