]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
fix nhttp checks
authorhuica <huica@cisco.com>
Thu, 17 Sep 2015 18:55:57 +0000 (14:55 -0400)
committerhuica <huica@cisco.com>
Thu, 17 Sep 2015 18:55:57 +0000 (14:55 -0400)
src/mime/file_mime_process.cc
src/service_inspectors/nhttp_inspect/nhttp_msg_header.cc
src/service_inspectors/nhttp_inspect/nhttp_stream_splitter.cc

index 455a4981c6eae30a9cd859c7b43cf51f9b33d5ca..0dfbd378d7491161694e1d1651fb4d42ccec2b4a 100644 (file)
 #include "utils/util.h"
 #include "utils/snort_bounds.h"
 
-typedef struct _MimeToken
+struct MimeToken
 {
     const char* name;
     int name_len;
     int search_id;
-} MimeToken;
+} ;
 
-typedef enum _MimeHdrEnum
+enum MimeHdrEnum
 {
     HDR_CONTENT_TYPE = 0,
     HDR_CONT_TRANS_ENC,
     HDR_CONT_DISP,
     HDR_LAST
-} MimeHdrEnum;
+};
 
 const MimeToken mime_hdrs[] =
 {
@@ -65,18 +65,18 @@ const MimeToken mime_hdrs[] =
     { NULL,             0, 0 }
 };
 
-typedef struct _MIMESearch
+struct MIMESearch
 {
     const char* name;
     int name_len;
-} MIMESearch;
+} ;
 
-typedef struct _MIMESearchInfo
+struct MIMESearchInfo
 {
     int id;
     int index;
     int length;
-} MIMESearchInfo;
+} ;
 
 MIMESearchInfo mime_search_info;
 
@@ -498,7 +498,6 @@ void MimeSession::reset_mime_state()
 const uint8_t* MimeSession::process_mime_data_paf(Flow* flow, const uint8_t* start, const uint8_t* end,
    bool upload, FilePosition position)
 {
-
     bool done_data = is_end_of_data(flow);
 
     /* if we've just entered the data state, check for a dot + end of line
@@ -567,7 +566,6 @@ const uint8_t* MimeSession::process_mime_data_paf(Flow* flow, const uint8_t* sta
             return NULL;
     }
 
-
     if (normalize_data(config, start, end) < 0)
         return NULL;
     /* now we shouldn't have to worry about copying any data to the alt buffer
index ac17913cd2c38640fec63577907cd417f5347883..6bf44c04237e417f4ba47dee5433167bb6a80931 100644 (file)
@@ -24,6 +24,7 @@
 #include "utils/util.h"
 #include "detection/detection_util.h"
 #include "file_api/file_service.h"
+#include "file_api/file_flows.h"
 
 #include "nhttp_enum.h"
 #include "nhttp_msg_request.h"
@@ -125,6 +126,10 @@ void NHttpMsgHeader::setup_file_processing()
     // fully supports it remove the outer if statement that prevents it from being done.
     if (session_data->file_depth_remaining[1-source_id] == 0)
     {
+        FileFlows* file_flows = FileFlows::get_file_flows(flow);
+        if (!file_flows)
+            return;
+
         if ((session_data->file_depth_remaining[source_id] = FileService::get_max_file_depth()) < 0)
         {
            session_data->file_depth_remaining[source_id] = 0;
index ce1f9144a3716ca8a9090f8fb52a5227087f8beb..57606d7795b8ead2b429795d2bcda073d706f3b4 100644 (file)
@@ -496,7 +496,7 @@ bool NHttpStreamSplitter::finish(Flow* flow)
             if (file_flows)
                 file_flows->file_process(nullptr, 0, SNORT_FILE_END, false, false);
         }
-        else if (session_data->mime_state != nullptr)
+        else
         {
             session_data->mime_state->process_mime_data(flow, nullptr, 0, true,
                 SNORT_FILE_END);