diff options
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/sys_pipe.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c index 4da474aa257..fa103c6f4d4 100644 --- a/sys/kern/sys_pipe.c +++ b/sys/kern/sys_pipe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sys_pipe.c,v 1.131 2021/12/08 13:03:52 visa Exp $ */ +/* $OpenBSD: sys_pipe.c,v 1.132 2021/12/13 14:54:22 visa Exp $ */ /* * Copyright (c) 1996 John S. Dyson @@ -927,6 +927,11 @@ pipe_kqfilter(struct file *fp, struct knote *kn) error = EPERM; break; } + if ((kn->kn_flags & __EV_POLL) == 0) { + /* Disallow usage through kevent(2). */ + error = EINVAL; + break; + } kn->kn_fop = &pipe_efiltops; kn->kn_hook = rpipe; klist_insert_locked(&rpipe->pipe_sel.si_note, kn); |