aboutsummaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorMatthew Daley <mattjd@gmail.com>2013-09-18 15:38:00 +1200
committerIan Campbell <ian.campbell@citrix.com>2013-09-21 16:42:20 +0100
commit927c43c82b4af7347d667da5549503bb5af17b97 (patch)
treed90313119302c75d3ac39aa95a30f7d57c4c8f65 /extras
parent00f502ebfebd60eb24452c5ae1c467f559157e94 (diff)
downloadxen-927c43c82b4af7347d667da5549503bb5af17b97.tar.gz
xen-927c43c82b4af7347d667da5549503bb5af17b97.tar.bz2
xen-927c43c82b4af7347d667da5549503bb5af17b97.zip
mini-os: fix various memory leaks in netfront
Coverity-ID: 1055832 Coverity-ID: 1055833 Signed-off-by: Matthew Daley <mattjd@gmail.com> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'extras')
-rw-r--r--extras/mini-os/netfront.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/extras/mini-os/netfront.c b/extras/mini-os/netfront.c
index a999985575..3a5be645de 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 = 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);