
On Sun, Jul 28, 2019 at 08:19:40PM +0200, Andrea Bolognani wrote:
On Tue, 2019-07-23 at 17:03 +0100, Daniel P. Berrangé wrote: [...]
+++ b/src/remote/remote_daemon_dispatch.c @@ -4210,14 +4128,13 @@ remoteDispatchConnectDomainEventRegister(virNetServerPtr server ATTRIBUTE_UNUSED daemonClientEventCallbackPtr ref; struct daemonClientPrivate *priv = virNetServerClientGetPrivateData(client); - - if (!priv->conn) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); - goto cleanup; - } + virConnectPtr conn = remoteGetHypervisorConn(client);
virMutexLock(&priv->lock);
+ if (!conn) + goto cleanup; +
Shouldn't this be *before* the virMutexLock() call? As far as I can tell, that would match the existing behavior...
Looking at this I think the original code is broken. The "cleanup:" label calls virMutexUnlock(). So the original code was jumping to the cleanup label with an unlocked mutex and then unlocking it again.
The same is true for
remoteDispatchConnectDomainEventDeregister() remoteDispatchConnectDomainEventRegisterAny() remoteDispatchConnectDomainEventDeregisterAny() remoteDispatchConnectDomainEventCallbackRegisterAny() remoteDispatchConnectDomainEventCallbackDeregisterAny() remoteDispatchConnectNetworkEventRegisterAny() remoteDispatchConnectNetworkEventDeregisterAny() remoteDispatchConnectStoragePoolEventRegisterAny() remoteDispatchConnectStoragePoolEventDeregisterAny() remoteDispatchConnectNodeDeviceEventRegisterAny() remoteDispatchConnectNodeDeviceEventDeregisterAny() remoteDispatchConnectSecretEventRegisterAny() remoteDispatchConnectSecretEventDeregisterAny() qemuDispatchConnectDomainMonitorEventRegister() qemuDispatchConnectDomainMonitorEventDeregister()
With either all of them updated, if my understanding of the situation as described above is correct, or left as is otherwise,
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|