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:
parent
e0a4df64cd
commit
cb83350230
|
@ -1748,18 +1748,24 @@ void ast_ari_channels_create(struct ast_variable *headers,
|
|||
struct ast_format_cap *request_cap;
|
||||
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)) {
|
||||
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);
|
||||
return;
|
||||
}
|
||||
|
||||
chan_data->stasis_stuff = ast_str_create(32);
|
||||
if (!chan_data->stasis_stuff) {
|
||||
ast_ari_response_alloc_failed(response);
|
||||
|
|
Loading…
Reference in New Issue