diff --git a/Cargo.lock b/Cargo.lock index dfc549a264..314223f754 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2136,9 +2136,9 @@ dependencies = [ [[package]] name = "fsst-rs" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c274306bb4da50d928487c0d99e4e52a920df7d901072dd17374a25a11f2e9" +checksum = "4bef086b2717e557af9d9ca2def97a8ef727cb808a8db00bff6b7590446c9099" [[package]] name = "funty" diff --git a/Cargo.toml b/Cargo.toml index 0509188e1c..0a59d664b9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -92,7 +92,7 @@ fastlanes = "0.1.8" flatbuffers = "25" flexbuffers = "25" flume = "0.11" -fsst-rs = "0.5.0" +fsst-rs = "0.5.1" futures = { version = "0.3.31", default-features = false } futures-executor = "0.3.31" futures-util = "0.3.31" diff --git a/encodings/fsst/src/canonical.rs b/encodings/fsst/src/canonical.rs index b9e4da727c..f10196cfe3 100644 --- a/encodings/fsst/src/canonical.rs +++ b/encodings/fsst/src/canonical.rs @@ -59,14 +59,9 @@ fn fsst_into_varbin_view( // Bulk-decompress the entire array. let mut uncompressed_bytes = ByteBufferMut::with_capacity(total_size + 7); - // SAFETY: uncompressed bytes is large enough to contain all data + the 7 additional bytes - // of padding required for vectorized decompression. See the docstring for `decompress_into` - // for more details. - unsafe { - let len = - decompressor.decompress_into(bytes.as_slice(), uncompressed_bytes.spare_capacity_mut()); - uncompressed_bytes.set_len(len); - }; + let len = + decompressor.decompress_into(bytes.as_slice(), uncompressed_bytes.spare_capacity_mut()); + unsafe { uncompressed_bytes.set_len(len) }; let block_offset = u32::try_from(block_offset)?;