projects
/
nihav.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
core/byteio: fix corner case when reading partial buffer at the end of file
[nihav.git]
/
nihav-core
/
src
/
io
/
byteio.rs
diff --git
a/nihav-core/src/io/byteio.rs
b/nihav-core/src/io/byteio.rs
index 3fbee946a8989872a784adda451e6940582e7519..b3d06216d842c2a9790aff6dd7cb499bfd2d2ea0 100644
(file)
--- a/
nihav-core/src/io/byteio.rs
+++ b/
nihav-core/src/io/byteio.rs
@@
-600,8
+600,11
@@
impl<T: Read+Seek> ByteIO for FileReader<T> {
if ret.is_err() { return Err(ByteIOError::ReadError); }
let sz = ret.unwrap();
if sz < buf.len() {
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;
self.eof = true;
+ if sz == 0 {
+ return Err(ByteIOError::EOF);
+ }
} else {
return Ok(sz + 1);
}
} else {
return Ok(sz + 1);
}