]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Fix leaks in vircapstest
authorJán Tomko <jtomko@redhat.com>
Wed, 12 Feb 2014 09:29:18 +0000 (10:29 +0100)
committerJán Tomko <jtomko@redhat.com>
Wed, 12 Feb 2014 13:41:47 +0000 (14:41 +0100)
Coverity complains about cell_cpus being leaked on error
and valgrind shows 'caps' is leaked on success.

Introduced in eb64e87.

tests/vircapstest.c

index a40771d7cf4783c32f1d21619c8ee9609ca78bca..4264e9e27c7b9a49da7cb582811a51719c6b63e5 100644 (file)
@@ -40,7 +40,7 @@ static virCapsPtr
 buildNUMATopology(int seq)
 {
     virCapsPtr caps;
-    virCapsHostNUMACellCPUPtr cell_cpus;
+    virCapsHostNUMACellCPUPtr cell_cpus = NULL;
     int core_id, cell_id;
     int id;
 
@@ -75,6 +75,8 @@ buildNUMATopology(int seq)
     return caps;
 
 error:
+    virCapabilitiesClearHostNUMACellCPUTopology(cell_cpus, MAX_CPUS_IN_CELL);
+    VIR_FREE(cell_cpus);
     virObjectUnref(caps);
     return NULL;
 
@@ -87,7 +89,7 @@ test_virCapabilitiesGetCpusForNodemask(const void *data ATTRIBUTE_UNUSED)
     const char *nodestr = "3,4,5,6";
     virBitmapPtr nodemask = NULL;
     virBitmapPtr cpumap = NULL;
-    virCapsPtr caps;
+    virCapsPtr caps = NULL;
     int mask_size = 8;
     int ret = -1;
 
@@ -107,6 +109,7 @@ test_virCapabilitiesGetCpusForNodemask(const void *data ATTRIBUTE_UNUSED)
     ret = 0;
 
 error:
+    virObjectUnref(caps);
     virBitmapFree(nodemask);
     virBitmapFree(cpumap);
     return ret;