-
Notifications
You must be signed in to change notification settings - Fork 37.7k
fuzz: Add UBSan suppressions needed for fuzz tests to not warn under -fsanitize=integer #21000
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Edit: See #21001 (comment). |
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
Is this supposed to be complete? If yes, could enable the sanitizer in ci. If not, it would be good to motivate the changes and explain how to test them. Locally it crashes soon after trying to test:
|
@MarcoFalke It is currently complete only with regards to the fuzz tests. More specifically it survives the following under
I haven't gotten around to covering also the unit tests and functional tests, but it makes sense to cover them as well. I'll look in to expanding the scope of this PR to cover them too :) |
I was running the Edit: The crasher for me:
|
73f9dce
to
03e34b5
Compare
@MarcoFalke Oh, I was starting from an empty seed corpus. I've now added all
To reproduce:
|
03e34b5
to
0d98997
Compare
review ACK f0f8b1a 🤚 Show signature and timestampSignature:
Timestamp of file with hash |
review ACK 0d98997 🎅 Show signature and timestampSignature:
Timestamp of file with hash |
0d98997
to
f0f8b1a
Compare
Force pushed to remove unrelated commit. Hope you don't mind @practicalswift |
Only change was in the linter, which passed. So we don't need to wait for the other ci checks before merge. |
…ts to n… …ot warn under -fsanitize=integer
Add UBSan suppressions needed for fuzz tests to not warn under
-fsanitize=integer
.Avoid
-fsanitize=integer
warnings in fuzzing harnesses.Suppressed warnings (excluding warnings from
src/crypto/
andsrc/test/
):The warnings above happen here:
bitcoin/src/addrman.cpp
Line 306 in 32b191f
bitcoin/src/addrman.h
Line 446 in 32b191f
bitcoin/src/arith_uint256.cpp
Line 32 in 32b191f
bitcoin/src/arith_uint256.cpp
Line 47 in 32b191f
bitcoin/src/chain.cpp
Line 151 in 32b191f
bitcoin/src/coins.cpp
Line 114 in 32b191f
bitcoin/src/compressor.cpp
Line 162 in 32b191f
bitcoin/src/compressor.cpp
Line 188 in 32b191f
bitcoin/src/hash.cpp
Line 13 in 32b191f
bitcoin/src/pubkey.h
Line 152 in 32b191f
bitcoin/src/streams.h
Line 570 in 32b191f
bitcoin/src/util/bip32.cpp
Line 57 in 32b191f
bitcoin/src/util/strencodings.cpp
Line 562 in 32b191f
bitcoin/src/util/strencodings.h
Line 164 in 32b191f