diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c index 3ac51e53b6..89ebc7fcf7 100644 --- a/xen/common/event_channel.c +++ b/xen/common/event_channel.c @@ -159,6 +159,8 @@ static long evtchn_bind_interdomain(evtchn_bind_interdomain_t *bind) switch ( d1->event_channel[port1].state ) { case ECS_FREE: + if ( !IS_PRIV(current) && (dom2 != DOMID_SELF) ) + ERROR_EXIT(-EPERM); break; case ECS_UNBOUND: