From f88724a81e18ae9521863faf94ae9d2c2cb60e15 Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Fri, 12 Nov 2021 11:37:24 +0100 Subject: [PATCH] core/byteio: fix corner case when reading partial buffer at the end of file --- nihav-core/src/io/byteio.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nihav-core/src/io/byteio.rs b/nihav-core/src/io/byteio.rs index 3fbee94..b3d0621 100644 --- a/nihav-core/src/io/byteio.rs +++ b/nihav-core/src/io/byteio.rs @@ -600,8 +600,11 @@ impl ByteIO for FileReader { if ret.is_err() { return Err(ByteIOError::ReadError); } let sz = ret.unwrap(); if sz < buf.len() { - if let Err(_err) = self.file.read(&mut buf[sz..][..1]) { + if let Err(_err) = self.file.read_exact(&mut buf[sz..][..1]) { self.eof = true; + if sz == 0 { + return Err(ByteIOError::EOF); + } } else { return Ok(sz + 1); } -- 2.30.2