| ... | @@ -659,6 +659,10 @@ pub fn decodeBlock( | ... | @@ -659,6 +659,10 @@ pub fn decodeBlock( |
| 659 | sequence_size_limit -= decompressed_size; | 659 | sequence_size_limit -= decompressed_size; |
| 660 | } | 660 | } |
| 661 | | 661 | |
| | 662 | if (bit_stream.bit_reader.bit_count != 0) { |
| | 663 | return error.MalformedCompressedBlock; |
| | 664 | } |
| | 665 | |
| 662 | bytes_read += bit_stream_bytes.len; | 666 | bytes_read += bit_stream_bytes.len; |
| 663 | } | 667 | } |
| 664 | if (bytes_read != block_size) return error.MalformedCompressedBlock; | 668 | if (bytes_read != block_size) return error.MalformedCompressedBlock; |
| ... | @@ -745,6 +749,10 @@ pub fn decodeBlockRingBuffer( | ... | @@ -745,6 +749,10 @@ pub fn decodeBlockRingBuffer( |
| 745 | sequence_size_limit -= decompressed_size; | 749 | sequence_size_limit -= decompressed_size; |
| 746 | } | 750 | } |
| 747 | | 751 | |
| | 752 | if (bit_stream.bit_reader.bit_count != 0) { |
| | 753 | return error.MalformedCompressedBlock; |
| | 754 | } |
| | 755 | |
| 748 | bytes_read += bit_stream_bytes.len; | 756 | bytes_read += bit_stream_bytes.len; |
| 749 | } | 757 | } |
| 750 | if (bytes_read != block_size) return error.MalformedCompressedBlock; | 758 | if (bytes_read != block_size) return error.MalformedCompressedBlock; |
| ... | @@ -828,6 +836,9 @@ pub fn decodeBlockReader( | ... | @@ -828,6 +836,9 @@ pub fn decodeBlockReader( |
| 828 | sequence_size_limit -= decompressed_size; | 836 | sequence_size_limit -= decompressed_size; |
| 829 | bytes_written += decompressed_size; | 837 | bytes_written += decompressed_size; |
| 830 | } | 838 | } |
| | 839 | if (bit_stream.bit_reader.bit_count != 0) { |
| | 840 | return error.MalformedCompressedBlock; |
| | 841 | } |
| 831 | } | 842 | } |
| 832 | | 843 | |
| 833 | if (decode_state.literal_written_count < literals.header.regenerated_size) { | 844 | if (decode_state.literal_written_count < literals.header.regenerated_size) { |