Skip to content

shift exponent 35 is too large for 32-bit type 'unsigned int' in dav1d_parse_obus() src/obu.c

Found with commit acd90b71

Steps to reproduce:

  1. build dav1d with UBSan (-fsanitize=shift)
  2. run attached testcase with dav1d executable ./dav1d -i testcase.ivf -o out.ivf

testcase.ivf

src/obu.c:1003:39: runtime error: shift exponent 35 is too large for 32-bit type 'unsigned int'
    #0 0x4fe927 in dav1d_parse_obus src/obu.c:1003:39
    #1 0x4f6687 in dav1d_decode src/lib.c:193:20
    #2 0x4eaa77 in main tools/dav1d.c:108:20
    #3 0x7fd1a6dda82f in __libc_start_main /build/glibc-Cl5G7W/glibc-2.23/csu/libc-start.c:291
    #4 0x418d38 in _start (dav1d+0x418d38)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information