diff --git a/daemon/remote.c b/daemon/remote.c index 37572dedd565dd0213cb9cd72dd9519aa819e749..c0a5618688a659bc81b1a91c58118c7b4002c7b0 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -638,8 +638,11 @@ void remoteClientFreeFunc(void *data) /* Deregister event delivery callback */ if (priv->conn) { + virIdentityPtr sysident = virIdentityGetSystem(); int i; + virIdentitySetCurrent(sysident); + for (i = 0; i < VIR_DOMAIN_EVENT_ID_LAST; i++) { if (priv->domainEventCallbackID[i] != -1) { VIR_DEBUG("Deregistering to relay remote events %d", i); @@ -650,6 +653,9 @@ void remoteClientFreeFunc(void *data) } virConnectClose(priv->conn); + + virIdentitySetCurrent(NULL); + virObjectUnref(sysident); } VIR_FREE(priv);