From 40b179c59ea7a3e97c12c8cb2da45a6ab43a0bd0 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 7b99338..99df166 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 390093cd773415b2f03e172c74da466fefce0d11 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 99df166..90c0644 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 dcfe409ca44b87d5159ccf0eab6ff75b170a42c5 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 90c0644..e3a2bf6 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()), }