From: Vitaliy Makkoveev Subject: Don't re-lock sockets in uipc_shutdown() To: tech@openbsd.org Date: Sat, 27 Apr 2024 16:41:53 +0300 No reason to lock peer. It can't be or became listening socket, both sockets can't be in the middle of connecting or disconnecting. Index: sys/kern/uipc_usrreq.c =================================================================== RCS file: /cvs/src/sys/kern/uipc_usrreq.c,v retrieving revision 1.204 diff -u -p -r1.204 uipc_usrreq.c --- sys/kern/uipc_usrreq.c 10 Apr 2024 12:04:41 -0000 1.204 +++ sys/kern/uipc_usrreq.c 27 Apr 2024 13:26:47 -0000 @@ -459,9 +459,9 @@ uipc_shutdown(struct socket *so) socantsendmore(so); - if ((so2 = unp_solock_peer(unp->unp_socket))){ + if (unp->unp_conn != NULL) { + so2 = unp->unp_conn->unp_socket; socantrcvmore(so2); - sounlock(so2); } return (0);