From 589083ad7af188308581e6c3f8c79b53a54c0b55 Mon Sep 17 00:00:00 2001 From: cheme Date: Mon, 7 Jan 2019 17:54:06 +0100 Subject: [PATCH] Blooms file iterator empty on out of range position. (#10145) --- util/blooms-db/src/file.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util/blooms-db/src/file.rs b/util/blooms-db/src/file.rs index 098a23fdf..0362ce884 100644 --- a/util/blooms-db/src/file.rs +++ b/util/blooms-db/src/file.rs @@ -92,8 +92,9 @@ impl File { /// This function needs to be mutable `fs::File` is just a shared reference a system file handle. /// https://users.rust-lang.org/t/how-to-handle-match-with-irrelevant-ok--/6291/15 pub fn iterator_from(&mut self, pos: u64) -> io::Result { + let start = std::cmp::min(self.len, pos * 256); let mut buf_reader = io::BufReader::new(&self.file); - buf_reader.seek(SeekFrom::Start(pos * 256))?; + buf_reader.seek(SeekFrom::Start(start))?; let iter = FileIterator { file: buf_reader,