mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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>
This commit is contained in:
1 parent
3e7da90205
commit
74ca2b1375
1 file changed
+7
-4
@@ -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);
|
||||
|
||||