From 7522e5fbbb1c7bd870473196593d56d513786787 Mon Sep 17 00:00:00 2001 From: Kartikaya Gupta Date: Mon, 5 Aug 2019 07:30:52 -0400 Subject: Prevent possible underflow Fixes #43 --- src/lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 87bac95..e6999ad 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -108,6 +108,9 @@ fn find_from(line: &str, ix_start: usize, key: &str) -> Option { fn find_from_u8(line: &[u8], ix_start: usize, key: &[u8]) -> Option { assert!(!key.is_empty()); assert!(ix_start < line.len()); + if line.len() < key.len() { + return None; + } let ix_end = line.len() - key.len(); if ix_start <= ix_end { for i in ix_start..ix_end { @@ -1430,4 +1433,14 @@ mod tests { } } } + + #[test] + fn test_fuzzer_testcase_2() { + const INPUT: &'static str = "U3ViamVjdDogVGhpcyBpcyBhIHRlc3QgZW1haWwKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PczMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZm9vYmFyCkRhdGU6IFN1biwgMDIgT2MKCi1TdWJqZWMtZm9vYmFydDo="; + if let Ok(parsed) = parse_mail(&base64::decode(INPUT).unwrap()) { + if let Ok(Some(date)) = parsed.headers.get_first_value("Date") { + let _ = dateparse(&date); + } + } + } } -- cgit v1.2.3