From e8d783fdfc167d05c02f55f4748a38bee63566a9 Mon Sep 17 00:00:00 2001 From: Ty Overby Date: Fri, 29 May 2015 13:39:17 -0700 Subject: [PATCH] Revert "fail with size limit on large maps too" This reverts commit ce286b2519d9f98b382522466ad51015b784b661. --- src/reader.rs | 8 -------- src/test.rs | 19 ++++--------------- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/src/reader.rs b/src/reader.rs index 19b8aff..a3d8f7d 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -354,15 +354,7 @@ impl<'a, R: Read> Decoder for DecoderReader<'a, R> { fn read_map(&mut self, f: F) -> DecodingResult where F: FnOnce(&mut DecoderReader<'a, R>, usize) -> DecodingResult { - use std::mem::size_of; - use std::usize; let len = try!(self.read_usize()); - if let SizeLimit::Bounded(x) = self.size_limit { - if (len > usize::MAX / size_of::()) || - (len * size_of::()) as u64 > (x - self.read) { - return Err(DecodingError::SizeLimit) - } - } f(self, len) } fn read_map_elt_key(&mut self, _: usize, f: F) -> DecodingResult diff --git a/src/test.rs b/src/test.rs index 28f3a64..818e36e 100644 --- a/src/test.rs +++ b/src/test.rs @@ -335,20 +335,9 @@ fn no_oom() { } let x = encode(&FakeVec { len: 0xffffffffffffffffu64, byte: 1 }, Bounded(10)).unwrap(); - - { - let y : Result, _> = decode_from(&mut Cursor::new(&x[..]), Bounded(10)); - match y { - Err(DecodingError::SizeLimit) => assert!(true), - _ => assert!(false) - } - } - - { - let y : Result, _> = decode_from(&mut Cursor::new(&x[..]), Bounded(10)); - match y { - Err(DecodingError::SizeLimit) => assert!(true), - _ => assert!(false) - } + let y : Result, _> = decode_from(&mut Cursor::new(&x[..]), Bounded(10)); + match y { + Err(DecodingError::SizeLimit) => assert!(true), + _ => assert!(false) } }