diff --git a/crates/compression-codecs/src/bzip2/decoder.rs b/crates/compression-codecs/src/bzip2/decoder.rs index 9364b3f..954f207 100644 --- a/crates/compression-codecs/src/bzip2/decoder.rs +++ b/crates/compression-codecs/src/bzip2/decoder.rs @@ -103,8 +103,12 @@ impl Decode for BzDecoder { fn finish( &mut self, - _output: &mut PartialBuffer + AsMut<[u8]>>, + output: &mut PartialBuffer + AsMut<[u8]>>, ) -> io::Result { - Ok(true) + match self.decode(&mut PartialBuffer::new(&[][..]), output)? { + Status::Ok | Status::FlushOk | Status::RunOk | Status::FinishOk => Ok(false), + Status::StreamEnd => Ok(true), + Status::MemNeeded => Err(io::ErrorKind::OutOfMemory.into()), + } } }