aboutsummaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorMatthew Daley <mattjd@gmail.com>2013-09-18 15:37:58 +1200
committerIan Campbell <ian.campbell@citrix.com>2013-09-21 16:41:55 +0100
commit74ca2b137585eba5e5a64a301d3628a07460a28f (patch)
tree2c40dc931a15fa96bca90089365ed0f5b1a2989d /extras
parent3e7da90205a08b9ab31f4ada97c2d5bab491c2ec (diff)
downloadxen-74ca2b137585eba5e5a64a301d3628a07460a28f.tar.gz
xen-74ca2b137585eba5e5a64a301d3628a07460a28f.tar.bz2
xen-74ca2b137585eba5e5a64a301d3628a07460a28f.zip
mini-os: fix various memory leaks in blkfront
Coverity-ID: 1055814 Coverity-ID: 1055815 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/blkfront.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/extras/mini-os/blkfront.c b/extras/mini-os/blkfront.c
index ddcf665898..aead6bd052 100644
--- a/extras/mini-os/blkfront.c
+++ b/extras/mini-os/blkfront.c
@@ -250,7 +250,7 @@ error:
void shutdown_blkfront(struct blkfront_dev *dev)
{
- char* err = NULL;
+ char* err = NULL, *err2;
XenbusState state;
char path[strlen(dev->backend) + strlen("/state") + 1];
@@ -295,12 +295,15 @@ void shutdown_blkfront(struct blkfront_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/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);
if (!err)
free_blkfront(dev);