From 599313b39c249ee89144c69eb09da0f56d579922 Mon Sep 17 00:00:00 2001 From: Andrew Hickman Date: Fri, 29 Jan 2021 20:21:31 +0000 Subject: [PATCH] Fix passing uninit buffer to user-provided Read implementation Fixes #1 --- src/read.rs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/read.rs b/src/read.rs index 30dd3d4..7ac0425 100644 --- a/src/read.rs +++ b/src/read.rs @@ -17,12 +17,9 @@ impl IoReader { impl BufReadExact for IoReader { fn buf_read_exact(&mut self, len: usize) -> io::Result<&[u8]> { - unsafe { - self.buf.reserve(len); - let slice = self.buf.get_unchecked_mut(..len); - self.rdr.read_exact(slice)?; - Ok(slice) - } + self.buf.resize(len, 0); + self.rdr.read_exact(self.buf.as_mut_slice())?; + Ok(self.buf.as_slice()) } }