summaryrefslogtreecommitdiffstats
path: root/buffered-reader/src
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2019-04-01 18:27:16 +0200
committerJustus Winter <justus@sequoia-pgp.org>2019-04-02 12:19:47 +0200
commitfcbd00162d23cb33b2f25c96f407b5f44959c669 (patch)
tree9aa1afc4d20f4ad747d4dcf0d5123705ebb91ea3 /buffered-reader/src
parenteaf014e9d9be2999a9f1b6200f1a39ca09c3d65d (diff)
buffered-reader: Fix Limitor's io::Read interface.
Diffstat (limited to 'buffered-reader/src')
-rw-r--r--buffered-reader/src/limitor.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/buffered-reader/src/limitor.rs b/buffered-reader/src/limitor.rs
index 70bbe677..e7e84d29 100644
--- a/buffered-reader/src/limitor.rs
+++ b/buffered-reader/src/limitor.rs
@@ -55,7 +55,11 @@ impl<'a, C> Limitor<'a, C> {
impl<'a, C> io::Read for Limitor<'a, C> {
fn read(&mut self, buf: &mut [u8]) -> Result<usize, io::Error> {
let len = cmp::min(self.limit, buf.len() as u64) as usize;
- return self.reader.read(&mut buf[0..len]);
+ let result = self.reader.read(&mut buf[0..len]);
+ if let Ok(amount) = result {
+ self.limit -= amount as u64;
+ }
+ result
}
}