From: Philippe Antoine Date: Sat, 2 Apr 2022 19:41:56 +0000 (+0200) Subject: dcerpc: use wrappingadd for padding parsing X-Git-Tag: suricata-6.0.6~70 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5924869f5d1da46fe8bfda4d4eda124c15a79cde;p=thirdparty%2Fsuricata.git dcerpc: use wrappingadd for padding parsing As we compute a modulo, we can safely wrap around even if there is an overflow Ticket: #5301 (cherry picked from commit d2f00ac824068475414a6ee402c9ecf4b0de1308) --- diff --git a/rust/src/dcerpc/parser.rs b/rust/src/dcerpc/parser.rs index 9771a28be0..4110d03239 100644 --- a/rust/src/dcerpc/parser.rs +++ b/rust/src/dcerpc/parser.rs @@ -160,7 +160,7 @@ named!(pub parse_dcerpc_bindack, >> _assoc_group: take!(4) >> sec_addr_len: le_u16 >> take!(sec_addr_len) - >> cond!((sec_addr_len + 2) % 4 != 0, take!(4 - (sec_addr_len + 2) % 4)) + >> cond!((sec_addr_len.wrapping_add(2)) % 4 != 0, take!(4 - (sec_addr_len.wrapping_add(2)) % 4)) >> numctxitems: le_u8 >> take!(3) // Padding >> ctxitems: count!(parse_dcerpc_bindack_result, numctxitems as usize)