From: Jeff Lucovsky Date: Mon, 10 Jul 2023 14:31:45 +0000 (-0400) Subject: file: Window and edge adjustments X-Git-Tag: suricata-7.0.0~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82b585d2026003df8dc8587c40f38f21dcd100a2;p=thirdparty%2Fsuricata.git file: Window and edge adjustments Issue: 4145 Adjust edge and window values after considering file size/inspected values. --- diff --git a/src/util-file.c b/src/util-file.c index a9bfa57dbd..d2d899439b 100644 --- a/src/util-file.c +++ b/src/util-file.c @@ -404,14 +404,19 @@ static int FilePruneFile(File *file, const StreamingBufferConfig *cfg) window, file_size, data_size); if (data_size > (window * 3)) { - left_edge = file_size - window; - SCLogDebug("file->content_inspected now %"PRIu64, left_edge); - file->content_inspected = left_edge; + file->content_inspected = MAX(file->content_inspected, file->size - window); + SCLogDebug("file->content_inspected now %" PRIu64, file->content_inspected); } + + if (left_edge > window) + left_edge -= window; + else + left_edge = 0; } } if (left_edge) { + SCLogDebug("sliding to %" PRIu64, left_edge); StreamingBufferSlideToOffset(file->sb, cfg, left_edge); }