Skip to content

Commit

Permalink
Merge pull request #193 from image-rs/issue-192-desync-packbits
Browse files Browse the repository at this point in the history
Fix read in packbits decoder
  • Loading branch information
HeroicKatora committed Dec 3, 2022
2 parents 6c65e66 + 1f7b25e commit aa42fcb
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions src/decoder/stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}

Expand Down

0 comments on commit aa42fcb

Please sign in to comment.