|
|
|
|
@ -205,7 +205,7 @@ pub fn smb_write_dcerpc_record(state: &mut SMBState,
|
|
|
|
|
SCLogDebug!("previous CMD {} found at tx {} => {:?}",
|
|
|
|
|
dcer.packet_type, tx.id, tx);
|
|
|
|
|
if let Some(SMBTransactionTypeData::DCERPC(ref mut tdn)) = tx.type_data {
|
|
|
|
|
tdn.frag_cnt_ts += 1;
|
|
|
|
|
tdn.frag_cnt_ts = tdn.frag_cnt_ts.saturating_add(1);
|
|
|
|
|
let max_size = cfg_max_stub_size() as usize;
|
|
|
|
|
if recr.data.len() + tdn.stub_data_ts.len() < max_size {
|
|
|
|
|
SCLogDebug!("additional frag of size {}", recr.data.len());
|
|
|
|
|
@ -247,7 +247,7 @@ pub fn smb_write_dcerpc_record(state: &mut SMBState,
|
|
|
|
|
SCLogDebug!("first frag size {}", recr.data.len());
|
|
|
|
|
tdn.opnum = recr.opnum;
|
|
|
|
|
tdn.context_id = recr.context_id;
|
|
|
|
|
tdn.frag_cnt_ts += 1;
|
|
|
|
|
tdn.frag_cnt_ts = tdn.frag_cnt_ts.saturating_add(1);
|
|
|
|
|
let max_size = cfg_max_stub_size() as usize;
|
|
|
|
|
if tdn.stub_data_ts.len() + recr.data.len() < max_size {
|
|
|
|
|
tdn.stub_data_ts.extend_from_slice(recr.data);
|
|
|
|
|
@ -418,7 +418,7 @@ fn dcerpc_response_handle(tx: &mut SMBTransaction,
|
|
|
|
|
SCLogDebug!("CMD 11 found at tx {}", tx.id);
|
|
|
|
|
tdn.set_result(DCERPC_TYPE_RESPONSE);
|
|
|
|
|
let max_size = cfg_max_stub_size() as usize;
|
|
|
|
|
tdn.frag_cnt_tc += 1;
|
|
|
|
|
tdn.frag_cnt_tc = tdn.frag_cnt_tc.saturating_add(1);
|
|
|
|
|
if tdn.stub_data_tc.len() + respr.data.len() < max_size {
|
|
|
|
|
tdn.stub_data_tc.extend_from_slice(respr.data);
|
|
|
|
|
} else if tdn.stub_data_tc.len() < max_size {
|
|
|
|
|
|