From 8f70a30e15d1d63e5ae74c8725d48306d73a13eb Mon Sep 17 00:00:00 2001 From: NikVolf Date: Fri, 16 Feb 2018 00:54:18 +0300 Subject: [PATCH] exhaust read for section --- src/elements/section.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/elements/section.rs b/src/elements/section.rs index cc5f525..c547efa 100644 --- a/src/elements/section.rs +++ b/src/elements/section.rs @@ -201,7 +201,14 @@ fn read_entries>( ) -> Result, ::elements::Error> { let inner_buffer = buffered_read!(ENTRIES_BUFFER_LENGTH, defined_length, reader); - Ok(CountedList::::deserialize(&mut io::Cursor::new(inner_buffer))?.into_inner()) + let buf_length = inner_buffer.len(); + let mut cursor = io::Cursor::new(inner_buffer); + let result = Ok(CountedList::::deserialize(&mut cursor)?.into_inner()); + if cursor.position() != buf_length as u64 { + Err(io::Error::from(io::ErrorKind::InvalidData).into()) + } else { + result + } } fn read_entries_with_len>(reader: &mut R)