]> 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)
committerVictor Julien <vjulien@oisf.net>
Tue, 14 Jun 2022 10:26:18 +0000 (12:26 +0200)
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 86f6a60a34cc6bae435d0ba7b13a3ea521301928..c5c404112b6d50cce23ab919f306d1bb843c22ea 100644 (file)
@@ -183,7 +183,9 @@ pub extern "C" fn rs_smb_tx_get_dce_iface(state: &mut SMBState,
                                             -> u8
 {
     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 {