diff options
author | Christophe Fergeau <cfergeau@redhat.com> | 2013-03-30 20:11:09 +0100 |
---|---|---|
committer | Christophe Fergeau <cfergeau@redhat.com> | 2013-04-11 14:29:03 +0200 |
commit | 5fabdf5888cbafcd2b9a7322fb00671df91314a2 (patch) | |
tree | a9d27fa3f221bfd3d44282ff1f5ae04a1800c34a | |
parent | e76edbab6615a3d0b9be4166b21926fcd739c23d (diff) |
virtxml: Fix 2 memory leaks
-rw-r--r-- | examples/virtxml.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/examples/virtxml.c b/examples/virtxml.c index d4a5fe2..49a7b4e 100644 --- a/examples/virtxml.c +++ b/examples/virtxml.c @@ -178,6 +178,7 @@ add_disk(gpointer data, gpointer user_data) { GVirDesignerDomain *domain = (GVirDesignerDomain *) user_data; + GVirConfigDomainDisk *disk; char *path = (char *) data; char *format = NULL; struct stat buf; @@ -196,10 +197,12 @@ add_disk(gpointer data, if (!stat(path, &buf) && !S_ISREG(buf.st_mode)) { - gvir_designer_domain_add_disk_device(domain, path, &error); + disk = gvir_designer_domain_add_disk_device(domain, path, &error); } else { - gvir_designer_domain_add_disk_file(domain, path, format, &error); + disk = gvir_designer_domain_add_disk_file(domain, path, format, &error); } + if (disk) + g_object_unref(G_OBJECT(disk)); if (error) { print_error("%s", error->message); @@ -493,7 +496,7 @@ main(int argc, char *argv[]) static char *connect_uri = NULL; static char *resources_str = NULL; GVirDesignerDomainResources resources; - GOptionContext *context; + GOptionContext *context = NULL; static GOptionEntry entries[] = { @@ -603,6 +606,8 @@ main(int argc, char *argv[]) ret = EXIT_SUCCESS; cleanup: + if (context) + g_option_context_free(context); if (os) g_object_unref(G_OBJECT(os)); if (platform) |