From: Peter Krempa Date: Fri, 9 Sep 2022 08:56:40 +0000 (+0200) Subject: remote: doRemoteOpen: Automatically clean up 'priv' X-Git-Tag: v8.8.0-rc1~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42d8bb4456fe115e0552ee64b7283111a6e5be81;p=thirdparty%2Flibvirt.git remote: doRemoteOpen: Automatically clean up 'priv' Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index b670284211..25c80a09c7 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -1225,7 +1225,7 @@ remoteConnectOpen(virConnectPtr conn, virConf *conf, unsigned int flags) { - struct private_data *priv; + g_autofree struct private_data *priv = NULL; int ret = VIR_DRV_OPEN_ERROR; unsigned int rflags = 0; g_autofree char *driver = NULL; @@ -1263,14 +1263,12 @@ remoteConnectOpen(virConnectPtr conn, rflags |= REMOTE_DRIVER_OPEN_RO; ret = doRemoteOpen(conn, priv, driver, transport, auth, conf, rflags); - if (ret != VIR_DRV_OPEN_SUCCESS) { + remoteDriverUnlock(priv); + + if (ret != VIR_DRV_OPEN_SUCCESS) conn->privateData = NULL; - remoteDriverUnlock(priv); - VIR_FREE(priv); - } else { - conn->privateData = priv; - remoteDriverUnlock(priv); - } + else + conn->privateData = g_steal_pointer(&priv); return ret; }