]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
file: remove FILE_USE_DETECT flag 9237/head
authorVictor Julien <vjulien@oisf.net>
Tue, 11 Jul 2023 08:04:45 +0000 (10:04 +0200)
committerVictor Julien <vjulien@oisf.net>
Fri, 14 Jul 2023 15:57:40 +0000 (17:57 +0200)
All implementations were converted to use the logic, so the flag itself
can be removed.

rust/src/filecontainer.rs
rust/src/http2/http2.rs
rust/src/nfs/nfs.rs
rust/src/smb/files.rs
src/app-layer-ftp.c
src/app-layer-htp-file.c
src/app-layer-smtp.c
src/util-file.c

index b1784b6c2f302d91cc30f48e6292e50ba50d0e97..c51daaa8f1391db23422739d91e4b2d15382cbc9 100644 (file)
@@ -24,8 +24,6 @@ use crate::core::*;
 extern {
     pub fn FileFlowFlagsToFlags(flow_file_flags: u16, flags: u8) -> u16;
 }
-pub const FILE_USE_DETECT:    u16 = BIT_U16!(13);
-
 
 #[repr(C)]
 #[derive(Debug)]
index 5939c97210fafb1e72685c9adacdfa88c2b83220..326030f9bbe36f55412b924792fe84d323aa426f 100644 (file)
@@ -211,8 +211,8 @@ impl HTTP2Transaction {
     }
 
     pub fn update_file_flags(&mut self, flow_file_flags: u16) {
-        self.ft_ts.file_flags = unsafe { FileFlowFlagsToFlags(flow_file_flags, STREAM_TOSERVER) | FILE_USE_DETECT };
-        self.ft_tc.file_flags = unsafe { FileFlowFlagsToFlags(flow_file_flags, STREAM_TOCLIENT) | FILE_USE_DETECT };
+        self.ft_ts.file_flags = unsafe { FileFlowFlagsToFlags(flow_file_flags, STREAM_TOSERVER) };
+        self.ft_tc.file_flags = unsafe { FileFlowFlagsToFlags(flow_file_flags, STREAM_TOCLIENT) };
     }
 
     fn decompress<'a>(
index 2e1c785eaaa336056bf44ca052797705efed8db4..dfb5e0e724454ccc4e6265f41b2cd8a2b9c7972b 100644 (file)
@@ -154,7 +154,7 @@ impl NFSTransactionFile {
     }
     pub fn update_file_flags(&mut self, flow_file_flags: u16) {
         let dir_flag = if self.direction == Direction::ToServer { STREAM_TOSERVER } else { STREAM_TOCLIENT };
-        self.file_tracker.file_flags = unsafe { FileFlowFlagsToFlags(flow_file_flags, dir_flag) | FILE_USE_DETECT };
+        self.file_tracker.file_flags = unsafe { FileFlowFlagsToFlags(flow_file_flags, dir_flag) };
     }
 }
 
index 996794b5290a196618fd15c904db938782c80077..b290357428ee7f0f73d7a85c686742c65950541b 100644 (file)
@@ -46,7 +46,7 @@ impl SMBTransactionFile {
 
     pub fn update_file_flags(&mut self, flow_file_flags: u16) {
         let dir_flag = if self.direction == Direction::ToServer { STREAM_TOSERVER } else { STREAM_TOCLIENT };
-        self.file_tracker.file_flags = unsafe { FileFlowFlagsToFlags(flow_file_flags, dir_flag) | FILE_USE_DETECT };
+        self.file_tracker.file_flags = unsafe { FileFlowFlagsToFlags(flow_file_flags, dir_flag) };
     }
 }
 
