]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #1812 in SNORT/snort3 from ~SMINUT/snort3:tcp_reassembler_int2uint...
authorMike Stepanek (mstepane) <mstepane@cisco.com>
Tue, 29 Oct 2019 19:37:26 +0000 (15:37 -0400)
committerMike Stepanek (mstepane) <mstepane@cisco.com>
Tue, 29 Oct 2019 19:37:26 +0000 (15:37 -0400)
Squashed commit of the following:

commit 9ac10d66c206a949d9e7713bffd23ce14f65ef80
Author: Silviu Minut <sminut@cisco.com>
Date:   Tue Oct 22 11:41:56 2019 -0400

    stream: change int16_t to uint16_t in the signature of TcpReassembler::add_reassembly_segment().
            Do not use tsn->next->c_len when setting PKT_PDU_TAIL in TcpReassembler::flush_data_segments().

src/stream/tcp/segment_overlap_editor.h
src/stream/tcp/tcp_reassembler.cc
src/stream/tcp/tcp_reassembler.h

index 8b0ba0abfa9b86ba427006332cbd95c9eb362732..19dc0ac4098d37865b6411371a65bda1092b4e36 100644 (file)
@@ -112,7 +112,7 @@ protected:
     virtual int insert_full_overlap(TcpReassemblerState&) = 0;
 
     virtual int add_reassembly_segment(
-        TcpReassemblerState&, TcpSegmentDescriptor&, int16_t, uint32_t,
+        TcpReassemblerState&, TcpSegmentDescriptor&, uint16_t, uint32_t,
         uint32_t, uint32_t, TcpSegmentNode*) = 0;
 
     virtual int dup_reassembly_segment(TcpReassemblerState&, TcpSegmentNode*, TcpSegmentNode**) = 0;
@@ -121,4 +121,3 @@ protected:
 };
 
 #endif
-
index e71344c01496c52ccb63f35b981b39609537f8c0..fcc79aa86e4995ae4e1257c1b763c598524f0be6 100644 (file)
@@ -199,7 +199,7 @@ bool TcpReassembler::is_segment_fasttrack(
 }
 
 int TcpReassembler::add_reassembly_segment(
-    TcpReassemblerState& trs, TcpSegmentDescriptor& tsd, int16_t len, uint32_t slide,
+    TcpReassemblerState& trs, TcpSegmentDescriptor& tsd, uint16_t len, uint32_t slide,
     uint32_t trunc_len, uint32_t seq, TcpSegmentNode* left)
 {
     const int32_t new_size = len - slide - trunc_len;
@@ -403,8 +403,7 @@ int TcpReassembler::flush_data_segments(
 
         if ( !tsn->next or (bytes_to_copy < tsn->c_len) or
             SEQ_EQ(tsn->c_seq + bytes_to_copy, to_seq) or
-            (total_flushed + tsn->c_len + tsn->next->c_len >
-                trs.tracker->splitter->get_max_pdu()) )
+            (total_flushed + tsn->c_len > trs.tracker->splitter->get_max_pdu()) )
         {
             flags |= PKT_PDU_TAIL;
         }
@@ -448,9 +447,7 @@ int TcpReassembler::flush_data_segments(
             break;
         }
 
-        if ( ( sb.data || !trs.sos.seglist.cur_rseg ) or
-             ( ( total_flushed + trs.sos.seglist.cur_rseg->c_len ) >
-                 trs.tracker->splitter->get_max_pdu() ) )
+        if ( sb.data || !trs.sos.seglist.cur_rseg )
             break;
     }
 
@@ -1322,4 +1319,3 @@ int TcpReassembler::queue_packet_for_reassembly(
 
     return rc;
 }
-
index 93c6ad0c8f45c09e562d19e7be2f1ef907ab6d68..9b8694c7cc025c0f1e27d597e31186cefec9fea1 100644 (file)
@@ -45,7 +45,7 @@ protected:
     TcpReassembler() = default;
 
     int add_reassembly_segment(
-        TcpReassemblerState&, TcpSegmentDescriptor&, int16_t len, uint32_t slide,
+        TcpReassemblerState&, TcpSegmentDescriptor&, uint16_t len, uint32_t slide,
         uint32_t trunc, uint32_t seq, TcpSegmentNode* left) override;
 
     int dup_reassembly_segment(
@@ -88,4 +88,3 @@ protected:
 };
 
 #endif
-