]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: fix memory leak and check mdevPath
authorPavel Hrdina <phrdina@redhat.com>
Fri, 7 Apr 2017 11:43:25 +0000 (13:43 +0200)
committerCole Robinson <crobinso@redhat.com>
Wed, 10 May 2017 19:19:35 +0000 (15:19 -0400)
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit d58c146a4f083c2d86ac5a4dd450f63751a36913)

src/qemu/qemu_command.c

index 9157c2a264ac8d5609b4e25186f227f54bd4dc0a..2d1328cf9940b6efe33a828d62559588a2a1577b 100644 (file)
@@ -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;
 }