File tree 1 file changed +4
-2
lines changed
1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -201,7 +201,9 @@ fn decode_with_tables(
201
201
202
202
let count = u64:: try_from ( ( 8 - input_bit_count) & 7 ) ?;
203
203
code_bits >>= count;
204
- code_bit_count -= count;
204
+
205
+ code_bit_count = code_bit_count. checked_sub ( count)
206
+ . ok_or_else ( || Error :: invalid ( "code" ) ) ?;
205
207
206
208
while code_bit_count > 0 {
207
209
let index = ( code_bits << ( DECODE_BITS - code_bit_count) ) & DECODE_MASK ;
@@ -294,7 +296,7 @@ fn read_encoding_table(
294
296
let mut code_bit_count = 0_u64 ;
295
297
296
298
// TODO push() into encoding table instead of index stuff?
297
- let mut encoding_table = vec ! [ 0_u64 ; ENCODING_TABLE_SIZE ] ;
299
+ let mut encoding_table = vec ! [ 0_u64 ; ENCODING_TABLE_SIZE ] ;
298
300
let mut code_index = min_code_index;
299
301
while code_index <= max_code_index {
300
302
let code_len = read_bits ( 6 , & mut code_bits, & mut code_bit_count, packed) ?;
You can’t perform that action at this time.
0 commit comments