diff options
| -rw-r--r-- | sys/kern/kern_event.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 32e2e6e69d7e..5bfa6f8a800e 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -3108,7 +3108,8 @@ kqueue_fork_copy_knote(struct kqueue *kq, struct kqueue *kq1, struct knote *kn, } fop = kn->kn_fop; if (fop->f_copy == NULL || (fop->f_isfd && - fdp->fd_files->fdt_ofiles[kn->kn_kevent.ident].fde_file == NULL)) + ((unsigned int)fdp->fd_files->fdt_nfiles <= kn->kn_kevent.ident || + fdp->fd_files->fdt_ofiles[kn->kn_kevent.ident].fde_file == NULL))) return; error = kqueue_expand(kq1, fop, kn->kn_kevent.ident, M_WAITOK); if (error != 0) |
