true
},
SMB2_COMMAND_WRITE => {
- match parse_smb2_response_write(r.data) {
- IResult::Done(_, wr) => {
- SCLogDebug!("SMBv2: Write response => {:?}", wr);
-
- /* search key-guid map */
- let guid_key = SMBCommonHdr::new(SMBHDR_TYPE_GUID,
- r.session_id, r.tree_id, r.message_id);
- let guid_vec = match state.ssn2vec_map.remove(&guid_key) {
- Some(p) => p,
- None => {
- SCLogDebug!("SMBv2 response: GUID NOT FOUND");
- Vec::new()
- },
- };
- SCLogDebug!("SMBv2 write response for GUID {:?}", guid_vec);
+ if r.nt_status == SMB_NTSTATUS_SUCCESS {
+ match parse_smb2_response_write(r.data)
+ {
+ IResult::Done(_, wr) => {
+ SCLogDebug!("SMBv2: Write response => {:?}", wr);
+
+ /* search key-guid map */
+ let guid_key = SMBCommonHdr::new(SMBHDR_TYPE_GUID,
+ r.session_id, r.tree_id, r.message_id);
+ let guid_vec = match state.ssn2vec_map.remove(&guid_key) {
+ Some(p) => p,
+ None => {
+ SCLogDebug!("SMBv2 response: GUID NOT FOUND");
+ Vec::new()
+ },
+ };
+ SCLogDebug!("SMBv2 write response for GUID {:?}", guid_vec);
+ }
+ _ => {
+ events.push(SMBEvent::MalformedData);
+ },
}
- _ => {
- events.push(SMBEvent::MalformedData);
- },
}
false // the request may have created a generic tx, so handle that here
},
tx.response_done = true;
true
},
- None => {
- false
- },
+ None => { false },
};
found1 || found2
},