remote: add mutex when freeing private callbacks

This commit resolves illegal memory accesses observed via:

  remoteClientFreePrivateCallbacks()
  remoteClientCloseFunc()
  virNetServerClientCloseLocked()
  virNetServerProcessClients()
  daemonServerProcessClients()
  virHashForEach()
  virNetDaemonRun()
  main()

Signed-off-by: Mike Pontillo <mpontillo@digitalocean.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
Mike Pontillo 2023-03-07 17:57:56 +00:00 committed by Martin Kletzander
parent c0e60063c9
commit 6386dd897d

View File

@ -1709,6 +1709,8 @@ static void
remoteClientFreePrivateCallbacks(struct daemonClientPrivate *priv)
{
g_autoptr(virIdentity) sysident = virIdentityGetSystem();
VIR_LOCK_GUARD lock = virLockGuardLock(&priv->lock);
virIdentitySetCurrent(sysident);
DEREG_CB(priv->conn, priv->domainEventCallbacks,