TcpSocketBase improved out of range checking
authorAdrian S Tam <adrian.sw.tam@gmail.com>
Thu, 08 Dec 2011 00:59:35 -0500
changeset 7622 f2e5d5201044
parent 7621 b0120c820a67
child 7623 9756e1dcc248
TcpSocketBase improved out of range checking
src/internet/model/tcp-socket-base.cc
--- a/src/internet/model/tcp-socket-base.cc	Wed Dec 07 16:11:42 2011 -0800
+++ b/src/internet/model/tcp-socket-base.cc	Thu Dec 08 00:59:35 2011 -0500
@@ -676,8 +676,9 @@
     }
   m_rWnd = tcpHeader.GetWindowSize ();
 
-  // Discard fully out of range packets
-  if (OutOfRange (tcpHeader.GetSequenceNumber (), tcpHeader.GetSequenceNumber () + packet->GetSize ()))
+  // Discard fully out of range data packets
+  if (packet->GetSize &&
+      OutOfRange (tcpHeader.GetSequenceNumber (), tcpHeader.GetSequenceNumber () + packet->GetSize ()))
     {
       NS_LOG_LOGIC ("At state " << TcpStateName[m_state] <<
                     " received packet of seq [" << tcpHeader.GetSequenceNumber () <<