]> xenbits.xensource.com Git - xen.git/commitdiff
libxl: don't leak pcidevs in libxl_pcidev_assignable
authorMatthew Daley <mattd@bugfuzz.com>
Sun, 1 Dec 2013 10:15:03 +0000 (23:15 +1300)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Mon, 2 Dec 2013 12:09:14 +0000 (12:09 +0000)
Coverity-ID: 1055896
Signed-off-by: Matthew Daley <mattd@bugfuzz.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl_pci.c

index 095d5643d94735b749c9d9389edaad884d5a9692..2e5247031a98cea3a97bccc58c0f60f366bb71ba 100644 (file)
@@ -1021,11 +1021,10 @@ static int libxl_pcidev_assignable(libxl_ctx *ctx, libxl_device_pci *pcidev)
             pcidevs[i].bus == pcidev->bus &&
             pcidevs[i].dev == pcidev->dev &&
             pcidevs[i].func == pcidev->func)
-        {
-            return 1;
-        }
+            break;
     }
-    return 0;
+    free(pcidevs);
+    return i != num;
 }
 
 int libxl__device_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, int starting)