diff options
author | des <des@FreeBSD.org> | 2002-08-05 15:03:03 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2002-08-05 15:03:03 +0000 |
commit | 3b4ccdf949664999eafce53dda236d9e9d6b40e0 (patch) | |
tree | 6c57714862f011e00d163e086e95140d42fef9c2 /sys/kern/sys_pipe.c | |
parent | e46b84ca00ef9744a1a07cdf704bbcbd721f9325 (diff) | |
download | FreeBSD-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.c | 3 |
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); |