]> xenbits.xensource.com Git - libvirt.git/commitdiff
vz: BUG: fix connecting hang in case of init failure
authorMaxim Nestratov <mnestratov@virtuozzo.com>
Thu, 24 Dec 2015 12:58:59 +0000 (15:58 +0300)
committerDmitry Guryanov <dguryanov@localhost.localdomain>
Thu, 24 Dec 2015 15:31:05 +0000 (18:31 +0300)
In case of prlsdkLoadDomains fails, vzOpenDefault should
clear connection privateData pointer every time its
memory is actually freed.
Also it is not necessary to call vzConnectClose if a call
to vzOpenDefault fails, because they both make cleanup of
connection privateData.

Signed-off-by: Maxim Nestratov <mnestratov@virtuozzo.com>
src/vz/vz_driver.c

index 2452d964cfba7acaeda3e2293e450343b89a5223..4348213e4fe06b304efe9d8883f55c1bc603f827 100644 (file)
@@ -266,6 +266,7 @@ vzOpenDefault(virConnectPtr conn)
     prlsdkDisconnect(privconn);
     prlsdkDeinit();
  err_free:
+    conn->privateData = NULL;
     VIR_FREE(privconn);
     return VIR_DRV_OPEN_ERROR;
 }
@@ -307,10 +308,8 @@ vzConnectOpen(virConnectPtr conn,
         return VIR_DRV_OPEN_ERROR;
     }
 
-    if ((ret = vzOpenDefault(conn)) != VIR_DRV_OPEN_SUCCESS) {
-        vzConnectClose(conn);
+    if ((ret = vzOpenDefault(conn)) != VIR_DRV_OPEN_SUCCESS)
         return ret;
-    }
 
     return VIR_DRV_OPEN_SUCCESS;
 }