From 97e455da1ab02ee2a8c5bcb90bc5a9db6f87245e Mon Sep 17 00:00:00 2001 From: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> Date: Thu, 25 Sep 2025 20:47:29 +1000 Subject: [PATCH 1/3] Flush data on BzDecoder::finish Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> --- crates/compression-codecs/src/bzip2/decoder.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/compression-codecs/src/bzip2/decoder.rs b/crates/compression-codecs/src/bzip2/decoder.rs index 9364b3f..38fd74d 100644 --- a/crates/compression-codecs/src/bzip2/decoder.rs +++ b/crates/compression-codecs/src/bzip2/decoder.rs @@ -105,6 +105,16 @@ impl Decode for BzDecoder { &mut self, _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()), + } } } From bda23c423beae3e25090ec967abbf2faa30415fb Mon Sep 17 00:00:00 2001 From: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> Date: Thu, 25 Sep 2025 20:51:04 +1000 Subject: [PATCH 2/3] Fix decoder.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> --- crates/compression-codecs/src/bzip2/decoder.rs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/crates/compression-codecs/src/bzip2/decoder.rs b/crates/compression-codecs/src/bzip2/decoder.rs index 38fd74d..bb24ab0 100644 --- a/crates/compression-codecs/src/bzip2/decoder.rs +++ b/crates/compression-codecs/src/bzip2/decoder.rs @@ -103,16 +103,10 @@ impl Decode for BzDecoder { fn finish( &mut self, - _output: &mut PartialBuffer + AsMut<[u8]>>, + output: &mut PartialBuffer + AsMut<[u8]>>, ) -> io::Result { - match self.decode( - &mut PartialBuffer::new(&[][..]), - output, - )? { - Status::Ok - | Status::FlushOk - | Status::RunOk - | Status::FinishOk => Ok(false), + 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()), } From 885597ec2932b6666b9e1e9c6ddc2df00f11a238 Mon Sep 17 00:00:00 2001 From: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> Date: Thu, 25 Sep 2025 20:53:04 +1000 Subject: [PATCH 3/3] cargo fmt decoder.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> --- crates/compression-codecs/src/bzip2/decoder.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/compression-codecs/src/bzip2/decoder.rs b/crates/compression-codecs/src/bzip2/decoder.rs index bb24ab0..954f207 100644 --- a/crates/compression-codecs/src/bzip2/decoder.rs +++ b/crates/compression-codecs/src/bzip2/decoder.rs @@ -106,7 +106,7 @@ impl Decode for BzDecoder { output: &mut PartialBuffer + AsMut<[u8]>>, ) -> io::Result { match self.decode(&mut PartialBuffer::new(&[][..]), output)? { - Status::Ok | Status::FlushOk | Status::RunOk | Status::FinishOk => Ok(false), + Status::Ok | Status::FlushOk | Status::RunOk | Status::FinishOk => Ok(false), Status::StreamEnd => Ok(true), Status::MemNeeded => Err(io::ErrorKind::OutOfMemory.into()), }