]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
smb/dce_iface: use DCERPC_TYPE_REQUEST
authorEloy Pérez González <zer1t0ps@protonmail.com>
Fri, 22 Oct 2021 11:52:14 +0000 (13:52 +0200)
committerShivani Bhardwaj <shivanib134@gmail.com>
Wed, 9 Feb 2022 14:31:38 +0000 (20:01 +0530)
The smb dce_iface keyword must match for all those dcerpc requests and
responses sent in the context of the given interface. They are not
matching because in rs_smb_tx_get_dce_iface, x.req_cmd is erroneously
compared with 1. Fix this by comparing with DCERPC_TYPE_REQUEST instead.

Ticket: 4767
(cherry picked from commit 1ae22fd5de3155c356c1191759cb7c066498a93e)

rust/src/smb/detect.rs

index 2e30484051c460dcec28db03c75261b847504368..0ee0b7ede9432e96ce83585d0d82df33c4c1a957 100644 (file)
@@ -185,7 +185,9 @@ pub extern "C" fn rs_smb_tx_get_dce_iface(state: &mut SMBState,
     let if_op = dce_data.op;
     let if_version = dce_data.version;
     let is_dcerpc_request = match tx.type_data {
-        Some(SMBTransactionTypeData::DCERPC(ref x)) => { x.req_cmd == 1 },
+        Some(SMBTransactionTypeData::DCERPC(ref x)) => {
+            x.req_cmd == DCERPC_TYPE_REQUEST
+        },
         _ => { false },
     };
     if !is_dcerpc_request {