shift exponent is too large in dav1d_get_bits() src/getbits.c
Found with commit 6ac49461
This issue is hit frequently when fuzzing.
Steps to reproduce:
- build dav1d with UndefinedBehaviorSanitizer (-fsanitize=shift)
- replay testcase with dav1d fuzzer
src/getbits.c:72:18: runtime error: shift exponent 64 is too large for 64-bit type 'uint64_t' (aka 'unsigned long')
#0 0x6db6c9 in dav1d_get_bits src/getbits.c
#1 0x6db934 in dav1d_get_uniform src/getbits.c:86:24
#2 0x525264 in parse_frame_hdr src/obu.c:462:36
#3 0x51d859 in dav1d_parse_obus src/obu.c:1027:20
#4 0x517fc4 in dav1d_decode src/lib.c:193:20
#5 0x51299e in LLVMFuzzerTestOneInput tests/libfuzzer/dav1d_fuzzer.c:75:19