Index: uipc_socket.c =================================================================== RCS file: /cvsroot/src/sys/kern/uipc_socket.c,v retrieving revision 1.235 diff -u -u -r1.235 uipc_socket.c --- uipc_socket.c 5 Sep 2014 09:20:59 -0000 1.235 +++ uipc_socket.c 16 May 2015 00:06:44 -0000 @@ -2174,6 +2174,10 @@ struct socket *so; so = ((file_t *)kn->kn_obj)->f_socket; + if (so == NULL) { + printf("%s: NULL socket for %p\n", __func__, kn->kn_obj); + return; + } solock(so); SLIST_REMOVE(&so->so_rcv.sb_sel.sel_klist, kn, knote, kn_selnext); if (SLIST_EMPTY(&so->so_rcv.sb_sel.sel_klist)) @@ -2189,6 +2193,10 @@ int rv; so = ((file_t *)kn->kn_obj)->f_socket; + if (so == NULL) { + printf("%s: NULL socket for %p\n", __func__, kn->kn_obj); + return; + } if (hint != NOTE_SUBMIT) solock(so); kn->kn_data = so->so_rcv.sb_cc; @@ -2213,6 +2221,10 @@ struct socket *so; so = ((file_t *)kn->kn_obj)->f_socket; + if (so == NULL) { + printf("%s: NULL socket for %p\n", __func__, kn->kn_obj); + return; + } solock(so); SLIST_REMOVE(&so->so_snd.sb_sel.sel_klist, kn, knote, kn_selnext); if (SLIST_EMPTY(&so->so_snd.sb_sel.sel_klist)) @@ -2228,6 +2240,10 @@ int rv; so = ((file_t *)kn->kn_obj)->f_socket; + if (so == NULL) { + printf("%s: NULL socket for %p\n", __func__, kn->kn_obj); + return; + } if (hint != NOTE_SUBMIT) solock(so); kn->kn_data = sbspace(&so->so_snd); @@ -2257,6 +2273,10 @@ int rv; so = ((file_t *)kn->kn_obj)->f_socket; + if (so == NULL) { + printf("%s: NULL socket for %p\n", __func__, kn->kn_obj); + return; + } /* * Set kn_data to number of incoming connections, not @@ -2285,6 +2305,10 @@ struct sockbuf *sb; so = ((file_t *)kn->kn_obj)->f_socket; + if (so == NULL) { + printf("%s: NULL socket for %p\n", __func__, kn->kn_obj); + return; + } solock(so); switch (kn->kn_filter) { case EVFILT_READ: