diff --git a/src/codec/bzip2/decoder.rs b/src/codec/bzip2/decoder.rs index 255169b..356d182 100644 --- a/src/codec/bzip2/decoder.rs +++ b/src/codec/bzip2/decoder.rs @@ -97,8 +97,18 @@ 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()), + } } }