Index: kern/uipc_socket.c
diff -c kern/uipc_socket.c:1.17 kern/uipc_socket.c:1.18
*** kern/uipc_socket.c:1.17 Sun Aug 31 14:42:24 1997
--- kern/uipc_socket.c Tue Nov 11 11:22:49 1997
***************
*** 354,361 ****
* if we over-committed, and we must use a signed comparison
* of space and resid. On the other hand, a negative resid
* causes us to loop sending 0-length segments to the protocol.
*/
! if (resid < 0) {
error = EINVAL;
goto out;
}
--- 354,363 ----
* if we over-committed, and we must use a signed comparison
* of space and resid. On the other hand, a negative resid
* causes us to loop sending 0-length segments to the protocol.
+ * MSG_EOR on a SOCK_STREAM socket is also invalid.
*/
! if (resid < 0 ||
! (so->so_type == SOCK_STREAM && (flags & MSG_EOR))) {
error = EINVAL;
goto out;
}