index f96fcc362fd48124031b6c878973b466a3fd6e44..c22c39c134b2d8b8eda77829776d48b8272d33b5 100644 (file)
@@ -1002,8 +1002,7 @@ static AppLayerResult FTPDataParse(Flow *f, FtpDataState *ftpdata_state,
         ftpdata_state->tx_data.file_tx = direction & (STREAM_TOSERVER | STREAM_TOCLIENT);
 
     /* we depend on detection engine for file pruning */
-    const uint16_t flags =
-            FileFlowFlagsToFlags(ftpdata_state->tx_data.file_flags, direction) | FILE_USE_DETECT;
+    const uint16_t flags = FileFlowFlagsToFlags(ftpdata_state->tx_data.file_flags, direction);
     int ret = 0;
 
     SCLogDebug("FTP-DATA input_len %u flags %04x dir %d/%s EOF %s", input_len, flags, direction,
index 867d47ff01580d168e03275f732b6e94a19b2023..f96b37016061df1a93d2fad4f960bf7668e56d51 100644 (file)
@@ -67,8 +67,6 @@ int HTPFileOpen(HtpState *s, HtpTxUserData *tx, const uint8_t *filename, uint16_
         flags = FileFlowFlagsToFlags(tx->tx_data.file_flags, STREAM_TOSERVER);
     }
 
-    flags |= FILE_USE_DETECT;
-
     if (FileOpenFileWithId(files, &htp_sbcfg, s->file_track_id++, filename, filename_len, data,
                 data_len, flags) != 0) {
         retval = -1;
@@ -166,8 +164,6 @@ int HTPFileOpenWithRange(HtpState *s, HtpTxUserData *txud, const uint8_t *filena
     flags = FileFlowToFlags(s->f, STREAM_TOCLIENT);
     FileContainer *files = &txud->files_tc;
 
-    flags |= FILE_USE_DETECT;
-
     // we open a file for this specific range
     if (FileOpenFileWithId(files, &htp_sbcfg, s->file_track_id++, filename, filename_len, data,
                 data_len, flags) != 0) {
index 1546a7ec7f3a6babaa1ee9c2357a4b4cd411a060..bf93c45178775eb4e1ab5dfdb8c40d0e103198b9 100644 (file)
@@ -496,8 +496,6 @@ int SMTPProcessDataChunk(const uint8_t *chunk, uint32_t len,
     DEBUG_VALIDATE_BUG_ON(tx == NULL);
 
     uint16_t flags = FileFlowToFlags(flow, STREAM_TOSERVER);
-    /* we depend on detection engine for file pruning */
-    flags |= FILE_USE_DETECT;
 
     /* Find file */
     if (entity->ctnt_flags & CTNT_IS_ATTACHMENT) {
@@ -1214,7 +1212,7 @@ static int SMTPProcessRequest(SMTPState *state, Flow *f, AppLayerParserState *ps
                 }
                 if (FileOpenFileWithId(&tx->files_ts, &smtp_config.sbcfg, state->file_track_id++,
                             (uint8_t *)rawmsgname, strlen(rawmsgname), NULL, 0,
-                            FILE_NOMD5 | FILE_NOMAGIC | FILE_USE_DETECT) == 0) {
+                            FILE_NOMD5 | FILE_NOMAGIC) == 0) {
                     SMTPNewFile(tx, tx->files_ts.tail);
                 }
             } else if (smtp_config.decode_mime) {
index d2d899439bacda05e3afcbc70dff89b29d14636a..0449a2edae6c09409f89c4c21f02350c662fbb1c 100644 (file)
@@ -386,9 +386,9 @@ static int FilePruneFile(File *file, const StreamingBufferConfig *cfg)
     if (file->flags & FILE_STORE) {
         left_edge = MIN(left_edge,file->content_stored);
     }
-    if (file->flags & FILE_USE_DETECT) {
-        left_edge = MIN(left_edge, file->content_inspected);
 
+    if (!g_detect_disabled) {
+        left_edge = MIN(left_edge, file->content_inspected);
         /* if file has inspect window and min size set, we
          * do some house keeping here */
         if (file->inspect_window != 0 && file->inspect_min_size != 0) {
@@ -441,13 +441,11 @@ void FilePrintFlags(const File *file)
                "FILE_STORE %s "
                "FILE_STORED %s "
                "FILE_NOTRACK %s "
-               "FILE_USE_DETECT %s "
                "FILE_HAS_GAPS %s",
             file, file->flags, P(file, FILE_TRUNCATED), P(file, FILE_NOMAGIC), P(file, FILE_NOMD5),
             P(file, FILE_MD5), P(file, FILE_NOSHA1), P(file, FILE_SHA1), P(file, FILE_NOSHA256),
             P(file, FILE_SHA256), P(file, FILE_LOGGED), P(file, FILE_NOSTORE), P(file, FILE_STORE),
-            P(file, FILE_STORED), P(file, FILE_NOTRACK), P(file, FILE_USE_DETECT),
-            P(file, FILE_HAS_GAPS));
+            P(file, FILE_STORED), P(file, FILE_NOTRACK), P(file, FILE_HAS_GAPS));
 }
 #undef P
 #endif
@@ -727,8 +725,7 @@ static int FileAppendDataDo(
         SCReturnInt(-1);
     }
 
-    if ((ff->flags & FILE_USE_DETECT) == 0 &&
-            FileStoreNoStoreCheck(ff) == 1) {
+    if (g_detect_disabled && FileStoreNoStoreCheck(ff) == 1) {
         int hash_done = 0;
         /* no storage but forced hashing */
         if (ff->md5_ctx) {
@@ -941,10 +938,6 @@ static File *FileOpenFile(FileContainer *ffc, const StreamingBufferConfig *sbcfg
         SCLogDebug("not doing sha256 for this file");
         ff->flags |= FILE_NOSHA256;
     }
-    if (!g_detect_disabled && flags & FILE_USE_DETECT) {
-        SCLogDebug("considering content_inspect tracker when pruning");
-        ff->flags |= FILE_USE_DETECT;
-    }
 
     if (!(ff->flags & FILE_NOMD5) || g_file_force_md5) {
         ff->md5_ctx = SCMd5New();