freebsd-skq/sys
jdp 3f044120cd Fix a bug (apparently very old) that can cause a TCP connection to
be dropped when it has an unusual traffic pattern.  For full details
as well as a test case that demonstrates the failure, see the
referenced PR.

Under certain circumstances involving the persist state, it is
possible for the receive side's tp->rcv_nxt to advance beyond its
tp->rcv_adv.  This causes (tp->rcv_adv - tp->rcv_nxt) to become
negative.  However, in the code affected by this fix, that difference
was interpreted as an unsigned number by max().  Since it was
negative, it was taken as a huge unsigned number.  The effect was
to cause the receiver to believe that its receive window had negative
size, thereby rejecting all received segments including ACKs.  As
the test case shows, this led to fruitless retransmissions and
eventually to a dropped connection.  Even connections using the
loopback interface could be dropped.  The fix substitutes the signed
imax() for the unsigned max() function.

PR:		closes kern/3998
Reviewed by:	davidg, fenner, wollman
1997-07-01 05:42:16 +00:00
..
alpha Grr. Remove not-ready LDT modification fluff that also crept in with 1997-06-02 06:45:17 +00:00
amd64 Un-inline a call to spl0(). It is not time critical, and was only inline 1997-07-01 01:34:30 +00:00
compat/linux Make this thing actually compile. 1997-06-02 10:43:41 +00:00
compile
conf Enabled some SMP options. LINT is for testing that all code compiles 1997-07-01 00:14:39 +00:00
contrib/ipfilter/netinet Import version 3.2alpha7 1997-05-25 15:50:46 +00:00
ddb Some staticized variables were still declared to be extern. 1997-06-30 23:54:50 +00:00
dev Don't cast function pointers to (void *). This will cause warnings. 1997-07-01 00:45:45 +00:00
fs More comment cleanup. 1997-06-26 17:12:59 +00:00
geom Removed unused #includes. 1997-06-14 13:56:12 +00:00
gnu Don't depend on gcc's feature of permitting labels that aren't followed 1997-07-01 00:22:51 +00:00
i386 Un-inline a call to spl0(). It is not time critical, and was only inline 1997-07-01 01:34:30 +00:00
isa Fixes annoying behavior and a bug regarding the destructive 1997-06-30 13:31:49 +00:00
isofs/cd9660 Hide the kernel-only stuff inside #ifdef KERNEL. 1997-05-07 13:23:04 +00:00
kern Removed extra definition of constty. It is defined in subr_prf.c. 1997-07-01 00:52:37 +00:00
libkern Style optimization in newly added POSIX range []] conformance, redo 1997-06-07 01:33:10 +00:00
miscfs More comment cleanup. 1997-06-26 17:12:59 +00:00
modules Take the OS release string from the kernel variable `osrelease' 1997-06-24 12:43:18 +00:00
msdosfs Remove redundant check for vp == dvp (done in VFS before calling). 1997-05-17 18:32:53 +00:00
net Fix this damn mbuf with a negative m_len. It turns 1997-06-22 02:19:53 +00:00
netatalk Actually POINT to the appletalk usrreqs struct. 1997-06-02 20:07:33 +00:00
netinet Fix a bug (apparently very old) that can cause a TCP connection to 1997-07-01 05:42:16 +00:00
netipx Don't depend on gcc's feature of permitting labels that aren't followed 1997-07-01 00:22:51 +00:00
netkey This is the `netkey' kernel key-management service (the PF_KEY analogue 1996-06-14 17:22:18 +00:00
netnatm import Chuck Cranor's ATM driver 1997-05-09 08:04:59 +00:00
netns Remove unneeded member nsp_head from struct nspcb. 1997-04-14 18:26:51 +00:00
nfs Fix a condition where nfs_statfs() can precipitate a panic. There is 1997-06-27 19:10:46 +00:00
nfsclient Fix a condition where nfs_statfs() can precipitate a panic. There is 1997-06-27 19:10:46 +00:00
nfsserver Clear nfs_iodwant[myiod] when the nfsiod process exits due to a signal. 1997-06-25 21:07:26 +00:00
pc98 Synchronize with sys/i386/isa/syscons.c and syscons.h revisions 1.219 1997-06-30 10:00:47 +00:00
pccard Make this puppy compile again - add two includes. 1997-06-01 05:04:39 +00:00
pci Don't cast function pointers to (void *). This will cause warnings. 1997-07-01 00:45:45 +00:00
powerpc/include Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
rpc Resolve conflicts. 1997-05-28 04:45:15 +00:00
scsi Don't depend on gcc's feature of permitting labels that aren't followed 1997-07-01 00:22:51 +00:00
sys Some staticized variables were still declared to be extern. 1997-07-01 00:54:37 +00:00
tools Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
ufs Fix a problem with the VN device. Specifically, the VN device can 1997-06-15 17:56:53 +00:00
vm Don't try upgrading an existing exclusive lock in vm_map_user_pageable. 1997-06-23 21:51:03 +00:00
Makefile Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00