K 10 svn:author V 6 tuexen K 8 svn:date V 27 2019-10-03T12:26:55.715226Z K 7 svn:log V 918 MFS r352673: When the RACK stack computes the space for user data in a TCP segment, it wasn't taking the IP level options into account. This patch fixes this. In addition, it also corrects a KASSERT and adds protection code to assure that the IP header chain and the TCP head fit in the first fragment as required by RFC 7112. MFS: r353035: RFC 7112 requires a host to put the complete IP header chain including the TCP header in the first IP packet. Enforce this in tcp_output(). In addition make sure that at least one byte payload fits in the TCP segement to allow making progress. Without this check, a kernel with INVARIANTS will panic. This issue was found by running an instance of syzkaller. Approved by: re (kib@) Reviewed by: rrs@ (r352673), jtl@ (r353035) Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D21665 Differential Revision: https://reviews.freebsd.org/D21666 END