diff options
Diffstat (limited to 'src/sleep_register.rs')
-rw-r--r-- | src/sleep_register.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/sleep_register.rs b/src/sleep_register.rs index 3e1c48e..276e4c9 100644 --- a/src/sleep_register.rs +++ b/src/sleep_register.rs @@ -3,6 +3,7 @@ use std::io::prelude::*; use std::fs::File; use std::path::{Path, PathBuf}; use std::io::SeekFrom; +use std::os::unix::fs::FileExt; use integer_encoding::FixedInt; use std::fs::OpenOptions; use crypto::blake2b::Blake2b; @@ -412,8 +413,10 @@ impl HyperRegister for SleepDirRegister { // Read chunk let mut data = vec![0; data_len as usize]; - data_file.seek(SeekFrom::Start(offset))?; - data_file.read_exact(&mut data)?; + let got = data_file.read_at(&mut data, offset)?; + if got != data.len() { + bail!("Short file read"); + } // TODO: check the hash? separate function? Ok(data) |