[Libvirt-cim] [PATCH 3 of 3] Fix places where virDomainPtr aren't properly freed

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Thu Apr 9 23:27:44 UTC 2009


# HG changeset patch
# User Kaitlin Rupert <karupert at us.ibm.com>
# Date 1239243762 14400
# Node ID 8d0ce3b79aaacde9a7b25d8e2fe2eb79878229ee
# Parent  2e7cebb8a166483d9997becd030666166631c301
Fix places where virDomainPtr aren't properly freed.

diff -r 2e7cebb8a166 -r 8d0ce3b79aaa src/Virt_KVMRedirectionSAP.c
--- a/src/Virt_KVMRedirectionSAP.c	Wed Apr 01 14:50:09 2009 -0700
+++ b/src/Virt_KVMRedirectionSAP.c	Wed Apr 08 22:22:42 2009 -0400
@@ -374,7 +374,7 @@
                                    CMPIInstance **_inst)
 {
         virConnectPtr conn;
-        virDomainPtr dom;
+        virDomainPtr dom = NULL;
         CMPIStatus s = {CMPI_RC_OK, NULL};
         CMPIInstance *inst = NULL;
         struct domain *dominfo = NULL;
@@ -445,14 +445,13 @@
 
         inst = get_console_sap(broker, ref, conn, port, &s);
 
-        virDomainFree(dom);
-
         if (s.rc != CMPI_RC_OK)
                 goto out;
 
         *_inst = inst;
 
  out:
+        virDomainFree(dom);
         virConnectClose(conn);
         if (port != NULL)
                 free(port->name);
diff -r 2e7cebb8a166 -r 8d0ce3b79aaa src/Virt_RASD.c
--- a/src/Virt_RASD.c	Wed Apr 01 14:50:09 2009 -0700
+++ b/src/Virt_RASD.c	Wed Apr 08 22:22:42 2009 -0400
@@ -63,12 +63,17 @@
               struct virt_device **list)
 {
         virDomainPtr dom;
+        int count = 0;
 
         dom = virDomainLookupByName(conn, host);
         if (dom == NULL)
                 return 0;
 
-        return get_devices(dom, list, type);
+        count = get_devices(dom, list, type);
+
+        virDomainFree(dom);
+
+        return count;
 }
 
 static struct virt_device *find_dev(virConnectPtr conn,
@@ -703,6 +708,7 @@
 
  out:
         virConnectClose(conn);
+        free(domains);
 
         return s;
 }




More information about the Libvirt-cim mailing list