kern/93236: [PATCH] Received out of window SYN in ESTABLISHED connection isn't ACKed as required by RFC793

Grant Edwards grante at visi.com
Sun Feb 12 10:40:10 PST 2006


The following reply was made to PR kern/93236; it has been noted by GNATS.

From: Grant Edwards <grante at visi.com>
To: bug-followup at FreeBSD.org, grante at visi.com
Cc:  
Subject: Re: kern/93236: [PATCH] Received out of window SYN in ESTABLISHED
 connection isn't ACKed as required by RFC793
Date: Sun, 12 Feb 2006 12:38:57 -0600

 This is a multi-part message in MIME format.
 --------------050209060503090801090106
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 Here's the patch attached as a file.
 
 
 --------------050209060503090801090106
 Content-Type: text/plain;
  name="tcp_input.c.patch"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline;
  filename="tcp_input.c.patch"
 
 --- tcp_input.c-orig	2006-02-12 10:24:35.988707395 -0600
 +++ tcp_input.c	2006-02-12 10:25:28.877515703 -0600
 @@ -1758,20 +1758,22 @@
  
  	/*
  	 * If the ACK bit is off:  if in SYN-RECEIVED state or SENDSYN
  	 * flag is on (half-synchronized state), then queue data for
  	 * later processing; else drop segment and return.
  	 */
  	if ((thflags & TH_ACK) == 0) {
  		if (tp->t_state == TCPS_SYN_RECEIVED ||
  		    (tp->t_flags & TF_NEEDSYN))
  			goto step6;
 +		else if (tp->t_flags & TF_ACKNOW)
 +			goto dropafterack;
  		else
  			goto drop;
  	}
  
  	/*
  	 * Ack processing.
  	 */
  	switch (tp->t_state) {
  
  	/*
 
 --------------050209060503090801090106--


More information about the freebsd-bugs mailing list