[libvirt] [libvirt-designer] Fix various memory leaks of libosinfo data

--- libvirt-designer/libvirt-designer-domain.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libvirt-designer/libvirt-designer-domain.c b/libvirt-designer/libvirt-designer-domain.c index 9dc1d7d..b1aa838 100644 --- a/libvirt-designer/libvirt-designer-domain.c +++ b/libvirt-designer/libvirt-designer-domain.c @@ -1066,6 +1066,7 @@ gvir_designer_domain_get_supported_disk_bus_types(GVirDesignerDomain *design) ret = g_list_copy(ret); cleanup: + g_list_free(devs); if (dev_list != NULL) g_object_unref(G_OBJECT(dev_list)); g_hash_table_destroy(bus_hash); @@ -1623,6 +1624,7 @@ gvir_designer_domain_get_resources(OsinfoResourcesList *res_list, break; } } + g_list_free(elem_list); } @@ -1678,5 +1680,11 @@ gboolean gvir_designer_domain_setup_resources(GVirDesignerDomain *design, gvir_config_domain_set_memory(design->priv->config, ram); cleanup: + if (res_list_min != NULL) + g_object_unref(G_OBJECT(res_list_min)); + if (res_list_rec != NULL) + g_object_unref(G_OBJECT(res_list_rec)); + g_object_unref(G_OBJECT(os)); + return ret; } -- 1.8.1.4

On 28.03.2013 17:41, Christophe Fergeau wrote:
--- libvirt-designer/libvirt-designer-domain.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/libvirt-designer/libvirt-designer-domain.c b/libvirt-designer/libvirt-designer-domain.c index 9dc1d7d..b1aa838 100644 --- a/libvirt-designer/libvirt-designer-domain.c +++ b/libvirt-designer/libvirt-designer-domain.c @@ -1066,6 +1066,7 @@ gvir_designer_domain_get_supported_disk_bus_types(GVirDesignerDomain *design) ret = g_list_copy(ret);
cleanup: + g_list_free(devs); if (dev_list != NULL) g_object_unref(G_OBJECT(dev_list)); g_hash_table_destroy(bus_hash); @@ -1623,6 +1624,7 @@ gvir_designer_domain_get_resources(OsinfoResourcesList *res_list, break; } } + g_list_free(elem_list); }
@@ -1678,5 +1680,11 @@ gboolean gvir_designer_domain_setup_resources(GVirDesignerDomain *design, gvir_config_domain_set_memory(design->priv->config, ram);
cleanup: + if (res_list_min != NULL) + g_object_unref(G_OBJECT(res_list_min)); + if (res_list_rec != NULL) + g_object_unref(G_OBJECT(res_list_rec)); + g_object_unref(G_OBJECT(os)); + return ret; }
ACK Michal
participants (2)
-
Christophe Fergeau
-
Michal Privoznik