summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2014-01-25 23:43:57 +0100
committerChristophe Fergeau <cfergeau@redhat.com>2015-03-03 12:07:29 +0100
commit7e5278773f73380d837fd6e339557c128e16157f (patch)
treed9c1283a6d265cad4cd9046e06475c586fa93567
parente46bbd716031df04674b681d24fe88d78bf7da48 (diff)
Fix GVirConfigDomainDiskDriver leak
A GVirConfigDomainDiskDriver is created in gvir_designer_domain_add_disk_full but it's never unref'ed. This commit fixes that, including when an error occurs.
-rw-r--r--libvirt-designer/libvirt-designer-domain.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libvirt-designer/libvirt-designer-domain.c b/libvirt-designer/libvirt-designer-domain.c
index a060a81..c1a0e83 100644
--- a/libvirt-designer/libvirt-designer-domain.c
+++ b/libvirt-designer/libvirt-designer-domain.c
@@ -1626,6 +1626,8 @@ gvir_designer_domain_add_disk_full(GVirDesignerDomain *design,
gvir_config_domain_disk_set_type(disk, type);
gvir_config_domain_disk_set_source(disk, path);
gvir_config_domain_disk_set_driver(disk, driver);
+ g_object_unref(driver);
+ driver = NULL;
controller = gvir_designer_domain_get_preferred_disk_controller(design, NULL);
if (controller == NULL)
@@ -1656,6 +1658,8 @@ gvir_designer_domain_add_disk_full(GVirDesignerDomain *design,
error:
g_free(target_gen);
+ if (driver != NULL)
+ g_object_unref(driver);
if (disk)
g_object_unref(disk);
return NULL;