From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: [PATCH 26/28] mini-os: fix various memory leaks in consfront Date: Wed, 18 Sep 2013 13:53:43 +0200 Message-ID: <20130918115343.GS5664@type.bordeaux.inria.fr> References: <1379475484-25993-1-git-send-email-mattjd@gmail.com> <1379475484-25993-27-git-send-email-mattjd@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: <1379475484-25993-27-git-send-email-mattjd@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Matthew Daley Cc: Stefano Stabellini , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Matthew Daley, le Wed 18 Sep 2013 15:38:02 +1200, a =E9crit : > Coverity-ID: 1055816 > Coverity-ID: 1055817 > Coverity-ID: 1055818 > Signed-off-by: Matthew Daley Acked-by: Samuel Thibault > --- > extras/mini-os/console/xenbus.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > = > diff --git a/extras/mini-os/console/xenbus.c b/extras/mini-os/console/xen= bus.c > index 4194982..b317114 100644 > --- a/extras/mini-os/console/xenbus.c > +++ b/extras/mini-os/console/xenbus.c > @@ -42,7 +42,8 @@ void free_consfront(struct consfront_dev *dev) > = > close: > if (err) free(err); > - xenbus_unwatch_path_token(XBT_NIL, path, path); > + err =3D xenbus_unwatch_path_token(XBT_NIL, path, path); > + if (err) free(err); > = > mask_evtchn(dev->evtchn); > unbind_evtchn(dev->evtchn); > @@ -58,7 +59,7 @@ close: > struct consfront_dev *init_consfront(char *_nodename) > { > xenbus_transaction_t xbt; > - char* err; > + char* err =3D NULL; > char* message=3DNULL; > int retry=3D0; > char* msg =3D NULL; > @@ -87,7 +88,7 @@ struct consfront_dev *init_consfront(char *_nodename) > = > snprintf(path, sizeof(path), "%s/backend-id", nodename); > if ((res =3D xenbus_read_integer(path)) < 0) = > - return NULL; > + goto error; > else > dev->dom =3D res; > evtchn_alloc_unbound(dev->dom, console_handle_input, dev, &dev->evtc= hn); > @@ -170,7 +171,7 @@ done: > msg =3D xenbus_wait_for_state_change(path, &state, &dev->eve= nts); > if (msg !=3D NULL || state !=3D XenbusStateConnected) { > printk("backend not available, state=3D%d\n", state); > - xenbus_unwatch_path_token(XBT_NIL, path, path); > + err =3D xenbus_unwatch_path_token(XBT_NIL, path, path); > goto error; > } > } > -- = > 1.7.10.4 > = -- = Samuel Now I know someone out there is going to claim, "Well then, UNIX is intuiti= ve, because you only need to learn 5000 commands, and then everything else foll= ows from that! Har har har!" (Andy Bates in comp.os.linux.misc, on "intuitive interfaces", slightly defending Macs.)