From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59747) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XWPx9-0003nJ-GS for qemu-devel@nongnu.org; Tue, 23 Sep 2014 09:16:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XWPx3-0004WS-AH for qemu-devel@nongnu.org; Tue, 23 Sep 2014 09:16:23 -0400 Received: from cantor2.suse.de ([195.135.220.15]:47174 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XWPx3-0004Vu-2d for qemu-devel@nongnu.org; Tue, 23 Sep 2014 09:16:17 -0400 Message-ID: <54217299.7000408@suse.de> Date: Tue, 23 Sep 2014 15:16:09 +0200 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1411442750-6992-1-git-send-email-arei.gonglei@huawei.com> <1411442750-6992-2-git-send-email-arei.gonglei@huawei.com> In-Reply-To: <1411442750-6992-2-git-send-email-arei.gonglei@huawei.com> Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 1/2] qom: add error handler for object_property_print() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: arei.gonglei@huawei.com, qemu-devel@nongnu.org Cc: luonengjun@huawei.com, weidong.huang@huawei.com, armbru@redhat.com, pbonzini@redhat.com Hi, Am 23.09.2014 um 05:25 schrieb arei.gonglei@huawei.com: > From: Gonglei >=20 > Avoid the caller of object_property_print() leaking string > argument's memory, such as qdev_print_props() when > encounter errors. >=20 > Cc: Paolo Bonzini > Signed-off-by: Gonglei > --- > qom/object.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) >=20 > diff --git a/qom/object.c b/qom/object.c > index da0919a..74779e6 100644 > --- a/qom/object.c > +++ b/qom/object.c > @@ -1010,11 +1010,19 @@ char *object_property_print(Object *obj, const = char *name, bool human, > Error **errp) > { > StringOutputVisitor *mo; > - char *string; > + char *string =3D NULL; > + Error *local_err =3D NULL; > =20 > mo =3D string_output_visitor_new(human); > - object_property_get(obj, string_output_get_visitor(mo), name, errp= ); > + object_property_get(obj, string_output_get_visitor(mo), name, &loc= al_err); > + if (local_err) { > + error_propagate(errp, local_err); > + goto fail; > + } > + > string =3D string_output_get_string(mo); > + > +fail: Permission to rename the label to "out" as in 2/2? Series looks good otherwise. Regards, Andreas > string_output_visitor_cleanup(mo); > return string; > } >=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