[libvirt] [libvirt-glib 2/2] object: Fix gvir_connection_create_storage_pool() leak

Christophe Fergeau cfergeau at redhat.com
Fri Sep 2 10:34:41 UTC 2016


We need to free the string returned by gvir_config_object_to_xml() after
using it.
---
 libvirt-gobject/libvirt-gobject-connection.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libvirt-gobject/libvirt-gobject-connection.c b/libvirt-gobject/libvirt-gobject-connection.c
index 3f17265..da3db50 100644
--- a/libvirt-gobject/libvirt-gobject-connection.c
+++ b/libvirt-gobject/libvirt-gobject-connection.c
@@ -2001,7 +2001,7 @@ GVirStoragePool *gvir_connection_create_storage_pool
                                  GVirConfigStoragePool *conf,
                                  guint flags,
                                  GError **err) {
-    const gchar *xml;
+    gchar *xml;
     virStoragePoolPtr handle;
     GVirConnectionPrivate *priv;
 
@@ -2014,7 +2014,9 @@ GVirStoragePool *gvir_connection_create_storage_pool
     g_return_val_if_fail(xml != NULL, NULL);
 
     priv = conn->priv;
-    if (!(handle = virStoragePoolDefineXML(priv->conn, xml, flags))) {
+    handle = virStoragePoolDefineXML(priv->conn, xml, flags);
+    g_free(xml);
+    if (!handle) {
         gvir_set_error_literal(err, GVIR_CONNECTION_ERROR,
                                flags,
                                _("Failed to create storage pool"));
-- 
2.7.4




More information about the libvir-list mailing list