From: Jeff Lucovsky Date: Fri, 22 Mar 2024 14:21:52 +0000 (-0400) Subject: detect: Use Option where appropriate X-Git-Tag: suricata-8.0.0-beta1~1052 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99f9451be3d08c829e1b388ab28c6bde3e1ae65e;p=thirdparty%2Fsuricata.git detect: Use Option where appropriate This commit uses Option instead of Result. Issue: 6873 --- diff --git a/rust/src/detect/byte_extract.rs b/rust/src/detect/byte_extract.rs index df698d84a3..c5a9e183eb 100644 --- a/rust/src/detect/byte_extract.rs +++ b/rust/src/detect/byte_extract.rs @@ -160,11 +160,10 @@ fn parse_byteextract(input: &str) -> IResult<&str, SCDetectByteExtractData, Rule if 0 != (byte_extract.flags & DETECT_BYTE_EXTRACT_FLAG_ENDIAN) { return Err(make_error("endianess already set".to_string())); } - byte_extract.endian = match get_endian_value(name) { - Ok(val) => val, - Err(_) => { - return Err(make_error(format!("invalid endian value: {}", val))); - } + if let Some(endian) = get_endian_value(name) { + byte_extract.endian = endian; + } else { + return Err(make_error(format!("invalid endian value: {}", val))); }; byte_extract.flags |= DETECT_BYTE_EXTRACT_FLAG_ENDIAN; } @@ -186,11 +185,10 @@ fn parse_byteextract(input: &str) -> IResult<&str, SCDetectByteExtractData, Rule if 0 != (byte_extract.flags & DETECT_BYTE_EXTRACT_FLAG_BASE) { return Err(make_error("base already set".to_string())); } - byte_extract.base = match get_string_value(name) { - Ok(val) => val, - Err(_) => { - return Err(make_error(format!("invalid string value: {}", val))); - } + if let Some(base) = get_string_value(name) { + byte_extract.base = base; + } else { + return Err(make_error(format!("invalid string value: {}", val))); }; byte_extract.flags |= DETECT_BYTE_EXTRACT_FLAG_BASE; } diff --git a/rust/src/detect/byte_math.rs b/rust/src/detect/byte_math.rs index 79f92cce5d..04a54d2b90 100644 --- a/rust/src/detect/byte_math.rs +++ b/rust/src/detect/byte_math.rs @@ -242,11 +242,10 @@ fn parse_bytemath(input: &str) -> IResult<&str, DetectByteMathData, RuleParseErr if 0 != (byte_math.flags & DETECT_BYTEMATH_FLAG_ENDIAN) { return Err(make_error("endianess already set".to_string())); } - byte_math.endian = match get_endian_value(val) { - Ok(val) => val, - Err(_) => { - return Err(make_error(format!("invalid endian value: {}", val))); - } + if let Some(endian) = get_endian_value(val) { + byte_math.endian = endian; + } else { + return Err(make_error(format!("invalid endian value: {}", val))); }; byte_math.flags |= DETECT_BYTEMATH_FLAG_ENDIAN; } @@ -261,11 +260,10 @@ fn parse_bytemath(input: &str) -> IResult<&str, DetectByteMathData, RuleParseErr if 0 != (byte_math.flags & DETECT_BYTEMATH_FLAG_STRING) { return Err(make_error("string already set".to_string())); } - byte_math.base = match get_string_value(val) { - Ok(val) => val, - Err(_) => { - return Err(make_error(format!("invalid string value: {}", val))); - } + if let Some(base) = get_string_value(val) { + byte_math.base = base; + } else { + return Err(make_error(format!("invalid string value: {}", val))); }; byte_math.flags |= DETECT_BYTEMATH_FLAG_STRING; } diff --git a/rust/src/detect/mod.rs b/rust/src/detect/mod.rs index badf93fde8..e3bcb57956 100644 --- a/rust/src/detect/mod.rs +++ b/rust/src/detect/mod.rs @@ -122,26 +122,26 @@ pub enum ByteBase { BaseHex = 16, } -fn get_string_value(value: &str) -> Result { +fn get_string_value(value: &str) -> Option { let res = match value { - "hex" => ByteBase::BaseHex, - "oct" => ByteBase::BaseOct, - "dec" => ByteBase::BaseDec, - _ => return Err(()), + "hex" => Some(ByteBase::BaseHex), + "oct" => Some(ByteBase::BaseOct), + "dec" => Some(ByteBase::BaseDec), + _ => None, }; - Ok(res) + res } -fn get_endian_value(value: &str) -> Result { +fn get_endian_value(value: &str) -> Option { let res = match value { - "big" => ByteEndian::BigEndian, - "little" => ByteEndian::LittleEndian, - "dce" => ByteEndian::EndianDCE, - _ => return Err(()), + "big" => Some(ByteEndian::BigEndian), + "little" => Some(ByteEndian::LittleEndian), + "dce" => Some(ByteEndian::EndianDCE), + _ => None, }; - Ok(res) + res } #[cfg(test)]