diff --git a/src/main.rs b/src/main.rs index 209bff4..cf49f57 100644 --- a/src/main.rs +++ b/src/main.rs @@ -303,14 +303,11 @@ fn checksum(path: impl AsRef) -> std::io::Result> { let mut blake = Blake2b512::new(); loop { let mut buf = vec![0u8; 16384]; - match f.read_exact(&mut buf) { - Ok(_) => blake.update(buf), - Err(e) if e.kind() == std::io::ErrorKind::UnexpectedEof => { - blake.update(buf); - break; - } - Err(e) => return Err(e), + let sz = f.read(&mut buf)?; + if sz == 0 { + break; } + blake.update(&buf[..sz]); } Ok(blake.finalize().to_vec()) }