]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
fixed 296-9 tcp segfault
authorrcombs <rcombs@sq18.sfeng.sourcefire.com>
Sat, 15 Nov 2014 00:11:14 +0000 (19:11 -0500)
committerrcombs <rcombs@sq18.sfeng.sourcefire.com>
Sat, 15 Nov 2014 00:11:14 +0000 (19:11 -0500)
ChangeLog
src/stream/tcp/tcp_session.cc

index 0e353f43e8e6ca1909194156adcf601fe132910f..c67362234783af1978b45da74542717d0616abe6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -31,6 +31,7 @@
 -- refactored main init / reload code
 -- fixed cmake -ldl issue
 -- fixed normalization broke by the init/reload refactoring :(
+-- fixed 296-9 tcp segfault
 
 127
 -- REG_TEST out logging tcp options for rebuilt packets to match snort bug
index 3fd119a480e2947a5444de98e112c9a0b31d7401..44dcaecbc6516b3877f9d8fc8f98d031456744db 100644 (file)
@@ -3659,7 +3659,7 @@ static int StreamQueue(StreamTracker *st, Packet *p, TcpDataBlock *tdb,
             // Don't want to count retransmits as overlaps or do anything
             // else with them.  Account for retransmits of multiple PDUs
             // in one segment.
-            while (IsRetransmit(right, rdata, rsize, rseq))
+            if (IsRetransmit(right, rdata, rsize, rseq))
             {
                 rdata += right->size;
                 rsize -= right->size;
@@ -3674,19 +3674,9 @@ static int StreamQueue(StreamTracker *st, Packet *p, TcpDataBlock *tdb,
                     // All data was retransmitted
                     RetransmitHandle(p, tcpssn);
                     addthis = 0;
-                    break;
-                }
-                else if ((right == NULL) || (rsize < right->size))
-                {
-                    // Need to add new node or some data left to check
-                    break;
                 }
-            }
-
-            if ((rsize == 0) || (right == NULL))
-                break;
-            else if (rsize < right->size)
                 continue;
+            }
 
             STREAM5_DEBUG_WRAP(DebugMessage(DEBUG_STREAM_STATE,
                         "Got full right overlap\n"););