aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorJonathan T. Looney <jtl@FreeBSD.org>2018-10-18 14:20:15 +0000
committerJonathan T. Looney <jtl@FreeBSD.org>2018-10-18 14:20:15 +0000
commite77f0bdcb53d3e7b47a5e858affbad3ce85bded7 (patch)
treefb2487f40b91294bc1d61aa8e4fe2ceecdc9ff5f /sys/kern
parentc35b07d1cb586b8bb2d7a6548f0a5b1986802291 (diff)
Notes
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/uipc_socket.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index af2fd1ff65f7..6f75fc29f46e 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -1026,6 +1026,9 @@ sofree(struct socket *so)
so->so_error = ECONNABORTED;
SOCK_UNLOCK(so);
+ if (so->so_dtor != NULL)
+ so->so_dtor(so);
+
VNET_SO_ASSERT(so);
if (pr->pr_flags & PR_RIGHTS && pr->pr_domain->dom_dispose != NULL)
(*pr->pr_domain->dom_dispose)(so);
@@ -1102,8 +1105,6 @@ soclose(struct socket *so)
drop:
if (so->so_proto->pr_usrreqs->pru_close != NULL)
(*so->so_proto->pr_usrreqs->pru_close)(so);
- if (so->so_dtor != NULL)
- so->so_dtor(so);
SOCK_LOCK(so);
if ((listening = (so->so_options & SO_ACCEPTCONN))) {