]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
ike: fix integer underflow in parse_proposal
authorPhilippe Antoine <contact@catenacyber.fr>
Fri, 8 Apr 2022 06:49:18 +0000 (08:49 +0200)
committerVictor Julien <vjulien@oisf.net>
Fri, 15 Apr 2022 09:02:08 +0000 (11:02 +0200)
By not restricting a usize to i16

rust/src/ike/parser.rs

index cc79b4ecb8583b2a66e5f7d002fc6718ca416ec6..b25237a52027ca49ad15ecd60bfc195630f9a595 100644 (file)
@@ -304,7 +304,7 @@ pub fn parse_proposal(i: &[u8]) -> IResult<&[u8], ProposalPayload> {
     let (i, number_transforms) = be_u8(i)?;
     let (i, spi) = take(spi_size as usize)(i)?;
     let (i, payload_data) = cond(
-        (start_i.len() as i16 - 4) - spi_size as i16 >= 0,
+        (start_i.len() - 4) >= spi_size.into(),
         |b| take((start_i.len() - 4) - spi_size as usize)(b)
         )(i)?;
     let payload = ProposalPayload {