From: Igor Mammedov <imamm...@redhat.com> 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 <imamm...@redhat.com> Message-Id: <1508247680-98800-2-git-send-email-imamm...@redhat.com> Signed-off-by: Cornelia Huck <coh...@redhat.com> --- target/s390x/helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; -- 2.13.6