]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
fix the depth
authorhuica <huica@cisco.com>
Sat, 1 Aug 2015 14:34:22 +0000 (10:34 -0400)
committerhuica <huica@cisco.com>
Sat, 1 Aug 2015 14:34:22 +0000 (10:34 -0400)
src/file_api/file_mime_decode.cc
src/file_api/file_mime_process.cc
src/utils/sf_email_attach_decode.cc

index 3f08575adac014aea065acd76d6b1c9188f6330c..4359f7e16ae2bfaf5398d0811b96770f9c4e64a3 100644 (file)
@@ -55,7 +55,7 @@ void MimeDecode::process_decode_type(const char* start, int length, bool cnt_xf)
             if ( tmp != NULL )
             {
                 decode_type = DECODE_B64;
-                decoder = new B64Decode(config->get_max_depth());
+                decoder = new B64Decode(config->get_b64_depth());
                 detection_depth = config->get_b64_depth();
                 return;
             }
@@ -67,7 +67,7 @@ void MimeDecode::process_decode_type(const char* start, int length, bool cnt_xf)
             if ( tmp != NULL )
             {
                 decode_type = DECODE_QP;
-                decoder = new QPDecode(config->get_max_depth());
+                decoder = new QPDecode(config->get_qp_depth());
                 detection_depth = config->get_qp_depth();
                 return;
             }
@@ -79,7 +79,7 @@ void MimeDecode::process_decode_type(const char* start, int length, bool cnt_xf)
             if ( tmp != NULL )
             {
                 decode_type = DECODE_UU;
-                decoder = new UUDecode(config->get_max_depth());
+                decoder = new UUDecode(config->get_uu_depth());
                 detection_depth = config->get_uu_depth();
                 return;
             }
@@ -89,7 +89,7 @@ void MimeDecode::process_decode_type(const char* start, int length, bool cnt_xf)
     if (config->get_bitenc_depth() > -1)
     {
         decode_type = DECODE_BITENC;
-        decoder = new BitDecode(config->get_max_depth());
+        decoder = new BitDecode(config->get_bitenc_depth());
         detection_depth = config->get_bitenc_depth();
         return;
     }
index 960e016486de067be0652e99ad14af7b57dd866f..e1d35c63297db27088513c7e3d611c57da882607 100644 (file)
@@ -723,6 +723,7 @@ MimeSession::MimeSession(DecodeConfig* dconf, MailLogConfig* lconf)
     decode_conf = dconf;
     log_config =  lconf;
     log_state = new MailLogState(log_config);
+    reset_mime_paf_state(&mime_boundary);
 }
 
 MimeSession::~MimeSession()
index 854831fa66d3c676e6dd1088db9c3d39e86369f0..b8aa8e77ba03b6624d882c2dd9fb6e704bbd2ab5 100644 (file)
@@ -414,17 +414,22 @@ int DataDecode::get_decoded_data(uint8_t** buf,  uint32_t* size)
         return 0;
 }
 
+#define MAX_DEPTH       65536
+
 DataDecode::DataDecode(int max_depth)
 {
-    work_buffer = (uint8_t*)SnortAlloc(2*max_depth);
+    if (!max_depth)
+        buf_size = MAX_DEPTH;
+    else
+        buf_size = max_depth;
 
+    work_buffer = (uint8_t*)SnortAlloc(2*buf_size);
     prev_encoded_bytes = 0;
     prev_encoded_buf = nullptr;
     decoded_bytes = 0;
-    buf_size = max_depth;
 
     encodeBuf = (uint8_t*)work_buffer;
-    decodeBuf = (uint8_t*)work_buffer + max_depth;
+    decodeBuf = (uint8_t*)work_buffer + buf_size;
 
     encode_depth = decode_depth = max_depth;
     encode_bytes_read = decode_bytes_read = 0;