diff --git a/CHANGELOG.md b/CHANGELOG.md index b585bdacf..f74a136a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Bug fixes --------- * (Fuzzing) An integer-overflow bug from an inclusive range in the bits iterator is fixed. +* (Fuzzing) An integer-underflow bug from an inclusive range is fixed. Enhancements ------------ diff --git a/src/eval/target.rs b/src/eval/target.rs index ac3e49bf1..3513ec369 100644 --- a/src/eval/target.rs +++ b/src/eval/target.rs @@ -404,6 +404,8 @@ impl<'a> Target<'a> { let ve = if *exclusive { let end = if *end > n { n } else { *end }; s.chars().skip(end) + } else if n == 0 { + s.chars().skip(usize::MAX) } else { let end = if *end >= n { n - 1 } else { *end }; s.chars().skip(end + 1)