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
.