From 3fd9a3d420af7fa7e8eb75182af8eb3bcf5dc3e3 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 24 Sep 2020 20:12:09 +0530 Subject: [PATCH] dcerpc: fix datatype for stub data len --- rust/src/dcerpc/dcerpc.rs | 12 ++++++------ rust/src/dcerpc/dcerpc_udp.rs | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rust/src/dcerpc/dcerpc.rs b/rust/src/dcerpc/dcerpc.rs index e6b615a563..c336f50b82 100644 --- a/rust/src/dcerpc/dcerpc.rs +++ b/rust/src/dcerpc/dcerpc.rs @@ -142,8 +142,8 @@ pub struct DCERPCTransaction { pub endianness: u8, pub stub_data_buffer_ts: Vec, pub stub_data_buffer_tc: Vec, - pub stub_data_buffer_len_ts: u16, - pub stub_data_buffer_len_tc: u16, + pub stub_data_buffer_len_ts: u32, + pub stub_data_buffer_len_tc: u32, pub stub_data_buffer_reset_ts: bool, pub stub_data_buffer_reset_tc: bool, pub req_done: bool, @@ -1066,7 +1066,7 @@ impl DCERPCState { fn evaluate_stub_params( input: &[u8], input_len: u16, hdrflags: u8, lenleft: u16, stub_data_buffer: &mut Vec, - stub_data_buffer_len: &mut u16, stub_data_buffer_reset: &mut bool, + stub_data_buffer_len: &mut u32, stub_data_buffer_reset: &mut bool, ) -> u16 { let stub_len: u16; let fragtype = hdrflags & (PFC_FIRST_FRAG | PFC_LAST_FRAG); @@ -1080,7 +1080,7 @@ fn evaluate_stub_params( let input_slice = &input[..stub_len as usize]; stub_data_buffer.extend_from_slice(&input_slice); - *stub_data_buffer_len += stub_len; + *stub_data_buffer_len += stub_len as u32; stub_len } @@ -1223,12 +1223,12 @@ pub unsafe extern "C" fn rs_dcerpc_get_stub_data( ) { match dir { core::STREAM_TOSERVER => { - *len = tx.stub_data_buffer_len_ts as u32; + *len = tx.stub_data_buffer_len_ts; *buf = tx.stub_data_buffer_ts.as_ptr(); SCLogDebug!("DCERPC Request stub buffer: Setting buffer to: {:?}", *buf); } _ => { - *len = tx.stub_data_buffer_len_tc as u32; + *len = tx.stub_data_buffer_len_tc; *buf = tx.stub_data_buffer_tc.as_ptr(); SCLogDebug!("DCERPC Response stub buffer: Setting buffer to: {:?}", *buf); } diff --git a/rust/src/dcerpc/dcerpc_udp.rs b/rust/src/dcerpc/dcerpc_udp.rs index 30612a4985..1229ef233e 100644 --- a/rust/src/dcerpc/dcerpc_udp.rs +++ b/rust/src/dcerpc/dcerpc_udp.rs @@ -268,7 +268,7 @@ impl DCERPCUDPState { fn evaluate_stub_params( input: &[u8], input_len: u16, hdrflags: u8, lenleft: u16, stub_data_buffer: &mut Vec, - stub_data_buffer_len: &mut u16, + stub_data_buffer_len: &mut u32, ) -> u16 { let stub_len: u16; stub_len = cmp::min(lenleft, input_len); @@ -285,7 +285,7 @@ fn evaluate_stub_params( let input_slice = &input[..stub_len as usize]; stub_data_buffer.extend_from_slice(&input_slice); - *stub_data_buffer_len += stub_len; + *stub_data_buffer_len += stub_len as u32; stub_len } -- 2.47.2