From 4f34963284d56b85b6eb49d7423e25fb22bca6f3 Mon Sep 17 00:00:00 2001 From: Ty Overby Date: Sun, 3 Apr 2016 04:51:30 -0700 Subject: [PATCH] Revert "Respect size limits in read_seq and read_map." This reverts commit 1e21e5d13b21472e2d23ef08feb0ed4372295ef8. --- src/rustc_serialize/reader.rs | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/src/rustc_serialize/reader.rs b/src/rustc_serialize/reader.rs index 1be8304..d3dbfb3 100644 --- a/src/rustc_serialize/reader.rs +++ b/src/rustc_serialize/reader.rs @@ -129,10 +129,7 @@ impl<'a, R: Read> DecoderReader<'a, R> { impl <'a, A> DecoderReader<'a, A> { fn read_bytes(&mut self, count: u64) -> Result<(), DecodingError> { - self.read = match self.read.checked_add(count) { - Some(read) => read, - None => return Err(DecodingError::SizeLimit), - }; + self.read += count; match self.size_limit { SizeLimit::Infinite => Ok(()), SizeLimit::Bounded(x) if self.read <= x => Ok(()), @@ -345,18 +342,6 @@ impl<'a, R: Read> Decoder for DecoderReader<'a, R> { where F: FnOnce(&mut DecoderReader<'a, R>, usize) -> DecodingResult { let len = try!(self.read_usize()); - match self.size_limit { - SizeLimit::Infinite => (), - SizeLimit::Bounded(x) => { - let overflow = match self.read.checked_add(len as u64) { - Some(y) => y > x, - None => true, - }; - if overflow { - return Err(DecodingError::SizeLimit); - } - }, - }; f(self, len) } fn read_seq_elt(&mut self, _: usize, f: F) -> DecodingResult @@ -368,18 +353,6 @@ impl<'a, R: Read> Decoder for DecoderReader<'a, R> { where F: FnOnce(&mut DecoderReader<'a, R>, usize) -> DecodingResult { let len = try!(self.read_usize()); - match self.size_limit { - SizeLimit::Infinite => (), - SizeLimit::Bounded(x) => { - let overflow = match self.read.checked_add(len as u64) { - Some(y) => y > x, - None => true, - }; - if overflow { - return Err(DecodingError::SizeLimit); - } - }, - }; f(self, len) } fn read_map_elt_key(&mut self, _: usize, f: F) -> DecodingResult