mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 20:03:34 -03:00
5c0cd205a1
ce8094246e
random: replace construct/assign with explicit Reseed() (Pieter Wuille)2ae392d561
random: use LogError for init failure (Pieter Wuille)97e16f5704
tests: make fuzz tests (mostly) deterministic with fixed seed (Pieter Wuille)2c91330dd6
random: cleanup order, comments, static (Pieter Wuille)8e31cf9c9b
net, net_processing: use existing RNG objects more (Pieter Wuille)d5fcbe966b
random: improve precision of MakeExponentiallyDistributed (Pieter Wuille)cfb0dfe2cf
random: convert GetExponentialRand into rand_exp_duration (Pieter Wuille)4eaa239dc3
random: convert GetRand{Micros,Millis} into randrange (Pieter Wuille)82de1b80d9
net: use GetRandMicros for cache expiration (Pieter Wuille)ddc184d999
random: get rid of GetRand by inlining (Pieter Wuille)e2d1f84858
random: make GetRand() support entire range (incl. max) (Pieter Wuille)810cdf6b4e
tests: overhaul deterministic test randomness (Pieter Wuille)6cfdc5b104
random: convert XoRoShiRo128PlusPlus into full RNG (Pieter Wuille)8cc2f45065
random: move XoRoShiRo128PlusPlus into random module (Pieter Wuille)8f5ac0d0b6
xoroshiro128plusplus: drop comment about nonexisting copy() (Pieter Wuille)8924f5120f
random: modernize XoRoShiRo128PlusPlus a bit (Pieter Wuille)ddb7d26cfd
random: add RandomMixin::randbits with compile-known bits (Pieter Wuille)21ce9d8658
random: Improve RandomMixin::randbits (Pieter Wuille)9b14d3d2da
random: refactor: move rand* utilities to RandomMixin (Pieter Wuille)40dd86fc3b
random: use BasicByte concept in randbytes (Pieter Wuille)27cefc7fd6
random: add a few noexcepts to FastRandomContext (Pieter Wuille)b3b382dde2
random: move rand256() and randbytes() to .h file (Pieter Wuille)493a2e024e
random: write rand256() in function of fillrand() (Pieter Wuille) Pull request description: This PR contains a number of vaguely-related improvements to the random module. The specific changes and more detailed rationale is in the commit messages, but the highlights are: * `XoRoShiRo128PlusPlus` (previously a test-only RNG) moves to random.h and becomes `InsecureRandomContext`, which is even faster than `FastRandomContext` but non-cryptographic. It also gets all helper randomness functions (`randrange`, `fillrand`, ...), making it a lot more succinct to use. * During tests, **all** randomness is made deterministic (except for `GetStrongRandBytes`) but non-repeating (like `GetRand()` used to be when `g_mock_deterministic_tests` was used), either fixed, or from a random seed (overridden by env var). * Several infrequently used top-level functions (`GetRandMillis`, `GetRandMicros`, `GetExponentialRand`) are converted into member functions of `FastRandomContext` (and `InsecureRandomContext`). * `GetRand<T>()` (without argument) can now return the maximum value of the type (previously e.g. `GetRand<uint32_t>()` would never return 0xffffffff). ACKs for top commit: achow101: ACKce8094246e
maflcko: re-ACKce8094246e
🐈 hodlinator: ACKce8094246e
dergoegge: utACKce8094246e
Tree-SHA512: 79bc0cbafaf27e95012c1ce2947a8ca6f9a3c78af5f1f16e69354b6fc9b987a28858adf4cd356dc5baf21163e9af8dcc24e70f8d7173be870e8a3ddcdd47c02c
79 lines
3.5 KiB
Text
79 lines
3.5 KiB
Text
# Suppressions should use `sanitize-type:ClassName::MethodName`.
|
|
|
|
# -fsanitize=undefined suppressions
|
|
# =================================
|
|
|
|
# -fsanitize=integer suppressions
|
|
# ===============================
|
|
# Dependencies
|
|
# ------------
|
|
# Suppressions in dependencies that are developed outside this repository.
|
|
unsigned-integer-overflow:*/include/c++/
|
|
unsigned-integer-overflow:FuzzedDataProvider::ConsumeIntegralInRange
|
|
unsigned-integer-overflow:leveldb/
|
|
unsigned-integer-overflow:minisketch/
|
|
unsigned-integer-overflow:secp256k1/
|
|
unsigned-integer-overflow:test/fuzz/crypto_diff_fuzz_chacha20.cpp
|
|
implicit-integer-sign-change:*/include/boost/
|
|
implicit-integer-sign-change:*/include/c++/
|
|
implicit-integer-sign-change:*/new_allocator.h
|
|
implicit-integer-sign-change:crc32c/
|
|
implicit-integer-sign-change:minisketch/
|
|
implicit-integer-sign-change:secp256k1/
|
|
implicit-signed-integer-truncation:*/include/c++/
|
|
implicit-signed-integer-truncation:leveldb/
|
|
implicit-signed-integer-truncation:secp256k1/
|
|
implicit-signed-integer-truncation,implicit-integer-sign-change:secp256k1_modinv64_posdivsteps_62_var
|
|
implicit-unsigned-integer-truncation:*/include/c++/
|
|
implicit-unsigned-integer-truncation:leveldb/
|
|
implicit-unsigned-integer-truncation:secp256k1/
|
|
implicit-unsigned-integer-truncation:test/fuzz/crypto_diff_fuzz_chacha20.cpp
|
|
shift-base:*/include/c++/
|
|
shift-base:leveldb/
|
|
shift-base:minisketch/
|
|
shift-base:secp256k1/
|
|
shift-base:test/fuzz/crypto_diff_fuzz_chacha20.cpp
|
|
# Unsigned integer overflow occurs when the result of an unsigned integer
|
|
# computation cannot be represented in its type. Unlike signed integer overflow,
|
|
# this is not undefined behavior, but it is often unintentional. The list below
|
|
# contains files in which we expect unsigned integer overflows to occur. The
|
|
# list is used to suppress -fsanitize=integer warnings when running our CI UBSan
|
|
# job.
|
|
unsigned-integer-overflow:arith_uint256.h
|
|
unsigned-integer-overflow:CBloomFilter::Hash
|
|
unsigned-integer-overflow:CRollingBloomFilter::insert
|
|
unsigned-integer-overflow:RollingBloomHash
|
|
unsigned-integer-overflow:CCoinsViewCache::AddCoin
|
|
unsigned-integer-overflow:CCoinsViewCache::BatchWrite
|
|
unsigned-integer-overflow:CCoinsViewCache::DynamicMemoryUsage
|
|
unsigned-integer-overflow:CCoinsViewCache::SpendCoin
|
|
unsigned-integer-overflow:CCoinsViewCache::Uncache
|
|
unsigned-integer-overflow:CompressAmount
|
|
unsigned-integer-overflow:DecompressAmount
|
|
unsigned-integer-overflow:crypto/
|
|
unsigned-integer-overflow:MurmurHash3
|
|
unsigned-integer-overflow:CBlockPolicyEstimator::processBlockTx
|
|
unsigned-integer-overflow:TxConfirmStats::EstimateMedianVal
|
|
unsigned-integer-overflow:prevector.h
|
|
unsigned-integer-overflow:EvalScript
|
|
unsigned-integer-overflow:InsecureRandomContext::rand64
|
|
unsigned-integer-overflow:InsecureRandomContext::SplitMix64
|
|
unsigned-integer-overflow:bitset_detail::PopCount
|
|
implicit-integer-sign-change:CBlockPolicyEstimator::processBlockTx
|
|
implicit-integer-sign-change:SetStdinEcho
|
|
implicit-integer-sign-change:compressor.h
|
|
implicit-integer-sign-change:crypto/
|
|
implicit-integer-sign-change:TxConfirmStats::removeTx
|
|
implicit-integer-sign-change:prevector.h
|
|
implicit-integer-sign-change:verify_flags
|
|
implicit-integer-sign-change:EvalScript
|
|
implicit-integer-sign-change:serialize.h
|
|
implicit-signed-integer-truncation:crypto/
|
|
implicit-unsigned-integer-truncation:crypto/
|
|
shift-base:arith_uint256.cpp
|
|
shift-base:crypto/
|
|
shift-base:streams.h
|
|
shift-base:FormatHDKeypath
|
|
shift-base:InsecureRandomContext::rand64
|
|
shift-base:RandomMixin<*>::randbits
|
|
shift-base:RandomMixin<*>::randbits<*>
|