summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_pipe.c
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2002-08-05 15:03:03 +0000
committerdes <des@FreeBSD.org>2002-08-05 15:03:03 +0000
commit3b4ccdf949664999eafce53dda236d9e9d6b40e0 (patch)
tree6c57714862f011e00d163e086e95140d42fef9c2 /sys/kern/sys_pipe.c
parente46b84ca00ef9744a1a07cdf704bbcbd721f9325 (diff)
downloadFreeBSD-src-3b4ccdf949664999eafce53dda236d9e9d6b40e0.zip
FreeBSD-src-3b4ccdf949664999eafce53dda236d9e9d6b40e0.tar.gz
Check the far end before registering an EVFILT_WRITE filter on a pipe.
Diffstat (limited to 'sys/kern/sys_pipe.c')
-rw-r--r--sys/kern/sys_pipe.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c
index 81e26bc..e0cff3c 100644
--- a/sys/kern/sys_pipe.c
+++ b/sys/kern/sys_pipe.c
@@ -1372,6 +1372,9 @@ pipe_kqfilter(struct file *fp, struct knote *kn)
case EVFILT_WRITE:
kn->kn_fop = &pipe_wfiltops;
cpipe = cpipe->pipe_peer;
+ if (cpipe == NULL)
+ /* other end of pipe has been closed */
+ return (EBADF);
break;
default:
return (1);
OpenPOWER on IntegriCloud