From: Matthew Daley Date: Wed, 18 Sep 2013 03:38:00 +0000 (+1200) Subject: mini-os: fix various memory leaks in netfront X-Git-Tag: xen-4.4.0-rc1~5 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=d25131d27e17c82b1bc4a10c55212f56fcc988ab;p=people%2Fliuw%2Fmini-os.git mini-os: fix various memory leaks in netfront Coverity-ID: 1055832 Coverity-ID: 1055833 Signed-off-by: Matthew Daley Acked-by: Samuel Thibault --- diff --git a/netfront.c b/netfront.c index a999985..3a5be64 100644 --- a/netfront.c +++ b/netfront.c @@ -506,7 +506,7 @@ int netfront_tap_open(char *nodename) { void shutdown_netfront(struct netfront_dev *dev) { - char* err = NULL; + char* err = 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 = 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 = 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 = xenbus_rm(XBT_NIL, nodename); + if (err2) free(err2); snprintf(nodename, sizeof(nodename), "%s/event-channel", dev->nodename); - xenbus_rm(XBT_NIL, nodename); + err2 = xenbus_rm(XBT_NIL, nodename); + if (err2) free(err2); snprintf(nodename, sizeof(nodename), "%s/request-rx-copy", dev->nodename); - xenbus_rm(XBT_NIL, nodename); + err2 = xenbus_rm(XBT_NIL, nodename); + if (err2) free(err2); if (!err) free_netfront(dev);