Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • P poppler
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 664
    • Issues 664
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 46
    • Merge requests 46
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • poppler
  • poppler
  • Issues
  • #962
Closed
Open
Issue created Sep 24, 2020 by Ghost User@ghost

Undefined Behavior in Decrypt.cc revision6Hash()

During fuzzing by X41 D-Sec, UndefinedBehaviorSanitizer warns about the following code position in revision6Hash():

poppler/poppler/poppler/Decrypt.cc:1778:52: runtime error: null pointer passed as argument 2, which is declared to never be null                                                                                                                                
/usr/include/string.h:44:28: note: nonnull attribute specified here
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /poppler/poppler/poppler/Decrypt.cc:1778:52 in

It appears that this case has been anticipated in the code. However, the current solution relies on undefined behavior and can therefore cause unspecified issues depending on the compiler.

One solution would be to skip this memcpy() if !userKey.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking