diff options
author | rwatson <rwatson@FreeBSD.org> | 2006-06-02 08:27:15 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2006-06-02 08:27:15 +0000 |
commit | 39160940408a51d8f78a001d9efe3f7aae8a97ab (patch) | |
tree | 07550a67293ceee812613e98f1155cd3d4313b45 /sys/net/raw_usrreq.c | |
parent | 88f1a971b9f1f90fb7321d5a06705df8eb0040db (diff) | |
download | FreeBSD-src-39160940408a51d8f78a001d9efe3f7aae8a97ab.zip FreeBSD-src-39160940408a51d8f78a001d9efe3f7aae8a97ab.tar.gz |
raw_disconnect() now disconnects but does not detach the raw pcb. As a
result, raw_uabort() now needs to call raw_detach() directly. As
raw_uabort() is never called, and raw_disconnect() is probably not ever
actually called in practice, this is likely not a functional change, but
improves congruence between protocols, and avoids a NULL raw cb pointer
after disconnect, which could result in a panic.
MFC after: 1 month
Diffstat (limited to 'sys/net/raw_usrreq.c')
-rw-r--r-- | sys/net/raw_usrreq.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/net/raw_usrreq.c b/sys/net/raw_usrreq.c index 5a7449a..4f2f006 100644 --- a/sys/net/raw_usrreq.c +++ b/sys/net/raw_usrreq.c @@ -146,6 +146,7 @@ raw_uabort(struct socket *so) KASSERT(rp != NULL, ("raw_uabort: rp == NULL")); raw_disconnect(rp); soisdisconnected(so); + raw_detach(rp); } /* pru_accept is EOPNOTSUPP */ |