Don't consider payload len in ACK value validation check.

remotes/origin/master-1.2.x
Victor Julien 14 years ago
parent 9878eca086
commit 58011554b0

@ -4446,7 +4446,7 @@ static inline int StreamTcpValidateAck(TcpStream *stream, Packet *p)
uint32_t ack = TCP_GET_ACK(p);
/* fast track */
if (SEQ_GT(ack, stream->last_ack) && SEQ_LEQ(ack + p->payload_len, stream->next_win))
if (SEQ_GT(ack, stream->last_ack) && SEQ_LEQ(ack, stream->next_win))
{
SCLogDebug("ACK in bounds");
SCReturnInt(0);
@ -4479,6 +4479,8 @@ static inline int StreamTcpValidateAck(TcpStream *stream, Packet *p)
goto invalid;
}
SCLogDebug("default path leading to invalid: ACK %"PRIu32", last_ack %"PRIu32
" next_win %"PRIu32, ack, stream->last_ack, stream->next_win);
invalid:
StreamTcpSetEvent(p, STREAM_PKT_INVALID_ACK);
SCReturnInt(-1);

Loading…
Cancel
Save