From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:42314) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TB54q-0004H0-O6 for qemu-devel@nongnu.org; Mon, 10 Sep 2012 10:35:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TB54m-0006Kt-JV for qemu-devel@nongnu.org; Mon, 10 Sep 2012 10:35:04 -0400 Message-ID: <504DFA8C.2000405@suse.de> Date: Mon, 10 Sep 2012 16:34:52 +0200 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1342724013-1633-1-git-send-email-minyard@acm.org> <1342724013-1633-11-git-send-email-minyard@acm.org> <5016917E.9080109@suse.de> In-Reply-To: <5016917E.9080109@suse.de> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 10/18] qom: release previous object when setting List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Corey Minyard , Paolo Bonzini , qemu-devel@nongnu.org, minyard@acm.org, qemu-stable@nongnu.org Am 30.07.2012 15:51, schrieb Andreas F=E4rber: > Am 19.07.2012 20:53, schrieb minyard@acm.org: >> From: Corey Minyard >> >> When setting an object, if you don't release the previous object >> that was there, it may become unusable. This change allows a >> chardev to be removed from one object's properties and added to >> another's. >> >> Signed-off-by: Corey Minyard >> Acked-by: Paolo Bonzini >=20 > Reviewed-by: Andreas F=E4rber >=20 > Anthony, this looks like a valid and generic QOM memory leak fix to me. > Suggesting to cherry-pick this patch to master and stable-1.1. Ping? >=20 > Andreas >=20 >> --- >> qom/object.c | 3 +++ >> 1 files changed, 3 insertions(+), 0 deletions(-) >> >> diff --git a/qom/object.c b/qom/object.c >> index 00bb3b0..f0ff9cc 100644 >> --- a/qom/object.c >> +++ b/qom/object.c >> @@ -731,6 +731,9 @@ void object_property_set(Object *obj, Visitor *v, = const char *name, >> if (!prop->set) { >> error_set(errp, QERR_PERMISSION_DENIED); >> } else { >> + if (prop->release) { >> + prop->release(obj, name, prop->opaque); >> + } >> prop->set(obj, v, prop->opaque, name, errp); >> } >> } >> >=20 >=20 --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg