mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
ao2_iterator: Mini-audit of the ao2_iterator loops in the new code files.
* Fixed several places where ao2_iterator_destroy() was not called. * Fixed several iterator loop object variable reference problems. * Fixed res_parking AMI actions returning non-zero. Only the AMI logoff action can return non-zero. Review: https://reviewboard.asterisk.org/r/3087/ ........ Merged revisions 404434 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@404436 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -682,6 +682,7 @@ void ast_ari_bridges_list(struct ast_variable *headers,
|
||||
struct ast_json *json_bridge = ast_bridge_snapshot_to_json(snapshot, stasis_app_get_sanitizer());
|
||||
|
||||
if (!json_bridge || ast_json_array_append(json, json_bridge)) {
|
||||
ao2_iterator_destroy(&i);
|
||||
ast_ari_response_alloc_failed(response);
|
||||
return;
|
||||
}
|
||||
|
@@ -663,8 +663,8 @@ void ast_ari_channels_list(struct ast_variable *headers,
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = ao2_iterator_init(snapshots, 0);
|
||||
(obj = ao2_iterator_next(&i)); ao2_cleanup(obj)) {
|
||||
i = ao2_iterator_init(snapshots, 0);
|
||||
while ((obj = ao2_iterator_next(&i))) {
|
||||
RAII_VAR(struct stasis_message *, msg, obj, ao2_cleanup);
|
||||
struct ast_channel_snapshot *snapshot = stasis_message_data(msg);
|
||||
int r;
|
||||
@@ -678,7 +678,6 @@ void ast_ari_channels_list(struct ast_variable *headers,
|
||||
json, ast_channel_snapshot_to_json(snapshot, NULL));
|
||||
if (r != 0) {
|
||||
ast_ari_response_alloc_failed(response);
|
||||
ao2_cleanup(obj);
|
||||
ao2_iterator_destroy(&i);
|
||||
return;
|
||||
}
|
||||
|
@@ -74,12 +74,14 @@ void ast_ari_endpoints_list(struct ast_variable *headers,
|
||||
int r;
|
||||
|
||||
if (!json_endpoint) {
|
||||
ao2_iterator_destroy(&i);
|
||||
return;
|
||||
}
|
||||
|
||||
r = ast_json_array_append(
|
||||
json, json_endpoint);
|
||||
if (r != 0) {
|
||||
ao2_iterator_destroy(&i);
|
||||
ast_ari_response_alloc_failed(response);
|
||||
return;
|
||||
}
|
||||
@@ -144,6 +146,7 @@ void ast_ari_endpoints_list_by_tech(struct ast_variable *headers,
|
||||
r = ast_json_array_append(
|
||||
json, json_endpoint);
|
||||
if (r != 0) {
|
||||
ao2_iterator_destroy(&i);
|
||||
ast_ari_response_alloc_failed(response);
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user