[virt-viewer] ovirt: Fix OvirtApi memory handling

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

 



The oVirt integration code in remote-viewer assumes that
the caller owns a reference on the OvirtApi instance returned
by ovirt_proxy_fetch_api{,finish}.
This is incorrect as these 2 API calls have always been documented as
being (transfer none). This was working so far because libgovirt was
leaking an OvirtApi reference. This bug is fixed upstream, so we now get
a warning on remote-viewer exit about trying to unref an invalid object.

This commit fixes that by taking the ref we expect in OvirtForeignMenu,
and by not releasing a ref we do not own in remote-viewer.c
---
 src/ovirt-foreign-menu.c | 1 +
 src/remote-viewer.c      | 2 --
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/ovirt-foreign-menu.c b/src/ovirt-foreign-menu.c
index e4b3537..7c5a24a 100644
--- a/src/ovirt-foreign-menu.c
+++ b/src/ovirt-foreign-menu.c
@@ -755,6 +755,7 @@ static void api_fetched_cb(GObject *source_object,
         return;
     }
     g_return_if_fail(OVIRT_IS_API(menu->priv->api));
+    g_object_ref(menu->priv->api);
 
     ovirt_foreign_menu_next_async_step(menu, STATE_API);
 }
diff --git a/src/remote-viewer.c b/src/remote-viewer.c
index 8f30116..c3d2880 100644
--- a/src/remote-viewer.c
+++ b/src/remote-viewer.c
@@ -1013,8 +1013,6 @@ error:
         g_object_unref(display);
     if (vm != NULL)
         g_object_unref(vm);
-    if (api != NULL)
-        g_object_unref(api);
     if (proxy != NULL)
         g_object_unref(proxy);
 
-- 
2.4.3

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list



[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux