Hi,
My laptop just crashed while running some php ports regress tests.
The kernel complained that it did not hold the netlock in sounlock()
after the out label in sosend(). The assert is correct, let's fix
the obvious offender.
ok?
bluhm
Index: kern/uipc_socket.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/kern/uipc_socket.c,v
retrieving revision 1.193
diff -u -p -r1.193 uipc_socket.c
--- kern/uipc_socket.c 8 Jul 2017 09:19:02 -0000 1.193
+++ kern/uipc_socket.c 13 Jul 2017 15:34:52 -0000
@@ -396,8 +396,9 @@ sosend(struct socket *so, struct mbuf *a
resid = top->m_pkthdr.len;
/* MSG_EOR on a SOCK_STREAM socket is invalid. */
if (so->so_type == SOCK_STREAM && (flags & MSG_EOR)) {
- error = EINVAL;
- goto out;
+ m_freem(top);
+ m_freem(control);
+ return (EINVAL);
}
if (uio && uio->uio_procp)
uio->uio_procp->p_ru.ru_msgsnd++;