From: Russ Combs (rucombs) Date: Tue, 27 Oct 2015 00:52:11 +0000 (-0400) Subject: Merge pull request #99 in SNORT/snort3 from tcp_reassembly_infinite_seglist_patch... X-Git-Tag: 3.0.0-233~766 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fdde40125d250e849bdaa1ff106de90fff5d2426;p=thirdparty%2Fsnort3.git Merge pull request #99 in SNORT/snort3 from tcp_reassembly_infinite_seglist_patch to master Squashed commit of the following: commit fb0b59b666c5f561089a884c8491b5e0dc8734e7 Author: davis mcpherson Date: Mon Oct 26 19:23:17 2015 -0400 init flush_count in TcpReassembler ctor to avoid infinite looping purging seglist --- diff --git a/src/stream/tcp/tcp_reassembler.cc b/src/stream/tcp/tcp_reassembler.cc index 0f4583948..fe23ddf56 100644 --- a/src/stream/tcp/tcp_reassembler.cc +++ b/src/stream/tcp/tcp_reassembler.cc @@ -495,7 +495,7 @@ int TcpReassembler::flush_data_segments( Packet* p, uint32_t toSeq, uint8_t* flu uint32_t total = toSeq - seglist.next->seq; while( SEQ_LT(seglist.next->seq, toSeq ) ) { - TcpSegment* ss = seglist.next, *sr; + TcpSegment* ss = seglist.next, *sr = nullptr; unsigned flushbuf_size = flushbuf_end - flushbuf; unsigned bytes_to_copy = get_flush_data_len( ss, toSeq, flushbuf_size ); unsigned bytes_copied = 0; diff --git a/src/stream/tcp/tcp_reassembler.h b/src/stream/tcp/tcp_reassembler.h index 7716bad41..bfeb5ec1e 100644 --- a/src/stream/tcp/tcp_reassembler.h +++ b/src/stream/tcp/tcp_reassembler.h @@ -127,7 +127,7 @@ protected: uint32_t xtradata_mask; /* extra data available to log */ TcpReassembler( TcpSession* session, TcpTracker* tracker, StreamPolicy os_policy, bool server ) : - server_side( server ), tracker(tracker) + server_side( server ), tracker(tracker), flush_count( 0 ), xtradata_mask( 0 ) { this->session = session; set_tcp_reassembly_policy( os_policy );