]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
stasis_bridges.c: Fix off-nominal json memory leaks.
authorRichard Mudgett <rmudgett@digium.com>
Fri, 3 Nov 2017 23:08:37 +0000 (18:08 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 6 Nov 2017 18:09:27 +0000 (12:09 -0600)
Change-Id: Ib1181a36b317c86bff1ef2e44a17a0b1c73cfdc8

main/stasis_bridges.c

index 8f97e9818a1c47fee5bdab77864f97a9d960ff0e..413c9be9d259a5af3a1747caa7ab9d8fc2f9eafd 100644 (file)
@@ -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)) {