From 24d3e02c0be1bae8babb9c3b7fb1e046601db03b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com>
Date: Thu, 8 Aug 2024 19:35:47 +0100
Subject: [PATCH] chore: better crc32 unpack

---
 crates/encoding/src/zippy.rs | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/crates/encoding/src/zippy.rs b/crates/encoding/src/zippy.rs
index 996fade2..5de49748 100644
--- a/crates/encoding/src/zippy.rs
+++ b/crates/encoding/src/zippy.rs
@@ -215,7 +215,11 @@ impl Zippy {
 
     #[inline(always)]
     fn read_crc32_feature(&mut self, data: &mut Cursor<&[u8]>) -> Result<(), Error> {
-        let payload: [u8; 4] = Self::read_payload(data)?.try_into().unwrap();
+        let payload = Self::read_payload(data)?;
+        if payload.len() != size_of::<u32>() {
+            return Err(Error::InvalidData);
+        }
+        let payload: [u8; 4] = payload.try_into().unwrap();
         self.crc32 = u32::from_le_bytes(payload);
         Ok(())
     }
-- 
GitLab