Squashed commit of the following:
commit
c0f2ed2c2b2572310314aa5b7b53557b12cc9966
Author: Louis Zhijun Liu <zhijliu@cisco.com>
Date: Wed Mar 11 17:44:19 2020 -0700
stream_tcp: Out-of-order ACK processing fix
{
pkt_action_mask |= listener->normalizer.handle_paws(tsd);
- if ( pkt_action_mask & ACTION_BAD_PKT )
- return false;
+ if ( SnortConfig::inline_mode() )
+ if ( tsd.get_tcph()->is_ack() && !listener->is_ack_valid(tsd.get_seg_ack()) )
+ pkt_action_mask |= ACTION_BAD_PKT;
- return true;
+ return ( pkt_action_mask & ACTION_BAD_PKT ) ? false : true;
}
/*
return true;
}
+bool TcpStateSynRecv::data_seg_sent(TcpSegmentDescriptor& tsd, TcpStreamTracker& trk)
+{
+ trk.update_tracker_ack_sent(tsd);
+ if ( trk.session->no_ack_mode_enabled() )
+ trk.update_tracker_no_ack_recv(tsd);
+ return true;
+}
+
bool TcpStateSynRecv::data_seg_recv(TcpSegmentDescriptor& tsd, TcpStreamTracker& trk)
{
if ( trk.is_ack_valid(tsd.get_seg_ack()) )
bool syn_ack_recv(TcpSegmentDescriptor&, TcpStreamTracker&) override;
bool ack_sent(TcpSegmentDescriptor&, TcpStreamTracker&) override;
bool ack_recv(TcpSegmentDescriptor&, TcpStreamTracker&) override;
+ bool data_seg_sent(TcpSegmentDescriptor&, TcpStreamTracker&) override;
bool data_seg_recv(TcpSegmentDescriptor&, TcpStreamTracker&) override;
bool fin_recv(TcpSegmentDescriptor&, TcpStreamTracker&) override;
bool rst_recv(TcpSegmentDescriptor&, TcpStreamTracker&) override;