From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: [PATCH 24/28] mini-os: fix various memory leaks in netfront Date: Wed, 18 Sep 2013 13:50:37 +0200 Message-ID: <20130918115037.GQ5664@type.bordeaux.inria.fr> References: <1379475484-25993-1-git-send-email-mattjd@gmail.com> <1379475484-25993-25-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-25-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:00 +1200, a =E9crit : > Coverity-ID: 1055832 > Coverity-ID: 1055833 > Signed-off-by: Matthew Daley Acked-by: Samuel Thibault > --- > extras/mini-os/netfront.c | 17 +++++++++++------ > 1 file changed, 11 insertions(+), 6 deletions(-) > = > diff --git a/extras/mini-os/netfront.c b/extras/mini-os/netfront.c > index a999985..3a5be64 100644 > --- a/extras/mini-os/netfront.c > +++ b/extras/mini-os/netfront.c > @@ -506,7 +506,7 @@ int netfront_tap_open(char *nodename) { > = > void shutdown_netfront(struct netfront_dev *dev) > { > - char* err =3D NULL; > + char* err =3D NULL, *err2; > XenbusState state; > = > char path[strlen(dev->backend) + strlen("/state") + 1]; > @@ -549,16 +549,21 @@ void shutdown_netfront(struct netfront_dev *dev) > = > close: > if (err) free(err); > - xenbus_unwatch_path_token(XBT_NIL, path, path); > + err2 =3D xenbus_unwatch_path_token(XBT_NIL, path, path); > + if (err2) free(err2); > = > snprintf(nodename, sizeof(nodename), "%s/tx-ring-ref", dev->nodename= ); > - xenbus_rm(XBT_NIL, nodename); > + err2 =3D xenbus_rm(XBT_NIL, nodename); > + if (err2) free(err2); > snprintf(nodename, sizeof(nodename), "%s/rx-ring-ref", dev->nodename= ); > - xenbus_rm(XBT_NIL, nodename); > + err2 =3D xenbus_rm(XBT_NIL, nodename); > + if (err2) free(err2); > snprintf(nodename, sizeof(nodename), "%s/event-channel", dev->nodena= me); > - xenbus_rm(XBT_NIL, nodename); > + err2 =3D xenbus_rm(XBT_NIL, nodename); > + if (err2) free(err2); > snprintf(nodename, sizeof(nodename), "%s/request-rx-copy", dev->node= name); > - xenbus_rm(XBT_NIL, nodename); > + err2 =3D xenbus_rm(XBT_NIL, nodename); > + if (err2) free(err2); > = > if (!err) > free_netfront(dev); > -- = > 1.7.10.4 > = -- = Samuel As usual, this being a 1.3.x release, I haven't even compiled this kernel yet. So if it works, you should be doubly impressed. (Linus Torvalds, announcing kernel 1.3.3 on the linux-kernel mailing list.)