[PATCH 2/2] qemuhotplugtest: Resolve some memleaks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If testQemuHotplugAttach succeeds, the vm->def steals the dev pointer.
However, not the envelope, which needs to be freed. In addition,
driver.config is allocated, but never freed.
---
 tests/qemuhotplugtest.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index d4971c2..5e8c5f0 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -89,6 +89,10 @@ testQemuHotplugAttach(virDomainObjPtr vm,
     switch (dev->type) {
     case VIR_DOMAIN_DEVICE_CHR:
         ret = qemuDomainAttachChrDevice(&driver, vm, dev->data.chr);
+        if (!ret) {
+            /* vm->def stolen dev->data.chr so we ought to avoid freeing it */
+            dev->data.chr = NULL;
+        }
         break;
     default:
         if (virTestGetVerbose())
@@ -214,11 +218,6 @@ testQemuHotplug(const void *data)
     switch (test->action) {
     case ATTACH:
         ret = testQemuHotplugAttach(vm, dev);
-        if (!ret) {
-            /* avoid @dev double free on success,
-             * as @dev is part of vm->def now */
-            dev = NULL;
-        }
         break;
 
     case DETACH:
@@ -323,6 +322,7 @@ mymain(void)
 
     virObjectUnref(driver.caps);
     virObjectUnref(driver.xmlopt);
+    virObjectUnref(driver.config);
     return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
-- 
1.8.1.5

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]