--- //depot/user/pjd/capsicum/sys/kern/kern_event.c 2013-09-18 22:37:19.000000000 0000 +++ /usr/home/pjd/p4/capsicum/sys/kern/kern_event.c 2013-09-18 22:37:19.000000000 0000 @@ -827,10 +827,17 @@ cap_rights_t rights; int i, n, nerrors, error; - error = fget(td, fd, cap_rights_init(&rights, CAP_POST_EVENT), &fp); + cap_rights_init(&rights); + if (nchanges > 0) + cap_rights_set(&rights, CAP_POST_EVENT); + if (nevents > 0) + cap_rights_set(&rights, CAP_POLL_EVENT); + error = fget(td, fd, &rights, &fp); if (error != 0) return (error); - if ((error = kqueue_acquire(fp, &kq)) != 0) + + error = kqueue_acquire(fp, &kq); + if (error != 0) goto done_norel; nerrors = 0;