aboutsummaryrefslogtreecommitdiff
path: root/target/s390x/helper.c
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2017-10-17 15:41:19 +0200
committerCornelia Huck <cohuck@redhat.com>2017-10-20 13:32:10 +0200
commitac7e4cbbabae5a8e0d3948ddebf33351e61497c3 (patch)
treea2c218b5a0c331dbf44fb374822bc48aaeb45c50 /target/s390x/helper.c
parent67915de9f0383ccf4ab8c42dd02aa18dcd79b411 (diff)
s390x: fix cpu object referrence leak in s390x_new_cpu()
object_new() returns cpu with refcnt == 1 and after realize refcnt == 2*. s390x_new_cpu() as an owner of the first refcnt should have released it on exit in both cases (on error and success) to avoid it leaking. Do so for both cases. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <1508247680-98800-2-git-send-email-imammedo@redhat.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Diffstat (limited to 'target/s390x/helper.c')
-rw-r--r--target/s390x/helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/s390x/helper.c b/target/s390x/helper.c
index c41aa4c4ff..9ff7ff4acc 100644
--- a/target/s390x/helper.c
+++ b/target/s390x/helper.c
@@ -73,9 +73,9 @@ S390CPU *s390x_new_cpu(const char *typename, uint32_t core_id, Error **errp)
object_property_set_bool(OBJECT(cpu), true, "realized", &err);
out:
+ object_unref(OBJECT(cpu));
if (err) {
error_propagate(errp, err);
- object_unref(OBJECT(cpu));
cpu = NULL;
}
return cpu;