Author: zml
Date: Wed May 27 17:02:10 2009
New Revision: 192912
URL: http://svn.freebsd.org/changeset/base/192912

Log:
  Correct handling of SYN packets that are to the left of the current window of 
an ESTABLISHED connection.
  
  Reviewed by:        net@, gnn
  Approved by:        dfr (mentor)

Modified:
  head/sys/netinet/tcp_input.c

Modified: head/sys/netinet/tcp_input.c
==============================================================================
--- head/sys/netinet/tcp_input.c        Wed May 27 17:01:59 2009        
(r192911)
+++ head/sys/netinet/tcp_input.c        Wed May 27 17:02:10 2009        
(r192912)
@@ -1818,7 +1818,11 @@ tcp_do_segment(struct mbuf *m, struct tc
 
        todrop = tp->rcv_nxt - th->th_seq;
        if (todrop > 0) {
-               if (thflags & TH_SYN) {
+               /*
+                * If this is a duplicate SYN for our current connection,
+                * advance over it and pretend and it's not a SYN.
+                */
+               if (thflags & TH_SYN && th->th_seq == tp->irs) {
                        thflags &= ~TH_SYN;
                        th->th_seq++;
                        if (th->th_urp > 1)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to