diff options
author | rwatson <rwatson@FreeBSD.org> | 2006-07-26 19:16:34 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2006-07-26 19:16:34 +0000 |
commit | 2268f15916e77939a504f8dbc362e364f1bbdcd3 (patch) | |
tree | 06bf0c4884958c7d216b0a21dc9c317ec4621b62 | |
parent | ad02b2748c05869ab6d6a741d1f4adcfae259498 (diff) | |
download | FreeBSD-src-2268f15916e77939a504f8dbc362e364f1bbdcd3.zip FreeBSD-src-2268f15916e77939a504f8dbc362e364f1bbdcd3.tar.gz |
Remove call to soisdisconnected() in uipc_detach(), since it will already
have been invoked by uipc_close() or uipc_abort(), and the socket is in a
state of being torn down by the time we get to this point, so kqueue
state frobbed by soisdisconnected() is not available, so frobbing it will
result in a panic.
Reported by: Munehiro Matsuda <haro at h4 dot dion dot ne dot jp>
-rw-r--r-- | sys/kern/uipc_usrreq.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index 42226a1..715ba3c 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -443,7 +443,6 @@ uipc_detach(struct socket *so) struct unpcb *ref = LIST_FIRST(&unp->unp_refs); unp_drop(ref, ECONNRESET); } - soisdisconnected(unp->unp_socket); unp->unp_socket->so_pcb = NULL; local_unp_rights = unp_rights; UNP_UNLOCK(); |