maflcko
commented at 11:16 AM on March 27, 2025:
member
It seems odd to write a fuzz target to trigger integer sanitizer warnings in CBlockPolicyEstimator::processBlockTx and then suppress them. If the scenario can happen in reality, the code should be properly fixed to handle the cases. If not, it seems better to fix the fuzz target to not trigger meaningless traces.
Do that here by keeping track of the current height and limiting mempool entries to at most this entry height.
fuzz: Avoid integer sanitizer warnings in policy_estimator targetfa6a007b8e
DrahtBot
commented at 11:16 AM on March 27, 2025:
contributor
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
<!--174a7506f384e20aa4161008e828411d-->
Conflicts
Reviewers, this pull request conflicts with the following ones:
#31382 (kernel: Flush in ChainstateManager destructor by TheCharlatan)
#28676 ([WIP] Cluster mempool implementation by sdaftuar)
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.
DrahtBot added the label Tests on Mar 27, 2025
brunoerg approved
brunoerg
commented at 2:21 PM on April 2, 2025:
contributor
ACKfa6a007b8e7b68d559b30c04dd8d76c877bef133
Tested that the integer sanitizer warnings don't happen anymore for processBlockTx.
master (without suppressions):
/Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:213:47: runtime error: unsigned integer overflow: 2147483647 - 18446744071562067968 cannot be represented in type 'uint64_t' (aka 'unsigned long long')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:213:47
/Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:234:52: runtime error: unsigned integer overflow: 18446744071562067968 + 2147483665 cannot be represented in type 'uint64_t' (aka 'unsigned long long')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:234:52
/Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:290:49: runtime error: unsigned integer overflow: 0 - 17 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:290:49
/Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:213:47: runtime error: unsigned integer overflow: 9223372036854775807 - 9223372036854775808 cannot be represented in type 'uint64_t' (aka 'unsigned long long')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:213:47
/Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:278:81: runtime error: implicit conversion from type 'uint64_t' (aka 'unsigned long long') of value 17942391492978933760 (64-bit, unsigned) to type 'int64_t' (aka 'long long') changed the value to -504352580730617856 (64-bit, signed)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:278:81
/Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:234:52: runtime error: unsigned integer overflow: 9223372036854775808 + 18374786535238140023 cannot be represented in type 'uint64_t' (aka 'unsigned long long')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:234:52
/Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:263:93: runtime error: implicit conversion from type 'int64_t' (aka 'long long') of value -1152077079676715007 (64-bit, signed) to type 'uint64_t' (aka 'unsigned long long') changed the value to 17294666994032836609 (64-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:263:93
/Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:263:93: runtime error: implicit conversion from type 'int64_t' (aka 'long long') of value -1152077079676715007 (64-bit, signed) to type 'uint64_t' (aka 'unsigned long long') changed the value to 17294666994032836609 (64-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:263:93
/Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:651:40: runtime error: unsigned integer overflow: 348 - 4294177791 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:651:40
/Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:487:21: runtime error: implicit conversion from type 'unsigned int' of value 2434498561 (32-bit, unsigned) to type 'int' changed the value to -1860468735 (32-bit, signed)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:487:21
/Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:651:27: runtime error: implicit conversion from type 'unsigned int' of value 4261412923 (32-bit, unsigned) to type 'int' changed the value to -33554373 (32-bit, signed)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:651:27
fa6a007b8e7b68d559b30c04dd8d76c877bef133:
/Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:213:47: runtime error: unsigned integer overflow: 2147483647 - 18446744071562067968 cannot be represented in type 'uint64_t' (aka 'unsigned long long')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:213:47
/Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:234:52: runtime error: unsigned integer overflow: 18446744071562067968 + 4289986048 cannot be represented in type 'uint64_t' (aka 'unsigned long long')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:234:52
/Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:213:47: runtime error: unsigned integer overflow: 9223372036854775807 - 9223372036854775808 cannot be represented in type 'uint64_t' (aka 'unsigned long long')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:213:47
/Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:278:81: runtime error: implicit conversion from type 'uint64_t' (aka 'unsigned long long') of value 17942391492978933760 (64-bit, unsigned) to type 'int64_t' (aka 'long long') changed the value to -504352580730617856 (64-bit, signed)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:278:81
/Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:234:52: runtime error: unsigned integer overflow: 9223372036854775808 + 18439245404546350336 cannot be represented in type 'uint64_t' (aka 'unsigned long long')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/test/fuzz/FuzzedDataProvider.h:234:52
/Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:290:49: runtime error: unsigned integer overflow: 0 - 21 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/policy/fees.cpp:290:49
/Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:263:93: runtime error: implicit conversion from type 'int64_t' (aka 'long long') of value -144110613935638779 (64-bit, signed) to type 'uint64_t' (aka 'unsigned long long') changed the value to 18302633459773912837 (64-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:263:93
/Users/brunogarcia/projects/bitcoin-core-dev/src/serialize.h:263:93: runtime error: implicit conversion from type 'int64_t' (aka 'long long') of value -144110613935638779 (64-bit, signed) to type 'uint64_t' (aka 'unsigned long long') changed the value to 18302633459773912837 (64-bit, unsigned)
fanquake requested review from dergoegge on Apr 17, 2025
fanquake requested review from marcofleon on Apr 17, 2025
dergoegge approved
dergoegge
commented at 12:08 PM on April 17, 2025:
member
utACKfa6a007b8e7b68d559b30c04dd8d76c877bef133
fanquake merged this on Apr 17, 2025
fanquake closed this on Apr 17, 2025
sedited referenced this in commit a9c46ce3c3 on Apr 24, 2025
fanquake referenced this in commit 3afde679c3 on May 16, 2025
stickies-v referenced this in commit 772a33e052 on May 23, 2025
yuvicc referenced this in commit 069643f094 on Jul 6, 2025
bug-castercv502 referenced this in commit 5b0af4b944 on Sep 28, 2025
fanquake added the label Fuzzing on Oct 30, 2025
Kino1994 referenced this in commit e03b36bac3 on Jun 28, 2026
Kino1994 referenced this in commit ae07525bc1 on Jun 28, 2026
BigcoinBGC referenced this in commit 6c091e52a8 on Jun 30, 2026
BigcoinBGC referenced this in commit be21605692 on Jun 30, 2026
Kino1994 referenced this in commit c2e1420f37 on Aug 19, 2026
Kino1994 referenced this in commit 17eea7daf0 on Aug 19, 2026
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2026-10-30 09:41 UTC