2019-10-22 19:19:09 +02:00
|
|
|
# -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.
|
2020-11-20 10:55:52 +01:00
|
|
|
unsigned-integer-overflow:*/include/c++/*/bits/basic_string.tcc
|
2018-11-06 23:25:30 +01:00
|
|
|
unsigned-integer-overflow:arith_uint256.h
|
2018-11-05 20:49:38 +01:00
|
|
|
unsigned-integer-overflow:basic_string.h
|
|
|
|
unsigned-integer-overflow:bench/bench.h
|
2022-07-08 10:40:53 +02:00
|
|
|
unsigned-integer-overflow:bitcoin-tx.cpp
|
2018-11-05 20:49:38 +01:00
|
|
|
unsigned-integer-overflow:bloom.cpp
|
2018-11-06 23:25:30 +01:00
|
|
|
unsigned-integer-overflow:chain.cpp
|
2018-11-05 20:49:38 +01:00
|
|
|
unsigned-integer-overflow:chain.h
|
2018-11-06 23:25:30 +01:00
|
|
|
unsigned-integer-overflow:coded_stream.h
|
|
|
|
unsigned-integer-overflow:core_write.cpp
|
Merge #20844: test: Add sanitizer suppressions for AMD EPYC CPUs
fa6c114ae604571435e8c4d25906a8b6d5b9984c test: Add sanitizer suppressions for AMD EPYC CPUs (MarcoFalke)
Pull request description:
Currently the ci system only runs on intel cpus (and some arm devices), but it won't run on CPUs `Using the 'shani(1way,2way)' SHA256 implementation` (excerpt from debug log).
For reference, google cloud CPUs (which is what Cirrus CI uses) print `Using the 'sse4(1way),sse41(4way),avx2(8way)' SHA256 implementation`
The traceback I got:
```
crypto/sha256_shani.cpp:87:18: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'size_t' (aka 'unsigned long')
#0 0x55c0000e95ec in sha256_shani::Transform(unsigned int*, unsigned char const*, unsigned long) /root/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/crypto/sha256_shani.cpp:87:18
#1 0x55bfffb926f8 in (anonymous namespace)::SelfTest() /root/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/crypto/sha256.cpp:517:9
#2 0x55bfffb906ed in SHA256AutoDetect[abi:cxx11]() /root/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/crypto/sha256.cpp:626:5
#3 0x55bfff87ab97 in BasicTestingSetup::BasicTestingSetup(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<char const*, std::allocator<char const*> > const&) /root/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/util/setup_common.cpp:104:5
#4 0x55bffe885877 in main /root/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/qt/test/test_main.cpp:52:27
#5 0x7f20c3bf60b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
#6 0x55bffe7a5f6d in _start (/root/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/qt/test/test_bitcoin-qt+0x1d00f6d)
SUMMARY: UndefinedBehaviorSanitizer: unsigned-integer-overflow crypto/sha256_shani.cpp:87:18 in
ACKs for top commit:
laanwj:
Anyhow ACK fa6c114ae604571435e8c4d25906a8b6d5b9984c
Tree-SHA512: 968a1d28eedec58c337b1323862f583cb1bcd78c5f03396940b9ab53ded12f8c6652877909aba05ee5586532137418fd817ff979bd7bef6e07856094f9d7f9b1
2021-01-06 08:35:53 +01:00
|
|
|
unsigned-integer-overflow:crypto/*
|
2018-11-05 20:49:38 +01:00
|
|
|
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:policy/fees.cpp
|
2018-11-06 23:25:30 +01:00
|
|
|
unsigned-integer-overflow:prevector.h
|
2018-11-05 20:49:38 +01:00
|
|
|
unsigned-integer-overflow:script/interpreter.cpp
|
|
|
|
unsigned-integer-overflow:stl_bvector.h
|
|
|
|
unsigned-integer-overflow:txmempool.cpp
|
2018-11-06 23:25:30 +01:00
|
|
|
unsigned-integer-overflow:util/strencodings.cpp
|
2018-11-05 20:49:38 +01:00
|
|
|
unsigned-integer-overflow:validation.cpp
|
2021-01-01 15:02:49 +01:00
|
|
|
# std::variant warning fixed in https://github.com/gcc-mirror/gcc/commit/074436cf8cdd2a9ce75cadd36deb8301f00e55b9
|
|
|
|
implicit-unsigned-integer-truncation:std::__detail::__variant::_Variant_storage
|
2022-03-17 14:53:37 +01:00
|
|
|
vptr:bls/bls.h
|
2019-12-04 19:22:23 +01:00
|
|
|
|
|
|
|
implicit-integer-sign-change:*/include/c++/*/bits/*.h
|
|
|
|
implicit-integer-sign-change:*/new_allocator.h
|
|
|
|
implicit-integer-sign-change:/usr/include/boost/date_time/format_date_parser.hpp
|
|
|
|
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:coins.h
|
|
|
|
implicit-integer-sign-change:compat/stdin.cpp
|
|
|
|
implicit-integer-sign-change:compressor.h
|
2023-06-01 11:22:39 +02:00
|
|
|
implicit-integer-sign-change:crc32c/
|
2019-12-04 19:22:23 +01:00
|
|
|
implicit-integer-sign-change:crypto/*
|
|
|
|
implicit-integer-sign-change:key.cpp
|
|
|
|
implicit-integer-sign-change:noui.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/streams_tests.cpp
|
|
|
|
implicit-integer-sign-change:test/transaction_tests.cpp
|
|
|
|
implicit-integer-sign-change:txmempool.cpp
|
|
|
|
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:chain.h
|
|
|
|
implicit-signed-integer-truncation:crypto/*
|
|
|
|
implicit-signed-integer-truncation:cuckoocache.h
|
|
|
|
implicit-signed-integer-truncation:leveldb/*
|
|
|
|
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/*
|