diff --git a/src/stream-tcp-reassemble.c b/src/stream-tcp-reassemble.c index 006d908455..6b3ace4f17 100644 --- a/src/stream-tcp-reassemble.c +++ b/src/stream-tcp-reassemble.c @@ -1057,9 +1057,10 @@ static inline uint32_t AdjustToAcked(const Packet *p, /* get max absolute offset */ last_ack_abs += delta; } + DEBUG_VALIDATE_BUG_ON(app_progress > last_ack_abs); /* see if the buffer contains unack'd data as well */ - if (app_progress + data_len > last_ack_abs) { + if (app_progress <= last_ack_abs && app_progress + data_len > last_ack_abs) { uint32_t check = data_len; adjusted = last_ack_abs - app_progress; BUG_ON(adjusted > check);