[libvirt] [PATCH 02/14] esx: Address resource leak found by Coverity

John Ferlan jferlan at redhat.com
Wed Jan 9 14:54:08 UTC 2013


Because result was used to determine whether or not to free 'priv'
resources Coverity tagged the code as having a resource leak. This
change addresses that concern.
---
 src/esx/esx_driver.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 1366c81..9befa38 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -998,6 +998,7 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth,
         virReportOOMError();
         goto cleanup;
     }
+    conn->privateData = priv;
 
     if (esxUtil_ParseUri(&priv->parsedUri, conn->uri) < 0) {
         goto cleanup;
@@ -1008,8 +1009,6 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth,
     priv->supportsLongMode = esxVI_Boolean_Undefined;
     priv->usedCpuTimeCounterId = -1;
 
-    conn->privateData = priv;
-
     /*
      * Set the port dependent on the transport protocol if no port is
      * specified. This allows us to rely on the port parameter being
@@ -1104,9 +1103,10 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth,
     result = VIR_DRV_OPEN_SUCCESS;
 
   cleanup:
-    if (result == VIR_DRV_OPEN_ERROR) {
+    if (result == VIR_DRV_OPEN_ERROR)
+        conn->privateData = NULL;
+    if (priv && !conn->privateData)
         esxFreePrivate(&priv);
-    }
 
     VIR_FREE(potentialVCenterIpAddress);
 
-- 
1.7.11.7




More information about the libvir-list mailing list