mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-16 13:01:19 +02:00
Merge 32d44d2b1c into merged_master (Bitcoin PR #21000)
This commit is contained in:
commit
60bc007ba3
5 changed files with 59 additions and 23 deletions
|
|
@ -45,18 +45,24 @@ FUZZ_TARGET(crypto_chacha20_poly1305_aead)
|
|||
assert(ok);
|
||||
},
|
||||
[&] {
|
||||
if (AdditionOverflow(seqnr_payload, static_cast<uint64_t>(1))) {
|
||||
return;
|
||||
}
|
||||
seqnr_payload += 1;
|
||||
aad_pos += CHACHA20_POLY1305_AEAD_AAD_LEN;
|
||||
if (aad_pos + CHACHA20_POLY1305_AEAD_AAD_LEN > CHACHA20_ROUND_OUTPUT) {
|
||||
aad_pos = 0;
|
||||
if (AdditionOverflow(seqnr_aad, static_cast<uint64_t>(1))) {
|
||||
return;
|
||||
}
|
||||
seqnr_aad += 1;
|
||||
}
|
||||
},
|
||||
[&] {
|
||||
seqnr_payload = fuzzed_data_provider.ConsumeIntegral<int>();
|
||||
seqnr_payload = fuzzed_data_provider.ConsumeIntegral<uint64_t>();
|
||||
},
|
||||
[&] {
|
||||
seqnr_aad = fuzzed_data_provider.ConsumeIntegral<int>();
|
||||
seqnr_aad = fuzzed_data_provider.ConsumeIntegral<uint64_t>();
|
||||
},
|
||||
[&] {
|
||||
is_encrypt = fuzzed_data_provider.ConsumeBool();
|
||||
|
|
|
|||
|
|
@ -43,7 +43,10 @@ FUZZ_TARGET_INIT(pow, initialize_pow)
|
|||
current_block.nHeight = current_height;
|
||||
}
|
||||
if (fuzzed_data_provider.ConsumeBool()) {
|
||||
current_block.nTime = fixed_time + current_height * consensus_params.nPowTargetSpacing;
|
||||
const uint32_t seconds = current_height * consensus_params.nPowTargetSpacing;
|
||||
if (!AdditionOverflow(fixed_time, seconds)) {
|
||||
current_block.nTime = fixed_time + seconds;
|
||||
}
|
||||
}
|
||||
if (fuzzed_data_provider.ConsumeBool()) {
|
||||
current_block.nBits = fixed_bits;
|
||||
|
|
|
|||
|
|
@ -154,13 +154,13 @@ FUZZ_TARGET_INIT(script, initialize_script)
|
|||
|
||||
{
|
||||
WitnessUnknown witness_unknown_1{};
|
||||
witness_unknown_1.version = fuzzed_data_provider.ConsumeIntegral<int>();
|
||||
witness_unknown_1.version = fuzzed_data_provider.ConsumeIntegral<uint32_t>();
|
||||
const std::vector<uint8_t> witness_unknown_program_1 = fuzzed_data_provider.ConsumeBytes<uint8_t>(40);
|
||||
witness_unknown_1.length = witness_unknown_program_1.size();
|
||||
std::copy(witness_unknown_program_1.begin(), witness_unknown_program_1.end(), witness_unknown_1.program);
|
||||
|
||||
WitnessUnknown witness_unknown_2{};
|
||||
witness_unknown_2.version = fuzzed_data_provider.ConsumeIntegral<int>();
|
||||
witness_unknown_2.version = fuzzed_data_provider.ConsumeIntegral<uint32_t>();
|
||||
const std::vector<uint8_t> witness_unknown_program_2 = fuzzed_data_provider.ConsumeBytes<uint8_t>(40);
|
||||
witness_unknown_2.length = witness_unknown_program_2.size();
|
||||
std::copy(witness_unknown_program_2.begin(), witness_unknown_program_2.end(), witness_unknown_2.program);
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ template <typename WeakEnumType, size_t size>
|
|||
},
|
||||
[&] {
|
||||
WitnessUnknown witness_unknown{};
|
||||
witness_unknown.version = fuzzed_data_provider.ConsumeIntegral<int>();
|
||||
witness_unknown.version = fuzzed_data_provider.ConsumeIntegral<uint32_t>();
|
||||
const std::vector<uint8_t> witness_unknown_program_1 = fuzzed_data_provider.ConsumeBytes<uint8_t>(40);
|
||||
witness_unknown.length = witness_unknown_program_1.size();
|
||||
std::copy(witness_unknown_program_1.begin(), witness_unknown_program_1.end(), witness_unknown.program);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# -fsanitize=undefined suppressions
|
||||
# =================================
|
||||
# No suppressions at the moment. Hooray!
|
||||
|
||||
# -fsanitize=integer suppressions
|
||||
# ===============================
|
||||
# Unsigned integer overflow occurs when the result of an unsigned integer
|
||||
|
|
@ -6,7 +10,8 @@
|
|||
# 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++/*/bits/basic_string.tcc
|
||||
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
|
||||
|
|
@ -15,34 +20,41 @@ 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:crypto/
|
||||
# unsigned-integer-overflow in FuzzedDataProvider's ConsumeIntegralInRange
|
||||
unsigned-integer-overflow:FuzzedDataProvider.h
|
||||
unsigned-integer-overflow:hash.cpp
|
||||
unsigned-integer-overflow:leveldb/db/log_reader.cc
|
||||
unsigned-integer-overflow:leveldb/util/bloom.cc
|
||||
unsigned-integer-overflow:leveldb/util/crc32c.h
|
||||
unsigned-integer-overflow:leveldb/util/hash.cc
|
||||
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:txmempool.cpp
|
||||
unsigned-integer-overflow:util/strencodings.cpp
|
||||
unsigned-integer-overflow:validation.cpp
|
||||
|
||||
implicit-integer-sign-change:*/include/c++/*/bits/*.h
|
||||
implicit-integer-sign-change:*/include/boost/
|
||||
implicit-integer-sign-change:*/include/c++/
|
||||
implicit-integer-sign-change:*/new_allocator.h
|
||||
implicit-integer-sign-change:/usr/include/boost/date_time/format_date_parser.hpp
|
||||
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.*
|
||||
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:crypto/*
|
||||
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:protocol.cpp
|
||||
implicit-integer-sign-change:script/bitcoinconsensus.cpp
|
||||
|
|
@ -53,28 +65,43 @@ 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.*
|
||||
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:crypto/
|
||||
implicit-signed-integer-truncation:cuckoocache.h
|
||||
implicit-signed-integer-truncation:leveldb/*
|
||||
implicit-signed-integer-truncation:leveldb/
|
||||
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:crypto/
|
||||
implicit-unsigned-integer-truncation:leveldb/
|
||||
# std::variant warning fixed in https://github.com/gcc-mirror/gcc/commit/074436cf8cdd2a9ce75cadd36deb8301f00e55b9
|
||||
implicit-unsigned-integer-truncation:std::__detail::__variant::_Variant_storage
|
||||
implicit-integer-sign-change:crc32c/*
|
||||
|
||||
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:util/bip32.cpp
|
||||
|
||||
# ELEMENTS
|
||||
implicit-signed-integer-truncation:script/interpreter.cpp
|
||||
implicit-integer-sign-change:primitives/block.h
|
||||
implicit-integer-sign-change:primitives/confidential.cpp
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue