Merge pull request #193 from image-rs/issue-192-desync-packbits

Fix read in packbits decoder
This commit is contained in:
Andreas Molzer authored and GitHub committed 2022-12-03 18:49:51 +01:00
commit aa42fcb1bb
1 file changed
+7 -7
+7 -7
View File
@@ -332,23 +332,23 @@ impl<R: Read> Read for PackBitsReader<R> {
}
let length = buf.len().min(self.count);
match self.state {
PackBitsReaderState::Literal => {
self.reader.read(&mut buf[..length])?;
}
let actual = match self.state {
PackBitsReaderState::Literal => self.reader.read(&mut buf[..length])?,
PackBitsReaderState::Repeat { value } => {
for b in &mut buf[..length] {
*b = value;
}
length
}
PackBitsReaderState::Header => unreachable!(),
}
};
self.count -= length;
self.count -= actual;
if self.count == 0 {
self.state = PackBitsReaderState::Header;
}
return Ok(length);
return Ok(actual);
}
}