]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
file: Window and edge adjustments
authorJeff Lucovsky <jlucovsky@oisf.net>
Mon, 10 Jul 2023 14:31:45 +0000 (10:31 -0400)
committerVictor Julien <vjulien@oisf.net>
Fri, 14 Jul 2023 15:56:23 +0000 (17:56 +0200)
Issue: 4145

Adjust edge and window values after considering file size/inspected
values.

src/util-file.c

index a9bfa57dbde47b559aad4ffcfce671cc1197c15a..d2d899439bacda05e3afcbc70dff89b29d14636a 100644 (file)
@@ -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);
     }