std.compress.zstandard: error when FSE bitstream is no fully consumed

This commit is contained in:
dweiller 2023-02-09 17:51:43 +11:00
parent 77ca1f7859
commit 3975a9d7ca

View File

@ -659,6 +659,10 @@ pub fn decodeBlock(
sequence_size_limit -= decompressed_size;
}
if (bit_stream.bit_reader.bit_count != 0) {
return error.MalformedCompressedBlock;
}
bytes_read += bit_stream_bytes.len;
}
if (bytes_read != block_size) return error.MalformedCompressedBlock;
@ -745,6 +749,10 @@ pub fn decodeBlockRingBuffer(
sequence_size_limit -= decompressed_size;
}
if (bit_stream.bit_reader.bit_count != 0) {
return error.MalformedCompressedBlock;
}
bytes_read += bit_stream_bytes.len;
}
if (bytes_read != block_size) return error.MalformedCompressedBlock;
@ -828,6 +836,9 @@ pub fn decodeBlockReader(
sequence_size_limit -= decompressed_size;
bytes_written += decompressed_size;
}
if (bit_stream.bit_reader.bit_count != 0) {
return error.MalformedCompressedBlock;
}
}
if (decode_state.literal_written_count < literals.header.regenerated_size) {