mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
stasis_bridges.c: Fix off-nominal json memory leaks.
Change-Id: Ib1181a36b317c86bff1ef2e44a17a0b1c73cfdc8
This commit is contained in:
@@ -868,6 +868,8 @@ static struct ast_json *attended_transfer_to_json(struct stasis_message *msg,
|
|||||||
if (transfer_msg->transferee) {
|
if (transfer_msg->transferee) {
|
||||||
json_transferee = ast_channel_snapshot_to_json(transfer_msg->transferee, sanitize);
|
json_transferee = ast_channel_snapshot_to_json(transfer_msg->transferee, sanitize);
|
||||||
if (!json_transferee) {
|
if (!json_transferee) {
|
||||||
|
ast_json_unref(json_transferer2);
|
||||||
|
ast_json_unref(json_transferer1);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -875,6 +877,9 @@ static struct ast_json *attended_transfer_to_json(struct stasis_message *msg,
|
|||||||
if (transfer_msg->target) {
|
if (transfer_msg->target) {
|
||||||
json_target = ast_channel_snapshot_to_json(transfer_msg->target, sanitize);
|
json_target = ast_channel_snapshot_to_json(transfer_msg->target, sanitize);
|
||||||
if (!json_target) {
|
if (!json_target) {
|
||||||
|
ast_json_unref(json_transferee);
|
||||||
|
ast_json_unref(json_transferer2);
|
||||||
|
ast_json_unref(json_transferer1);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -887,9 +892,12 @@ static struct ast_json *attended_transfer_to_json(struct stasis_message *msg,
|
|||||||
"result", result_strs[transfer_msg->result],
|
"result", result_strs[transfer_msg->result],
|
||||||
"is_external", ast_json_boolean(transfer_msg->is_external));
|
"is_external", ast_json_boolean(transfer_msg->is_external));
|
||||||
if (!out) {
|
if (!out) {
|
||||||
|
ast_json_unref(json_target);
|
||||||
|
ast_json_unref(json_transferee);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (json_transferee && ast_json_object_set(out, "transferee", json_transferee)) {
|
if (json_transferee && ast_json_object_set(out, "transferee", json_transferee)) {
|
||||||
|
ast_json_unref(json_target);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (json_target && ast_json_object_set(out, "transfer_target", json_target)) {
|
if (json_target && ast_json_object_set(out, "transfer_target", json_target)) {
|
||||||
|
Reference in New Issue
Block a user