diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index c5ef3cb417..e084fb0cc5 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -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; }