]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect/file.magic: update buffer initialization logic
authorVictor Julien <vjulien@oisf.net>
Sat, 28 Jan 2023 10:21:59 +0000 (11:21 +0100)
committerVictor Julien <vjulien@oisf.net>
Sat, 28 Jan 2023 11:46:41 +0000 (12:46 +0100)
src/detect-filemagic.c

index 5e96a648498f1829d8012883d20b0fe3a720927b..3da9b6f2d6fa42c447aedf79b5131c8f963b203f 100644 (file)
@@ -442,16 +442,15 @@ static int DetectFilemagicSetupSticky(DetectEngineCtx *de_ctx, Signature *s, con
 }
 
 static InspectionBuffer *FilemagicGetDataCallback(DetectEngineThreadCtx *det_ctx,
-        const DetectEngineTransforms *transforms,
-        Flow *f, uint8_t flow_flags, File *cur_file,
-        int list_id, int local_file_id, bool first)
+        const DetectEngineTransforms *transforms, Flow *f, uint8_t flow_flags, File *cur_file,
+        int list_id, int local_file_id)
 {
     SCEnter();
 
     InspectionBuffer *buffer = InspectionBufferMultipleForListGet(det_ctx, list_id, local_file_id);
     if (buffer == NULL)
         return NULL;
-    if (!first && buffer->inspect != NULL)
+    if (buffer->initialized)
         return buffer;
 
     if (cur_file->magic == NULL) {
@@ -493,8 +492,8 @@ static uint8_t DetectEngineInspectFilemagic(DetectEngineCtx *de_ctx, DetectEngin
     uint8_t r = DETECT_ENGINE_INSPECT_SIG_NO_MATCH;
     int local_file_id = 0;
     for (File *file = ffc->head; file != NULL; file = file->next) {
-        InspectionBuffer *buffer = FilemagicGetDataCallback(det_ctx,
-            transforms, f, flags, file, engine->sm_list, local_file_id, false);
+        InspectionBuffer *buffer = FilemagicGetDataCallback(
+                det_ctx, transforms, f, flags, file, engine->sm_list, local_file_id);
         if (buffer == NULL)
             continue;
 
@@ -548,8 +547,8 @@ static void PrefilterTxFilemagic(DetectEngineThreadCtx *det_ctx, const void *pec
     if (ffc != NULL) {
         int local_file_id = 0;
         for (File *file = ffc->head; file != NULL; file = file->next) {
-            InspectionBuffer *buffer = FilemagicGetDataCallback(det_ctx,
-                    ctx->transforms, f, flags, file, list_id, local_file_id, true);
+            InspectionBuffer *buffer = FilemagicGetDataCallback(
+                    det_ctx, ctx->transforms, f, flags, file, list_id, local_file_id);
             if (buffer == NULL)
                 continue;