From 224d269f19f0a6c496dd2218f934a54742d51708 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 17 Sep 2019 11:25:03 +0200 Subject: [PATCH] qemuDomainGetHostdevPath: Drop @freeTmpPath 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 Reviewed-by: Cole Robinson --- src/qemu/qemu_domain.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) 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; }