Skip to content

Commit acfbdb3

Browse files
committed
Avoid zero-initializing temp buffer
1 parent 5a15758 commit acfbdb3

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

rmp-serde/src/decode.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -942,8 +942,11 @@ impl<R: Read> ReadReader<R> {
942942
impl<'de, R: Read> ReadSlice<'de> for ReadReader<R> {
943943
#[inline]
944944
fn read_slice<'a>(&'a mut self, len: usize) -> Result<Reference<'de, 'a, [u8]>, io::Error> {
945-
self.buf.resize(len, 0u8);
946-
self.rd.read_exact(&mut self.buf[..])?;
945+
self.buf.clear();
946+
let read = self.rd.by_ref().take(len as u64).read_to_end(&mut self.buf)?;
947+
if read != len {
948+
return Err(io::ErrorKind::UnexpectedEof.into());
949+
}
947950

948951
Ok(Reference::Copied(&self.buf[..]))
949952
}

0 commit comments

Comments
 (0)