From: Pavel Hrdina Date: Fri, 7 Apr 2017 11:43:25 +0000 (+0200) Subject: qemu: fix memory leak and check mdevPath X-Git-Tag: v3.3.0-rc1~241 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d58c146a4f083c2d86ac5a4dd450f63751a36913;p=thirdparty%2Flibvirt.git qemu: fix memory leak and check mdevPath Signed-off-by: Pavel Hrdina --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 445c696d6e..b3c26d2d80 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5229,11 +5229,13 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *def, virBuffer buf = VIR_BUFFER_INITIALIZER; virDomainHostdevSubsysMediatedDevPtr mdevsrc = &dev->source.subsys.u.mdev; char *ret = NULL; + char *mdevPath = NULL; + + if (!(mdevPath = virMediatedDeviceGetSysfsPath(mdevsrc->uuidstr))) + goto cleanup; virBufferAddLit(&buf, "vfio-pci"); - virBufferAsprintf(&buf, ",id=%s,sysfsdev=%s", - dev->info->alias, - virMediatedDeviceGetSysfsPath(mdevsrc->uuidstr)); + virBufferAsprintf(&buf, ",id=%s,sysfsdev=%s", dev->info->alias, mdevPath); if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0) goto cleanup; @@ -5244,6 +5246,7 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *def, ret = virBufferContentAndReset(&buf); cleanup: + VIR_FREE(mdevPath); virBufferFreeAndReset(&buf); return ret; }