]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuDomainGetHostdevPath: Drop @freeTmpPath
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 17 Sep 2019 09:25:03 +0000 (11:25 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 21 Oct 2019 11:50:24 +0000 (13:50 +0200)
The @freeTmpPath boolean is used to determine if @tmpPath holds
an allocated memory or is a pointer to a constant string and
therefore if it needs to be freed or not when returning from the
function. Well, we can unify the way we set @tmpPath so that it
always holds an allocated memory and thus always must be freed.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
src/qemu/qemu_domain.c

index c5ef3cb417fe18d7afc7d382c383dbf35ac74e76..e084fb0cc509e75b38c13241cb95a37b55af9656 100644 (file)
@@ -12758,7 +12758,6 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
     virSCSIDevicePtr scsi = NULL;
     virSCSIVHostDevicePtr host = NULL;
     char *tmpPath = NULL;
-    bool freeTmpPath = false;
     bool includeVFIO = false;
     char **tmpPaths = NULL;
     int *tmpPerms = NULL;
@@ -12781,7 +12780,6 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
 
                 if (!(tmpPath = virPCIDeviceGetIOMMUGroupDev(pci)))
                     goto cleanup;
-                freeTmpPath = true;
 
                 perm = VIR_CGROUP_DEVICE_RW;
                 if (teardown) {
@@ -12802,7 +12800,8 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
             if (!usb)
                 goto cleanup;
 
-            tmpPath = (char *)virUSBDeviceGetPath(usb);
+            if (VIR_STRDUP(tmpPath, virUSBDeviceGetPath(usb)) < 0)
+                goto cleanup;
             perm = VIR_CGROUP_DEVICE_RW;
             break;
 
@@ -12823,7 +12822,8 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
                 if (!scsi)
                     goto cleanup;
 
-                tmpPath = (char *)virSCSIDeviceGetPath(scsi);
+                if (VIR_STRDUP(tmpPath, virSCSIDeviceGetPath(scsi)) < 0)
+                    goto cleanup;
                 perm = virSCSIDeviceGetReadonly(scsi) ?
                     VIR_CGROUP_DEVICE_READ : VIR_CGROUP_DEVICE_RW;
             }
@@ -12835,7 +12835,8 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
                 if (!(host = virSCSIVHostDeviceNew(hostsrc->wwpn)))
                     goto cleanup;
 
-                tmpPath = (char *)virSCSIVHostDeviceGetPath(host);
+                if (VIR_STRDUP(tmpPath, virSCSIVHostDeviceGetPath(host)) < 0)
+                    goto cleanup;
                 perm = VIR_CGROUP_DEVICE_RW;
             }
             break;
@@ -12845,7 +12846,6 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
             if (!(tmpPath = virMediatedDeviceGetIOMMUGroupDev(mdevsrc->uuidstr)))
                 goto cleanup;
 
-            freeTmpPath = true;
             includeVFIO = true;
             perm = VIR_CGROUP_DEVICE_RW;
             break;
@@ -12895,8 +12895,7 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
     virUSBDeviceFree(usb);
     virSCSIDeviceFree(scsi);
     virSCSIVHostDeviceFree(host);
-    if (freeTmpPath)
-        VIR_FREE(tmpPath);
+    VIR_FREE(tmpPath);
     return ret;
 }