[libvirt] [PATCH v14 01/49] virscsi: fix memory leak

Chunyan Liu cyliu at suse.com
Fri Mar 7 10:52:28 UTC 2014


Signed-off-by: Chunyan Liu <cyliu at suse.com>
---
 src/util/virscsi.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/util/virscsi.c b/src/util/virscsi.c
index 69eae24..627b3f8 100644
--- a/src/util/virscsi.c
+++ b/src/util/virscsi.c
@@ -296,12 +296,17 @@ virSCSIDeviceSetUsedBy(virSCSIDevicePtr dev,
     virUsedByInfoPtr copy;
     if (VIR_ALLOC(copy) < 0)
         return -1;
-    if (VIR_STRDUP(copy->drvname, drvname) < 0)
-        return -1;
-    if (VIR_STRDUP(copy->domname, domname) < 0)
-        return -1;
+    if (VIR_STRDUP(copy->drvname, drvname) < 0 ||
+        VIR_STRDUP(copy->domname, domname) < 0)
+        goto cleanup;
 
     return VIR_APPEND_ELEMENT(dev->used_by, dev->n_used_by, copy);
+
+cleanup:
+    VIR_FREE(copy->drvname);
+    VIR_FREE(copy->domname);
+    VIR_FREE(copy);
+    return -1;
 }
 
 bool
-- 
1.9.0




More information about the libvir-list mailing list