From eefd36b50d5bcc1b43818d9ce49de101afb40dcd Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Tue, 28 Apr 2020 17:20:14 -0600 Subject: [PATCH] do length check in PartialString::range_from (#412) --- src/prolog/machine/partial_string.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/prolog/machine/partial_string.rs b/src/prolog/machine/partial_string.rs index ea36d409..2d821ac4 100644 --- a/src/prolog/machine/partial_string.rs +++ b/src/prolog/machine/partial_string.rs @@ -202,7 +202,11 @@ impl PartialString { #[inline] pub fn range_from(&self, index: RangeFrom) -> PStrIter { - PStrIter::from(self.buf, self.len - '\u{0}'.len_utf8(), index.start) + if self.len >= '\u{0}'.len_utf8() { + PStrIter::from(self.buf, self.len - '\u{0}'.len_utf8(), index.start) + } else { + PStrIter::from(self.buf, 0, 0) + } } #[inline] -- 2.54.0