Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • dav1d dav1d
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 27
    • Issues 27
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 14
    • Merge requests 14
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • VideoLANVideoLAN
  • dav1ddav1d
  • Issues
  • #76
Closed
Open
Issue created Oct 18, 2018 by Tyson Smith@tysmith

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:

  1. build dav1d with UndefinedBehaviorSanitizer (-fsanitize=shift)
  2. replay testcase with dav1d fuzzer

testcase.ivf

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking

VideoLAN code repository instance