stream: improve last_ack validation check

If a packet after the initialization would come with ACK flag set
but a ACK value of 0, the last_ack tracking could get confused. Fix
this by not checking for 0 but instead checking if the ACK flag
has been seen.

Bug: #4549.
pull/7293/head
Victor Julien 3 years ago
parent d56b2455bc
commit 1f43e1477f

@ -133,7 +133,7 @@ void StreamTcpReassemblySetMinInspectDepth(TcpSession *ssn, int direction, uint3
static inline bool STREAM_LASTACK_GT_BASESEQ(const TcpStream *stream)
{
/* last ack not yet initialized */
if (STREAM_BASE_OFFSET(stream) == 0 && stream->last_ack == 0)
if (STREAM_BASE_OFFSET(stream) == 0 && (stream->tcp_flags & TH_ACK) == 0)
return false;
if (SEQ_GT(stream->last_ack, stream->base_seq))
return true;

Loading…
Cancel
Save