summaryrefslogtreecommitdiffstats
path: root/sys/net/raw_usrreq.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2006-06-02 08:27:15 +0000
committerrwatson <rwatson@FreeBSD.org>2006-06-02 08:27:15 +0000
commit39160940408a51d8f78a001d9efe3f7aae8a97ab (patch)
tree07550a67293ceee812613e98f1155cd3d4313b45 /sys/net/raw_usrreq.c
parent88f1a971b9f1f90fb7321d5a06705df8eb0040db (diff)
downloadFreeBSD-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.c1
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 */
OpenPOWER on IntegriCloud