dcerpc: fix datatypes while handling stub data

pull/5442/head
Shivani Bhardwaj 5 years ago committed by Victor Julien
parent 3fd9a3d420
commit 301454e9e4

@ -811,11 +811,11 @@ impl DCERPCState {
}
self.padleft = fraglen - DCERPC_HDR_LEN - bytes_consumed;
let mut input_left = input.len() as u16 - bytes_consumed;
let mut parsed = bytes_consumed;
while input_left > 0 && parsed < fraglen {
let mut parsed = bytes_consumed as i32;
while input_left > 0 && parsed < fraglen as i32 {
let retval = self.handle_stub_data(&input[parsed as usize..], input_left, dir);
if retval > 0 && retval <= input_left {
parsed += retval;
parsed += retval as i32;
input_left -= retval;
} else if input_left > 0 {
SCLogDebug!(
@ -826,11 +826,11 @@ impl DCERPCState {
"response"
}
);
parsed -= input_left;
parsed -= input_left as i32;
input_left = 0;
}
}
parsed as i32
parsed
}
pub fn process_request_pdu(&mut self, input: &[u8]) -> i32 {
@ -1012,7 +1012,7 @@ impl DCERPCState {
}
DCERPC_TYPE_REQUEST => {
retval = self.process_request_pdu(&buffer[parsed as usize..]);
if retval == -1 {
if retval < 0 {
return AppLayerResult::err();
}
// In case the response came first, the transaction would complete later when
@ -1036,7 +1036,7 @@ impl DCERPCState {
0,
core::STREAM_TOCLIENT,
);
if retval == -1 {
if retval < 0 {
return AppLayerResult::err();
}
self.handle_bind_cache(current_call_id, true);

Loading…
Cancel
Save