Assertion `a >= 0 && a < (1 << bits) failed in get_relative_dist() src/ref_mvs.c
Reproduced with commit 44ad79e9
Steps to reproduce:
- replay testcase with
./dav1d_fuzzer testcase.ivf
dav1d_fuzzer: ../src/ref_mvs.c:613: int get_relative_dist(const AV1_COMMON *, int, int): Assertion `a >= 0 && a < (1 << bits)' failed.
==23220==ERROR: AddressSanitizer: ABRT on unknown address 0x03e800005ab4 (pc 0x7fbf788e4428 bp 0x0000006f8f40 sp 0x7ffebfe78048 T0)
#0 0x7fbf788e4427 in gsignal /build/glibc-Cl5G7W/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54
#1 0x7fbf788e6029 in abort /build/glibc-Cl5G7W/glibc-2.23/stdlib/abort.c:89
#2 0x7fbf788dcbd6 in __assert_fail_base /build/glibc-Cl5G7W/glibc-2.23/assert/assert.c:92
#3 0x7fbf788dcc81 in __assert_fail /build/glibc-Cl5G7W/glibc-2.23/assert/assert.c:101
#4 0x5a9a9f in get_relative_dist src/ref_mvs.c:613:3
#5 0x5a9a9f in av1_init_ref_mv_common src/ref_mvs.c:2055
#6 0x5384ea in dav1d_decode_frame src/decode.c:2523:25
#7 0x545447 in dav1d_submit_frame src/decode.c:3031:20
#8 0x51cb29 in dav1d_parse_obus src/obu.c:1130:20
#9 0x5182c2 in dav1d_decode src/lib.c:201:20
#10 0x512a0d in LLVMFuzzerTestOneInput tests/libfuzzer/dav1d_fuzzer.c:101:19