mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-24 04:12:20 +00:00
qemu: fix memory leak and check mdevPath
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> (cherry picked from commit d58c146a4f083c2d86ac5a4dd450f63751a36913)
This commit is contained in:
parent
bca95e752a
commit
6f2b428fd2
@ -5229,11 +5229,13 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *def,
|
|||||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||||
virDomainHostdevSubsysMediatedDevPtr mdevsrc = &dev->source.subsys.u.mdev;
|
virDomainHostdevSubsysMediatedDevPtr mdevsrc = &dev->source.subsys.u.mdev;
|
||||||
char *ret = NULL;
|
char *ret = NULL;
|
||||||
|
char *mdevPath = NULL;
|
||||||
|
|
||||||
|
if (!(mdevPath = virMediatedDeviceGetSysfsPath(mdevsrc->uuidstr)))
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
virBufferAddLit(&buf, "vfio-pci");
|
virBufferAddLit(&buf, "vfio-pci");
|
||||||
virBufferAsprintf(&buf, ",id=%s,sysfsdev=%s",
|
virBufferAsprintf(&buf, ",id=%s,sysfsdev=%s", dev->info->alias, mdevPath);
|
||||||
dev->info->alias,
|
|
||||||
virMediatedDeviceGetSysfsPath(mdevsrc->uuidstr));
|
|
||||||
|
|
||||||
if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0)
|
if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -5244,6 +5246,7 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *def,
|
|||||||
ret = virBufferContentAndReset(&buf);
|
ret = virBufferContentAndReset(&buf);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
VIR_FREE(mdevPath);
|
||||||
virBufferFreeAndReset(&buf);
|
virBufferFreeAndReset(&buf);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user