]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #3721: dcerpc: handling dcerpc over smbv2
authorBhargava Jandhyala (bjandhya) <bjandhya@cisco.com>
Thu, 12 Jan 2023 13:54:59 +0000 (13:54 +0000)
committerBhargava Jandhyala (bjandhya) <bjandhya@cisco.com>
Thu, 12 Jan 2023 13:54:59 +0000 (13:54 +0000)
Merge in SNORT/snort3 from ~VKAMBALA/snort3:psirt_74 to master

Squashed commit of the following:

commit 460a3b2d63914b1422bf3e7d9452facb6c9dd0c6
Author: krishnakanth <vkambala@cisco.com>
Date:   Tue Jan 10 14:55:52 2023 +0530

    dcerpc: handling dcerpc over smbv2

src/service_inspectors/dce_rpc/dce_smb2_file.cc
src/service_inspectors/dce_rpc/dce_smb2_tree.cc

index 2d04e36cd234ec266e1e161c31b6766ee672cf99..5dea17ea4171adb0efe09e92f64cdf53bea61473 100644 (file)
@@ -236,14 +236,13 @@ bool Dce2Smb2FileTracker::process_data(const uint32_t current_flow_key, const ui
         current_flow->session_data_mutex.lock();
         if (current_flow->get_tcp_flow())
             current_flow->get_tcp_flow()->last_data_seen = packet_time();
-
+        sess->co_tracker_mutex.lock();
         if (parent_tree->get_cotracker())
         {
-            sess->co_tracker_mutex.lock();
             DCE2_CoProcess(current_flow->get_dce2_session_data(), parent_tree->get_cotracker(),
                 file_data, data_size);
-            sess->co_tracker_mutex.unlock();
         }
+        sess->co_tracker_mutex.unlock();
         current_flow->session_data_mutex.unlock();
         return true;
     }
index ee84650253028c135741761735272a23e42017e8..1645ec712ab649ba8f78db2c596221f9dafbe355 100644 (file)
@@ -171,7 +171,10 @@ void Dce2Smb2TreeTracker::process_close_request(const Smb2Hdr* smb_header,
 
     if (share_type != SMB2_SHARE_TYPE_DISK)
     {
+        parent_session->co_tracker_mutex.lock();
         DCE2_CoCleanTracker(co_tracker);
+        parent_session->co_tracker_mutex.unlock();
+
     }
 }
 
@@ -508,12 +511,12 @@ void Dce2Smb2TreeTracker::process_ioctl_command(const uint8_t command_type,
     {
         data_size = UINT16_MAX;
     }
+    parent_session->co_tracker_mutex.lock();
     if (co_tracker)
     {
-        parent_session->co_tracker_mutex.lock();
         DCE2_CoProcess(get_dce2_session_data(p->flow), co_tracker, file_data, data_size);
-        parent_session->co_tracker_mutex.unlock();
     }
+    parent_session->co_tracker_mutex.unlock();
 }
 
 void Dce2Smb2TreeTracker::process(uint16_t command, uint8_t command_type,