stream/reassembly: improve progress tracking for GAP cases

When during raw reassembly it is detected that last ack is moved beyond
the progress and also beyond the data retrieved, update progress to the
last ack value.

Bug: #8272.
(cherry picked from commit ac1a514c7b)
pull/15041/head
Victor Julien 1 month ago committed by Jason Ish
parent 82b7c9c35a
commit fecaa08f59

@ -1872,6 +1872,12 @@ static int StreamReassembleRawDo(const TcpSession *ssn, const TcpStream *stream,
progress = mydata_offset;
SCLogDebug("raw progress now %"PRIu64, progress);
/* data is beyond the progress we'd like, and also beyond the last ack:
* there is a gap and we can't expect it to get filled anymore. */
} else if (mydata_offset > progress && mydata_offset == re) {
SCLogDebug("mydata_offset %" PRIu64 ", progress %" PRIu64 ", re %" PRIu64,
mydata_offset, progress, re);
progress = re;
} else {
SCLogDebug("not increasing progress, data gap => mydata_offset "
"%"PRIu64" != progress %"PRIu64, mydata_offset, progress);

Loading…
Cancel
Save