From 7e5278773f73380d837fd6e339557c128e16157f Mon Sep 17 00:00:00 2001 From: Christophe Fergeau Date: Sat, 25 Jan 2014 23:43:57 +0100 Subject: 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. --- libvirt-designer/libvirt-designer-domain.c | 4 ++++ 1 file changed, 4 insertions(+) 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; -- cgit v1.2.3