mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 17:34:18 +03:00
Fix leak of remote driver if final 'CLOSE' RPC call fails
When closing a remote connection we issue a (fairly pointless) 'CLOSE' RPC call to the daemon. If this fails we skip all the cleanup of private data, but the virConnectPtr object still gets released as normal. This causes a memory leak. Since the CLOSE RPC call is pretty pointless, just carry on freeing the remote driver if it fails. * src/remote/remote_driver.c: Ignore failure to issue CLOSE RPC call
This commit is contained in:
parent
2c85644b0b
commit
afe8839f01
@ -824,10 +824,12 @@ get_transport_from_scheme (char *scheme)
|
||||
static int
|
||||
doRemoteClose (virConnectPtr conn, struct private_data *priv)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (call (conn, priv, 0, REMOTE_PROC_CLOSE,
|
||||
(xdrproc_t) xdr_void, (char *) NULL,
|
||||
(xdrproc_t) xdr_void, (char *) NULL) == -1)
|
||||
return -1;
|
||||
ret = -1;
|
||||
|
||||
virNetTLSContextFree(priv->tls);
|
||||
priv->tls = NULL;
|
||||
@ -846,7 +848,7 @@ doRemoteClose (virConnectPtr conn, struct private_data *priv)
|
||||
virDomainEventStateFree(priv->domainEventState);
|
||||
priv->domainEventState = NULL;
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
|
Loading…
Reference in New Issue
Block a user