mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
c342ce95b8
fa9ebedec3f982bb5bb459ea33d74c94d9b5cec4 Reject invalid coin height and output index when loading assumeutxo (MarcoFalke)
Pull request description:
It should be impossible to have a coin at a height higher than the height of the snapshot block, so reject those early to avoid integer wraparounds and hash collisions later on.
Same for the outpoint index.
Both issues were found by fuzzing:
* The height issue by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34793
* The outpoint issue by my fuzz server: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34793#c2
ACKs for top commit:
practicalswift:
cr ACK fa9ebedec3f982bb5bb459ea33d74c94d9b5cec4: patch looks correct
jamesob:
crACK fa9ebedec3
theStack:
Code review ACK fa9ebedec3f982bb5bb459ea33d74c94d9b5cec4
benthecarman:
crACK fa9ebedec3f982bb5bb459ea33d74c94d9b5cec4
Tree-SHA512: dae7caee4b3862b23ebdf2acb7edec4baf75b0dbf1409b370b1a73aa6b632b317ebfac596dcbaf4edfb1301b513f45465ea75328962460f35e2af0d7e547c9ac
114 lines
5.1 KiB
Plaintext
114 lines
5.1 KiB
Plaintext
# -fsanitize=undefined suppressions
|
|
# =================================
|
|
# This would be `signed-integer-overflow:CTxMemPool::PrioritiseTransaction`,
|
|
# however due to a bug in clang the symbolizer is disabled and thus no symbol
|
|
# names can be used.
|
|
# See https://github.com/google/sanitizers/issues/1364
|
|
signed-integer-overflow:txmempool.cpp
|
|
# https://github.com/bitcoin/bitcoin/pull/21798#issuecomment-829180719
|
|
signed-integer-overflow:policy/feerate.cpp
|
|
|
|
# -fsanitize=integer suppressions
|
|
# ===============================
|
|
# 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:*/include/c++/
|
|
unsigned-integer-overflow:addrman.cpp
|
|
unsigned-integer-overflow:arith_uint256.h
|
|
unsigned-integer-overflow:basic_string.h
|
|
unsigned-integer-overflow:bench/bench.h
|
|
unsigned-integer-overflow:bitcoin-tx.cpp
|
|
unsigned-integer-overflow:bloom.cpp
|
|
unsigned-integer-overflow:chain.cpp
|
|
unsigned-integer-overflow:chain.h
|
|
unsigned-integer-overflow:coded_stream.h
|
|
unsigned-integer-overflow:coins.cpp
|
|
unsigned-integer-overflow:compressor.cpp
|
|
unsigned-integer-overflow:core_write.cpp
|
|
unsigned-integer-overflow:crypto/
|
|
# unsigned-integer-overflow in FuzzedDataProvider's ConsumeIntegralInRange
|
|
unsigned-integer-overflow:FuzzedDataProvider.h
|
|
unsigned-integer-overflow:hash.cpp
|
|
unsigned-integer-overflow:leveldb/
|
|
unsigned-integer-overflow:policy/fees.cpp
|
|
unsigned-integer-overflow:prevector.h
|
|
unsigned-integer-overflow:pubkey.h
|
|
unsigned-integer-overflow:script/interpreter.cpp
|
|
unsigned-integer-overflow:stl_bvector.h
|
|
unsigned-integer-overflow:test/fuzz/crypto_diff_fuzz_chacha20.cpp
|
|
unsigned-integer-overflow:txmempool.cpp
|
|
unsigned-integer-overflow:util/strencodings.cpp
|
|
unsigned-integer-overflow:validation.cpp
|
|
unsigned-integer-overflow:xoroshiro128plusplus.h
|
|
implicit-integer-sign-change:*/include/boost/
|
|
implicit-integer-sign-change:*/include/c++/
|
|
implicit-integer-sign-change:*/new_allocator.h
|
|
implicit-integer-sign-change:addrman.h
|
|
implicit-integer-sign-change:arith_uint256.cpp
|
|
implicit-integer-sign-change:bech32.cpp
|
|
implicit-integer-sign-change:bloom.cpp
|
|
implicit-integer-sign-change:chain.cpp
|
|
implicit-integer-sign-change:chain.h
|
|
implicit-integer-sign-change:coins.h
|
|
implicit-integer-sign-change:compat/stdin.cpp
|
|
implicit-integer-sign-change:compressor.h
|
|
implicit-integer-sign-change:crc32c/
|
|
implicit-integer-sign-change:crypto/
|
|
# implicit-integer-sign-change in FuzzedDataProvider's ConsumeIntegralInRange
|
|
implicit-integer-sign-change:FuzzedDataProvider.h
|
|
implicit-integer-sign-change:key.cpp
|
|
implicit-integer-sign-change:noui.cpp
|
|
implicit-integer-sign-change:policy/fees.cpp
|
|
implicit-integer-sign-change:prevector.h
|
|
implicit-integer-sign-change:script/bitcoinconsensus.cpp
|
|
implicit-integer-sign-change:script/interpreter.cpp
|
|
implicit-integer-sign-change:serialize.h
|
|
implicit-integer-sign-change:test/arith_uint256_tests.cpp
|
|
implicit-integer-sign-change:test/coins_tests.cpp
|
|
implicit-integer-sign-change:test/pow_tests.cpp
|
|
implicit-integer-sign-change:test/prevector_tests.cpp
|
|
implicit-integer-sign-change:test/sighash_tests.cpp
|
|
implicit-integer-sign-change:test/skiplist_tests.cpp
|
|
implicit-integer-sign-change:test/streams_tests.cpp
|
|
implicit-integer-sign-change:test/transaction_tests.cpp
|
|
implicit-integer-sign-change:txmempool.cpp
|
|
implicit-integer-sign-change:util/strencodings.cpp
|
|
implicit-integer-sign-change:util/strencodings.h
|
|
implicit-integer-sign-change:validation.cpp
|
|
implicit-integer-sign-change:zmq/zmqpublishnotifier.cpp
|
|
implicit-signed-integer-truncation,implicit-integer-sign-change:chain.h
|
|
implicit-signed-integer-truncation,implicit-integer-sign-change:test/skiplist_tests.cpp
|
|
implicit-signed-integer-truncation:addrman.cpp
|
|
implicit-signed-integer-truncation:addrman.h
|
|
implicit-signed-integer-truncation:chain.h
|
|
implicit-signed-integer-truncation:crypto/
|
|
implicit-signed-integer-truncation:cuckoocache.h
|
|
implicit-signed-integer-truncation:leveldb/
|
|
implicit-signed-integer-truncation:miner.cpp
|
|
implicit-signed-integer-truncation:net.cpp
|
|
implicit-signed-integer-truncation:net_processing.cpp
|
|
implicit-signed-integer-truncation:streams.h
|
|
implicit-signed-integer-truncation:test/arith_uint256_tests.cpp
|
|
implicit-signed-integer-truncation:test/skiplist_tests.cpp
|
|
implicit-signed-integer-truncation:torcontrol.cpp
|
|
implicit-unsigned-integer-truncation:crypto/
|
|
implicit-unsigned-integer-truncation:leveldb/
|
|
implicit-unsigned-integer-truncation:test/fuzz/crypto_diff_fuzz_chacha20.cpp
|
|
# std::variant warning fixed in https://github.com/gcc-mirror/gcc/commit/074436cf8cdd2a9ce75cadd36deb8301f00e55b9
|
|
implicit-unsigned-integer-truncation:std::__detail::__variant::_Variant_storage
|
|
shift-base:xoroshiro128plusplus.h
|
|
shift-base:*/include/c++/
|
|
shift-base:arith_uint256.cpp
|
|
shift-base:crypto/
|
|
shift-base:hash.cpp
|
|
shift-base:leveldb/
|
|
shift-base:net_processing.cpp
|
|
shift-base:streams.h
|
|
shift-base:test/fuzz/crypto_diff_fuzz_chacha20.cpp
|
|
shift-base:util/bip32.cpp
|
|
vptr:bls/bls.h
|