Set max number of bits for aom_rb_read_uvlc() aom_rb_read_bit() can only handle 32 bits at most. BUG=b/74485936,b/74505775 Change-Id: I6d63c7d5e085177de4c54727d4892149c3a6bbab
diff --git a/aom_dsp/binary_codes_reader.c b/aom_dsp/binary_codes_reader.c index 0a97f88..3076709 100644 --- a/aom_dsp/binary_codes_reader.c +++ b/aom_dsp/binary_codes_reader.c
@@ -146,11 +146,10 @@ uint32_t aom_rb_read_uvlc(struct aom_read_bit_buffer *rb) { int leading_zeros = 0; - while (!aom_rb_read_bit(rb)) ++leading_zeros; - - uint32_t value = aom_rb_read_literal(rb, leading_zeros); - value += (1 << leading_zeros) - 1; - - return value; + // Maximum 32 bits. + if (leading_zeros >= 32) return UINT32_MAX; + const uint32_t base = (1u << leading_zeros) - 1; + const uint32_t value = aom_rb_read_literal(rb, leading_zeros); + return base + value; }