From fd52ae0d64e9b86ddbd508d2af110f97bd670e28 Mon Sep 17 00:00:00 2001 From: Ty Overby Date: Fri, 29 May 2015 13:50:16 -0700 Subject: [PATCH] Revert "Merge pull request #42 from jmesmon/fix-oom" This reverts commit 1c3f457cf9efac3a73db8b3d46c8b20d35b8a422, reversing changes made to 84b5c416ca9278351128236d7fc491c1375a6d4b. --- src/reader.rs | 8 -------- src/test.rs | 18 ------------------ 2 files changed, 26 deletions(-) diff --git a/src/reader.rs b/src/reader.rs index a3d8f7d..e32ff94 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -335,15 +335,7 @@ impl<'a, R: Read> Decoder for DecoderReader<'a, R> { fn read_seq(&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_seq_elt(&mut self, _: usize, f: F) -> DecodingResult diff --git a/src/test.rs b/src/test.rs index 818e36e..5d98617 100644 --- a/src/test.rs +++ b/src/test.rs @@ -323,21 +323,3 @@ fn test_slicebox() { fn test_multi_strings() { assert!(encode(&("foo", "bar", "baz"), Infinite).is_ok()); } - -#[test] -fn no_oom() { - use std::io::Cursor; - - #[derive(RustcEncodable)] - struct FakeVec { - len: u64, - byte: u8 - } - - 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) - } -}