diff --git a/src/decoder/mod.rs b/src/decoder/mod.rs index fed59f6..006e24c 100644 --- a/src/decoder/mod.rs +++ b/src/decoder/mod.rs @@ -472,7 +472,7 @@ impl Decoder { for (i, (&offset, &byte_count)) in try!(self.get_tag_u32_vec(ifd::Tag::StripOffsets)) .iter().zip(try!(self.get_tag_u32_vec(ifd::Tag::StripByteCounts)).iter()).enumerate() { let uncompressed_strip_size = scanline_size - * (self.height as usize - i * rows_per_strip); + * (self.height as usize - i * rows_per_strip).min(rows_per_strip); units_read += match result { DecodingResult::U8(ref mut buffer) => {