From aab656775069ea24dff79ef7db8cda81bdd38e1b Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Wed, 3 Apr 2024 15:29:29 -0600 Subject: [PATCH] treat Utf8Error::valid_up_to as an offset form self.pos, which it is (#2374) --- src/parser/char_reader.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/parser/char_reader.rs b/src/parser/char_reader.rs index 9febf0fd..a6dd75db 100644 --- a/src/parser/char_reader.rs +++ b/src/parser/char_reader.rs @@ -192,7 +192,7 @@ impl CharRead for CharReader { } else if self.pos >= self.buf.len() { return None; } else if self.buf.len() - self.pos >= 4 && self.pos < e.valid_up_to() { - return match str::from_utf8(&self.buf[self.pos..e.valid_up_to()]) { + return match str::from_utf8(&self.buf[self.pos..self.pos + e.valid_up_to()]) { Ok(s) => { let mut chars = s.chars(); let c = chars.next().unwrap(); @@ -200,7 +200,7 @@ impl CharRead for CharReader { Some(Ok(c)) } Err(e) => { - let badbytes = self.buf[self.pos..e.valid_up_to()].to_vec(); + let badbytes = self.buf[self.pos..self.pos + e.valid_up_to()].to_vec(); Some(Err(io::Error::new( io::ErrorKind::InvalidData, -- 2.54.0