Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > main-src > by-pkgid > 276c4c69ed5efcebe43ee6121194cf59 > files > 34

kernel22-2.2.20-9mdk.src.rpm

--- linux-work/net/ipv4/tcp_input.c-SYNACK	Wed Apr 18 17:59:26 2001
+++ linux-work/net/ipv4/tcp_input.c	Tue May 15 12:05:06 2001
@@ -1932,16 +1932,20 @@
 		tcp_send_ack(sk);
 		goto discard;
 	}
-
-	if(th->syn && TCP_SKB_CB(skb)->seq != tp->syn_seq) {
-		SOCK_DEBUG(sk, "syn in established state\n");
-		tcp_statistics.TcpInErrs++;
-		tcp_reset(sk);
-		return 1;
-	}
 	
 	if(th->rst) {
 		tcp_reset(sk);
+		goto discard;
+	}
+
+	if(th->syn) {
+		if (TCP_SKB_CB(skb)->seq != tp->syn_seq || 
+		    skb->len > th->doff*4) {
+			tcp_statistics.TcpInErrs++;
+			tcp_reset(sk);
+			return 1;
+		}
+		tcp_send_ack(sk); 
 		goto discard;
 	}