diff options
author | Richard Mudgett <rmudgett@digium.com> | 2017-11-03 18:08:37 -0500 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2017-11-06 13:10:56 -0500 |
commit | e913ceeddecd4b93b6cbf15acd423410b07c3bd0 (patch) | |
tree | 943f7f6bab01348782d6df02f6f70707d08ac52e /main | |
parent | 457abd06b4b6e89f80e106ef710bf2cf8932b7f8 (diff) |
stasis_bridges.c: Fix off-nominal json memory leaks.
Change-Id: Ib1181a36b317c86bff1ef2e44a17a0b1c73cfdc8
Diffstat (limited to 'main')
-rw-r--r-- | main/stasis_bridges.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/main/stasis_bridges.c b/main/stasis_bridges.c index 7f53bfe2d..d197e4d2d 100644 --- a/main/stasis_bridges.c +++ b/main/stasis_bridges.c @@ -868,6 +868,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; } } @@ -875,6 +877,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; } } @@ -887,9 +892,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)) { |