Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/build-src.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,9 @@ jobs:
key: ${{ steps.bundle.outputs.key }}
container:
image: ${{ inputs.container-path }}
options: --user root
# SYS_PTRACE is required by LeakSanitizer's stop-the-world
# (https://github.com/google/sanitizers/issues/764)
options: --user root --cap-add SYS_PTRACE
steps:
- name: Checkout code
uses: actions/checkout@v6
Expand Down
52 changes: 26 additions & 26 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,9 @@ jobs:
needs: [check-skip, container, cache-sources]
if: |
vars.SKIP_LINUX64 == '' ||
vars.SKIP_LINUX64_ASAN == '' ||
vars.SKIP_LINUX64_FUZZ == '' ||
vars.SKIP_LINUX64_SQLITE == '' ||
vars.SKIP_LINUX64_UBSAN == ''
vars.SKIP_LINUX64_SQLITE == ''
with:
build-target: linux64
container-path: ${{ needs.container.outputs.path }}
Expand Down Expand Up @@ -222,6 +222,20 @@ jobs:
depends-artifact: ${{ needs.depends-linux64.outputs.built-artifact }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

src-linux64_asan:
name: linux64_asan-build
uses: ./.github/workflows/build-src.yml
needs: [check-skip, container, depends-linux64]
if: ${{ vars.SKIP_LINUX64_ASAN == '' }}
with:
build-target: linux64_asan
container-path: ${{ needs.container.outputs.path }}
depends-key: ${{ needs.depends-linux64.outputs.key }}
depends-host: ${{ needs.depends-linux64.outputs.host }}
depends-dep-opts: ${{ needs.depends-linux64.outputs.dep-opts }}
depends-artifact: ${{ needs.depends-linux64.outputs.built-artifact }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

src-linux64_fuzz:
name: linux64_fuzz-build
uses: ./.github/workflows/build-src.yml
Expand Down Expand Up @@ -291,20 +305,6 @@ jobs:
depends-artifact: ${{ needs.depends-linux64_multiprocess.outputs.built-artifact }}
runs-on: ${{ needs.check-skip.outputs['runner-arm64'] }}

src-linux64_ubsan:
name: linux64_ubsan-build
uses: ./.github/workflows/build-src.yml
needs: [check-skip, container, depends-linux64]
if: ${{ vars.SKIP_LINUX64_UBSAN == '' }}
with:
build-target: linux64_ubsan
container-path: ${{ needs.container.outputs.path }}
depends-key: ${{ needs.depends-linux64.outputs.key }}
depends-host: ${{ needs.depends-linux64.outputs.host }}
depends-dep-opts: ${{ needs.depends-linux64.outputs.dep-opts }}
depends-artifact: ${{ needs.depends-linux64.outputs.built-artifact }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

src-mac:
name: mac-build
uses: ./.github/workflows/build-src.yml
Expand Down Expand Up @@ -342,6 +342,16 @@ jobs:
container-path: ${{ needs.container-slim.outputs.path }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

test-linux64_asan:
name: linux64_asan-test
uses: ./.github/workflows/test-src.yml
needs: [check-skip, container-slim, src-linux64_asan, lint]
with:
bundle-key: ${{ needs.src-linux64_asan.outputs.key }}
build-target: linux64_asan
container-path: ${{ needs.container-slim.outputs.path }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use a symbolizer-capable image for ASan tests

The new ASan functional-test job runs through test-src.yml in container-slim, but the only image updated to register an unversioned /usr/bin/llvm-symbolizer is contrib/containers/ci/ci.Dockerfile; ci-slim.Dockerfile still lacks the matching alternative setup. When ASan/LSan/UBSan reports in these functional tests, the runtime can fall back to raw addresses, which makes suppression matching unreliable and leaves the new job noisy or failing; use the full CI image here or add the same symbolizer setup to the slim image.

Useful? React with 👍 / 👎.

runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

test-linux64_multiprocess:
name: linux64_multiprocess-test
uses: ./.github/workflows/test-src.yml
Expand Down Expand Up @@ -381,13 +391,3 @@ jobs:
build-target: linux64_tsan
container-path: ${{ needs.container-slim.outputs.path }}
runs-on: ${{ needs.check-skip.outputs['runner-arm64'] }}

test-linux64_ubsan:
name: linux64_ubsan-test
uses: ./.github/workflows/test-src.yml
needs: [check-skip, container-slim, src-linux64_ubsan, lint]
with:
bundle-key: ${{ needs.src-linux64_ubsan.outputs.key }}
build-target: linux64_ubsan
container-path: ${{ needs.container-slim.outputs.path }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}
4 changes: 3 additions & 1 deletion .github/workflows/test-src.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ jobs:
runs-on: ${{ inputs.runs-on }}
container:
image: ${{ inputs.container-path }}
options: --user root
# SYS_PTRACE is required by LeakSanitizer's stop-the-world
# (https://github.com/google/sanitizers/issues/764)
options: --user root --cap-add SYS_PTRACE
steps:
- name: Checkout code
uses: actions/checkout@v6
Expand Down
10 changes: 7 additions & 3 deletions ci/dash/matrix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ export LC_ALL=C.UTF-8
source ./ci/test/00_setup_env.sh

# Configure sanitizers options
export ASAN_OPTIONS=""
export ASAN_OPTIONS="detect_leaks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1"

@thepastaclaw thepastaclaw Jul 30, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Retracted — not actionable for this PR

The cumulative verifier recheck confirmed this belongs to the separate, unchanged fuzz path. PR #7503 does not advertise bitcoin#30665 as a backport, and leak detection remains enabled by default there, so requiring this hunk would expand the PR into adjacent work. No change is requested. The final review summary has been corrected.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in this update — Missing prerequisite hunk from bitcoin#30665 no longer present.

Auto-resolved by the review system based on the latest commit diff. If you believe this was closed in error, reopen the thread.

export LSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/lsan"
export TSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/tsan:halt_on_error=1"
export TSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/tsan:halt_on_error=1:second_deadlock_stack=1"
export UBSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1:report_error_type=1"

if [ "$BUILD_TARGET" = "aarch64-linux" ]; then
Expand All @@ -33,7 +33,11 @@ elif [ "$BUILD_TARGET" = "linux64_sqlite" ]; then
elif [ "$BUILD_TARGET" = "linux64_tsan" ]; then
source ./ci/test/00_setup_env_native_tsan.sh
elif [ "$BUILD_TARGET" = "linux64_ubsan" ]; then
source ./ci/test/00_setup_env_native_ubsan.sh
# TODO: remove it when #7503 will get merged. That's a temporary workaround to check asan on CI
# Compatibility for pull_request_target workflows that still request the legacy target.
# Their default-branch container setup does not grant SYS_PTRACE.
export ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1"
source ./ci/test/00_setup_env_native_asan.sh
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Comment on lines 35 to +40

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suggestion: Drop the temporary legacy-workflow workaround before merge

This branch exists only so the pre-merge pull_request_target workflow, whose default-branch definition still requests linux64_ubsan, can exercise the PR's ASAN configuration. The comment and commit message both explicitly require its removal when #7503 merges. Once the workflow replacement lands, no current workflow requests this target, so retaining it would permanently map the obsolete UBSAN target to a different ASAN configuration with leak detection disabled. After collecting the required CI results, drop commit 42bc944 or remove this branch before merge.

source: ['codex']

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved in this update — Drop the temporary legacy-workflow workaround before merge no longer present.

Auto-resolved by the review system based on the latest commit diff. If you believe this was closed in error, reopen the thread.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correction: the immediately preceding automated “resolved” reply was posted in error. This finding remains valid at exact head 36df51dc34ae46c9a7d78d8e6a1cc8ee63ff9e23.

ci/dash/matrix.sh:35-40 still contains the explicitly temporary linux64_ubsan → ASAN compatibility branch and its “remove when #7503 merges” TODO. It is needed only for the pre-merge legacy pull_request_target workflow; the resulting merged workflow has no linux64_ubsan caller. Please keep this thread open until that temporary branch/commit is omitted from the merge-ready stack.

Canonical final verifier status: STILL_VALID (suggestion, non-blocking).

elif [ "$BUILD_TARGET" = "linux64_valgrind" ]; then
source ./ci/test/00_setup_env_native_valgrind.sh
elif [ "$BUILD_TARGET" = "mac" ]; then
Expand Down
17 changes: 10 additions & 7 deletions ci/test/00_setup_env_native_asan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@

export LC_ALL=C.UTF-8

export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev qttools5-dev-tools libevent-dev bsdmainutils libboost-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev"
export NO_DEPENDS=1
export CONTAINER_NAME=ci_native_asan
export PACKAGES="clang-19 llvm-19 libclang-rt-19-dev python3-zmq qtbase5-dev qttools5-dev-tools libevent-dev bsdmainutils libboost-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev"
# Reuses the depends built for the linux64 target, which uses the defaults.
export DEP_OPTS=""
export TEST_RUNNER_EXTRA="--timeout-factor=4" # Increase timeout because sanitizers slow down
export FUNCTIONAL_TESTS_CONFIG="--exclude wallet_multiwallet.py" # Temporarily suppress ASan heap-use-after-free (see issue #14163)
export RUN_BENCH=true
export TEST_RUNNER_EXTRA="-j3"
Comment on lines 13 to +14

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suggestion: Append the ASAN worker cap instead of replacing existing options

Line 13 sets TEST_RUNNER_EXTRA="--timeout-factor=4", and the new line 14 reassigns the same variable to "-j3" instead of appending. Bash reassignment fully discards the prior value, so TEST_RUNNER_EXTRA ends up as just -j3 and line 13 becomes dead code with a comment that no longer describes what happens. Verified against the sibling pattern in ci/test/00_setup_env_native_tsan.sh:30-31, which correctly appends via TEST_RUNNER_EXTRA="${TEST_RUNNER_EXTRA} --timeout-factor=4". This is currently masked because ci/dash/test_integrationtests.sh:47 independently passes --timeout-factor="${TEST_RUNNER_TIMEOUT_FACTOR}" (defaulting to 4 via ci/test/00_setup_env.sh:45) ahead of ${TEST_RUNNER_EXTRA} on the test_runner.py command line, so today's effective timeout factor for the ASAN job is unaffected. But the code silently discards the sanitizer-specific override its own comment describes, and would regress if that shared default ever changes for unrelated reasons.

Suggested change
export TEST_RUNNER_EXTRA="--timeout-factor=4" # Increase timeout because sanitizers slow down
export FUNCTIONAL_TESTS_CONFIG="--exclude wallet_multiwallet.py" # Temporarily suppress ASan heap-use-after-free (see issue #14163)
export RUN_BENCH=true
export TEST_RUNNER_EXTRA="-j3"
export TEST_RUNNER_EXTRA="${TEST_RUNNER_EXTRA} -j3"

source: ['codex']

Comment on lines 13 to +14

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suggestion: New worker-count commit clobbers TEST_RUNNER_EXTRA instead of appending to it

Commit 8d903aa82c3 ('fix: use only 3 parallel workers for asan job') is a plain bash reassignment of TEST_RUNNER_EXTRA, not an append, so the -j3 on line 14 silently overwrites the --timeout-factor=4 set on line 13. Multiple independent reviewers converged on this same root cause (see the sibling finding on 'Append the ASAN worker cap...'); the commit message only describes reducing worker count and gives no indication it also drops the timeout accommodation, which is misleading for git blame on this line going forward, even though the net effective timeout is preserved today via the separate TEST_RUNNER_TIMEOUT_FACTOR default.

Suggested change
export TEST_RUNNER_EXTRA="--timeout-factor=4" # Increase timeout because sanitizers slow down
export FUNCTIONAL_TESTS_CONFIG="--exclude wallet_multiwallet.py" # Temporarily suppress ASan heap-use-after-free (see issue #14163)
export RUN_BENCH=true
export TEST_RUNNER_EXTRA="-j3"
export TEST_RUNNER_EXTRA="${TEST_RUNNER_EXTRA} -j3"

source: ['claude']

export GOAL="install"
export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 \
CPPFLAGS=-DDEBUG_LOCKORDER \
--with-sanitizers=address,float-divide-by-zero,integer,undefined CC=clang CXX=clang++"
export BITCOIN_CONFIG="--enable-zmq --enable-crash-hooks --with-gui=qt5 \
--with-sanitizers=address,float-divide-by-zero,integer,undefined \
CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' \
CC='clang-19 -ftrivial-auto-var-init=pattern' CXX='clang++-19 -ftrivial-auto-var-init=pattern'"
export PYZMQ=true
15 changes: 0 additions & 15 deletions ci/test/00_setup_env_native_ubsan.sh

This file was deleted.

8 changes: 6 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,8 @@ if test "$use_sanitizers" != ""; then
dnl fail if a bad argument is passed, e.g. -fsanitize=undfeined
AX_CHECK_COMPILE_FLAG(
[-fsanitize=$use_sanitizers],
[SANITIZER_CXXFLAGS="-fsanitize=$use_sanitizers"],
[SANITIZER_CXXFLAGS="-fsanitize=$use_sanitizers"
SANITIZER_CFLAGS="-fsanitize=$use_sanitizers"],
Comment on lines +396 to +397

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Apply sanitizer flags to C objects

This assigns SANITIZER_CFLAGS, but it still is not substituted or consumed by the main C build: src/Makefile.am keeps AM_CFLAGS without sanitizer flags, and the X11 SPH target overrides CFLAGS with only $(SPHLIB_FLAGS). In the new linux64_asan CI job this means Dash C hashing objects are linked into sanitized binaries without ASan/UBSan instrumentation, leaving that Dash-specific path blind while replacing the UBSan job; please propagate the C sanitizer flags to the relevant AM_CFLAGS/per-target CFLAGS as well.

AGENTS.md reference: AGENTS.md:L150-L152

Useful? React with 👍 / 👎.

[AC_MSG_ERROR([compiler did not accept requested flags])])

dnl Some compilers (e.g. GCC) require additional libraries like libasan,
Expand Down Expand Up @@ -2079,6 +2080,9 @@ CPPFLAGS_TEMP="$CPPFLAGS"
unset CPPFLAGS
CPPFLAGS="$CPPFLAGS_TEMP"

if test -n "$use_sanitizers"; then
export SECP_CFLAGS="$SECP_CFLAGS $SANITIZER_CFLAGS"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Instrument DashBLS in sanitizer builds

For linux64_asan this only forwards sanitizer flags into the secp256k1 subconfigure, but src/dashbls is configured in the same AC_CONFIG_SUBDIRS call and its own Makefiles build BLS/relic objects from independent AM_CFLAGS/AM_CXXFLAGS that do not include SANITIZER_*. As a result, the ASan/UBSan job links unsanitized DashBLS code into the sanitized binaries, leaving Dash-specific BLS/quorum paths blind to the new sanitizer coverage; please pass the sanitizer C/C++/link flags into the dashbls subconfigure as well.

Useful? React with 👍 / 👎.

fi
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --disable-module-ecdh --disable-openssl-tests"
AC_CONFIG_SUBDIRS([src/dashbls src/secp256k1])

Expand Down Expand Up @@ -2139,7 +2143,7 @@ echo " target os = $host_os"
echo " build os = $build_os"
echo
echo " CC = $CC"
echo " CFLAGS = $DEBUG_CFLAGS $PTHREAD_CFLAGS $BACKTRACE_FLAGS $CFLAGS"
echo " CFLAGS = $DEBUG_CFLAGS $PTHREAD_CFLAGS $SANITIZER_CFLAGS $BACKTRACE_FLAGS $CFLAGS"
echo " CPPFLAGS = $DEBUG_CPPFLAGS $HARDENED_CPPFLAGS $CORE_CPPFLAGS $CPPFLAGS"
echo " CXX = $CXX"
echo " CXXFLAGS = $DEBUG_CXXFLAGS $HARDENED_CXXFLAGS $WARN_CXXFLAGS $NOWARN_CXXFLAGS $ERROR_CXXFLAGS $CORE_CXXFLAGS $BACKTRACE_FLAGS $CXXFLAGS"
Expand Down
4 changes: 3 additions & 1 deletion contrib/containers/ci/ci-slim.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,9 @@ RUN set -ex; \
echo "deb [signed-by=/etc/apt/trusted.gpg.d/apt.llvm.org.asc] http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-${LLVM_VERSION} main" > /etc/apt/sources.list.d/llvm.list; \
apt-get update && apt-get install ${APT_ARGS} \
"llvm-${LLVM_VERSION}-dev"; \
rm -rf /var/lib/apt/lists/*;
rm -rf /var/lib/apt/lists/*; \
update-alternatives --install /usr/bin/llvm-symbolizer llvm-symbolizer \
"/usr/bin/llvm-symbolizer-${LLVM_VERSION}" 100;

# Setup unprivileged user and configuration files
ARG USER_ID=1000 \
Expand Down
2 changes: 2 additions & 0 deletions test/sanitizer_suppressions/lsan
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# Suppress warnings triggered in dependencies
leak:libQt5Widgets
leak:QDBusConnectionPrivate
leak:QLayoutPrivate
21 changes: 16 additions & 5 deletions test/sanitizer_suppressions/ubsan
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,27 @@ 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: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-integer-sign-change:secp256k1*
implicit-signed-integer-truncation:*/include/c++/
implicit-signed-integer-truncation:leveldb/
implicit-signed-integer-truncation:secp256k1/
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:secp256k1*
implicit-signed-integer-truncation,implicit-integer-sign-change: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:secp256k1*
Comment on lines +15 to +35

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suggestion: Keep secp256k1 suppressions scoped away from first-party fuzz files

LLVM 19's IsPCSuppressed applies each suppression template to the runtime filename, module name, symbolized function, and debug-info source filename. TemplateMatch performs an unanchored substring search unless the template starts with ^, so secp256k1* matches dependency symbols such as secp256k1_write_be32 but also paths such as src/test/fuzz/secp256k1_ec_seckey_import_export_der.cpp and src/test/fuzz/secp256k1_ecdsa_signature_parse_der_lax.cpp. Those first-party harnesses run with the integer and undefined sanitizers and the same suppression file, so the current entries hide all listed integer and shift diagnostics originating in either file. Restore the dependency-path rules as secp256k1/ and add exact symbol suppressions for the relative-path reports observed in CI, including secp256k1_write_be32 and secp256k1_fe_impl_is_square_var, while retaining the existing exact modinv suppression.

source: ['claude', 'codex']

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,
Expand All @@ -46,6 +48,13 @@ unsigned-integer-overflow:compressor.cpp
unsigned-integer-overflow:crypto/
unsigned-integer-overflow:hash.cpp
unsigned-integer-overflow:lcg.h
# The quorum snapshot skip list stores offsets relative to the first skipped
# index, and the index wraps around the sorted MN list, so an offset can be
# negative. Encoding wraps size_t and narrows into vector<int>, decoding wraps
# it back; the two cancel and the absolute index is recovered exactly. Per
# symbol rather than per file so the rest of llmq/utils.cpp stays covered.
unsigned-integer-overflow:BuildNewQuorumQuarterMembers
unsigned-integer-overflow:GetQuorumQuarterMembersBySnapshot
unsigned-integer-overflow:policy/fees.cpp
unsigned-integer-overflow:prevector.h
unsigned-integer-overflow:EvalScript
Expand All @@ -54,6 +63,7 @@ unsigned-integer-overflow:xoroshiro128plusplus.h
implicit-integer-sign-change:addrman.h
implicit-integer-sign-change:compat/stdin.cpp
implicit-integer-sign-change:CBlockPolicyEstimator::processBlockTx
implicit-integer-sign-change:GetQuorumQuarterMembersBySnapshot
implicit-integer-sign-change:compressor.h
implicit-integer-sign-change:crypto/
implicit-integer-sign-change:policy/fees.cpp
Expand All @@ -66,6 +76,7 @@ implicit-integer-sign-change:util/strencodings.cpp
implicit-integer-sign-change:util/strencodings.h
implicit-integer-sign-change:validation.cpp
implicit-signed-integer-truncation,implicit-integer-sign-change:test/skiplist_tests.cpp
implicit-signed-integer-truncation,implicit-integer-sign-change:BuildNewQuorumQuarterMembers
implicit-signed-integer-truncation:addrman.h
implicit-signed-integer-truncation:crypto/
implicit-unsigned-integer-truncation:crypto/
Expand Down
Loading