diff options
-rw-r--r-- | sys/kern/uipc_socket.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 9b6c423..dc20608 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -2136,8 +2136,10 @@ soo_kqfilter(struct file *fp, struct knote *kn) case EVFILT_READ: if (so->so_options & SO_ACCEPTCONN) kn->kn_fop = &solisten_filtops; - else + else if (so->so_state & SS_ISCONNECTED) kn->kn_fop = &soread_filtops; + else + return (EINVAL); sb = &so->so_rcv; break; case EVFILT_WRITE: |