summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_socket.c
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2018-02-19 11:35:41 +0000
committermpi <mpi@openbsd.org>2018-02-19 11:35:41 +0000
commit2dd1cce38f4ab34120b8a2d01f1ae2a754e87de3 (patch)
tree5dcba59a14d16b73b9030bc28b48bf619b9a81c6 /sys/kern/uipc_socket.c
parentIn dsa.h rev. 1.25 2018/02/18 12:50:58, tb@ provided DSA_set0_pqg(3) (diff)
downloadwireguard-openbsd-2dd1cce38f4ab34120b8a2d01f1ae2a754e87de3.tar.xz
wireguard-openbsd-2dd1cce38f4ab34120b8a2d01f1ae2a754e87de3.zip
Grab solock() inside soconnect2() instead of asserting for it to be held.
ok millert@
Diffstat (limited to 'sys/kern/uipc_socket.c')
-rw-r--r--sys/kern/uipc_socket.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index ace43c11592..2f696b36001 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: uipc_socket.c,v 1.216 2018/02/19 08:59:52 mpi Exp $ */
+/* $OpenBSD: uipc_socket.c,v 1.217 2018/02/19 11:35:41 mpi Exp $ */
/* $NetBSD: uipc_socket.c,v 1.21 1996/02/04 02:17:52 christos Exp $ */
/*
@@ -337,11 +337,12 @@ soconnect(struct socket *so, struct mbuf *nam)
int
soconnect2(struct socket *so1, struct socket *so2)
{
- int error;
+ int s, error;
- soassertlocked(so1);
+ s = solock(so1);
error = (*so1->so_proto->pr_usrreq)(so1, PRU_CONNECT2, NULL,
(struct mbuf *)so2, NULL, curproc);
+ sounlock(s);
return (error);
}