aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_event.c3
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)