From 72562d68a5eb6e4e3a070db062d29bdef7e074cd Mon Sep 17 00:00:00 2001 From: sahvx655-wq Date: Wed, 3 Jun 2026 23:07:20 +0530 Subject: [PATCH] fix stale output capacity in Lz4BlockDecompressor decompress --- be/src/util/decompressor.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/be/src/util/decompressor.cpp b/be/src/util/decompressor.cpp index 9f4d781e450969..df7b2702efe5f6 100644 --- a/be/src/util/decompressor.cpp +++ b/be/src/util/decompressor.cpp @@ -552,10 +552,12 @@ Status Lz4BlockDecompressor::decompress(uint8_t* input, uint32_t input_len, break; } - // Decompress this block. + // Decompress this block. Capacity must track output_ptr: remaining_output_len + // is fixed per large block while output_ptr advances per small block. auto decompressed_small_block_len = LZ4_decompress_safe( reinterpret_cast(input_ptr), reinterpret_cast(output_ptr), - compressed_small_block_len, remaining_output_len); + compressed_small_block_len, + cast_set(output_max_len - (output_ptr - output))); if (decompressed_small_block_len < 0) { return Status::InvalidArgument("Failed to do Lz4Block decompress, error = {}", LZ4F_getErrorName(decompressed_small_block_len));