summaryrefslogtreecommitdiff
path: root/main/stasis_bridges.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2017-11-03 18:08:37 -0500
committerRichard Mudgett <rmudgett@digium.com>2017-11-06 12:09:27 -0600
commit593f789563eb23320050fcd778ccd4efe738b9fb (patch)
treeda1cee148beb7cb44046a3a6b8bd854450f9a781 /main/stasis_bridges.c
parent0eee42626a689c7425cd21b63144943e6ada033e (diff)
stasis_bridges.c: Fix off-nominal json memory leaks.
Change-Id: Ib1181a36b317c86bff1ef2e44a17a0b1c73cfdc8
Diffstat (limited to 'main/stasis_bridges.c')
-rw-r--r--main/stasis_bridges.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/main/stasis_bridges.c b/main/stasis_bridges.c
index 8f97e9818..413c9be9d 100644
--- a/main/stasis_bridges.c
+++ b/main/stasis_bridges.c
@@ -857,6 +857,8 @@ static struct ast_json *attended_transfer_to_json(struct stasis_message *msg,
if (transfer_msg->transferee) {
json_transferee = ast_channel_snapshot_to_json(transfer_msg->transferee, sanitize);
if (!json_transferee) {
+ ast_json_unref(json_transferer2);
+ ast_json_unref(json_transferer1);
return NULL;
}
}
@@ -864,6 +866,9 @@ static struct ast_json *attended_transfer_to_json(struct stasis_message *msg,
if (transfer_msg->target) {
json_target = ast_channel_snapshot_to_json(transfer_msg->target, sanitize);
if (!json_target) {
+ ast_json_unref(json_transferee);
+ ast_json_unref(json_transferer2);
+ ast_json_unref(json_transferer1);
return NULL;
}
}
@@ -876,9 +881,12 @@ static struct ast_json *attended_transfer_to_json(struct stasis_message *msg,
"result", result_strs[transfer_msg->result],
"is_external", ast_json_boolean(transfer_msg->is_external));
if (!out) {
+ ast_json_unref(json_target);
+ ast_json_unref(json_transferee);
return NULL;
}
if (json_transferee && ast_json_object_set(out, "transferee", json_transferee)) {
+ ast_json_unref(json_target);
return NULL;
}
if (json_target && ast_json_object_set(out, "transfer_target", json_target)) {