From: Eloy Pérez González Date: Fri, 22 Oct 2021 11:52:14 +0000 (+0200) Subject: smb/dce_iface: use DCERPC_TYPE_REQUEST X-Git-Tag: suricata-6.0.5~120 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9bc31affa4f81a723f7b234dd82ef585314dca54;p=thirdparty%2Fsuricata.git smb/dce_iface: use DCERPC_TYPE_REQUEST 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) --- diff --git a/rust/src/smb/detect.rs b/rust/src/smb/detect.rs index 2e30484051..0ee0b7ede9 100644 --- a/rust/src/smb/detect.rs +++ b/rust/src/smb/detect.rs @@ -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 {