diff --git a/pkg/sentry/socket/unix/transport/connectionless.go b/pkg/sentry/socket/unix/transport/connectionless.go index 9d5d63fbe..80929c0a9 100644 --- a/pkg/sentry/socket/unix/transport/connectionless.go +++ b/pkg/sentry/socket/unix/transport/connectionless.go @@ -59,10 +59,8 @@ func (e *connectionlessEndpoint) isBound() bool { // with it. func (e *connectionlessEndpoint) Close(ctx context.Context) { e.Lock() - if e.connected != nil { - e.connected.Release(ctx) - e.connected = nil - } + connected := e.connected + e.connected = nil if e.isBound() { e.path = "" @@ -73,6 +71,9 @@ func (e *connectionlessEndpoint) Close(ctx context.Context) { e.receiver = nil e.Unlock() + if connected != nil { + connected.Release(ctx) + } r.CloseNotify() r.Release(ctx) }