diff --git a/.github/workflows/reusable-build-test-config.yml b/.github/workflows/reusable-build-test-config.yml index 2f6426a43e..4cc77f2303 100644 --- a/.github/workflows/reusable-build-test-config.yml +++ b/.github/workflows/reusable-build-test-config.yml @@ -205,10 +205,10 @@ jobs: - name: Set sanitizer options if: ${{ !inputs.build_only && env.SANITIZERS_ENABLED == 'true' }} run: | - echo "ASAN_OPTIONS=print_stacktrace=1:detect_container_overflow=0:detect_stack_use_after_return=0:suppressions=${GITHUB_WORKSPACE}/sanitizers/suppressions/asan.supp:halt_on_error=0" >> ${GITHUB_ENV} - echo "TSAN_OPTIONS=second_deadlock_stack=1:halt_on_error=0:suppressions=${GITHUB_WORKSPACE}/sanitizers/suppressions/tsan.supp" >> ${GITHUB_ENV} - echo "UBSAN_OPTIONS=suppressions=${GITHUB_WORKSPACE}/sanitizers/suppressions/ubsan.supp" >> ${GITHUB_ENV} - echo "LSAN_OPTIONS=suppressions=${GITHUB_WORKSPACE}/sanitizers/suppressions/lsan.supp" >> ${GITHUB_ENV} + echo "ASAN_OPTIONS=halt_on_error=false:verbosity=1:print_stacktrace=1:detect_container_overflow=0:detect_stack_use_after_return=0:debug=true:suppressions=${GITHUB_WORKSPACE}/sanitizers/suppressions/asan.supp" >> ${GITHUB_ENV} + echo "TSAN_OPTIONS=halt_on_error=false:verbosity=1:second_deadlock_stack=1:suppressions=${GITHUB_WORKSPACE}/sanitizers/suppressions/tsan.supp" >> ${GITHUB_ENV} + echo "UBSAN_OPTIONS=halt_on_error=false:suppressions=${GITHUB_WORKSPACE}/sanitizers/suppressions/ubsan.supp" >> ${GITHUB_ENV} + echo "LSAN_OPTIONS=halt_on_error=false:suppressions=${GITHUB_WORKSPACE}/sanitizers/suppressions/lsan.supp" >> ${GITHUB_ENV} - name: Run the separate tests if: ${{ !inputs.build_only }} diff --git a/cmake/XrplSanitizers.cmake b/cmake/XrplSanitizers.cmake index fc31e4a3ec..327f64c21f 100644 --- a/cmake/XrplSanitizers.cmake +++ b/cmake/XrplSanitizers.cmake @@ -148,8 +148,8 @@ if(is_gcc) list(JOIN SANITIZER_TYPES "," SANITIZER_TYPES_STR) # Add sanitizer to compile and link flags - list(APPEND SANITIZERS_COMPILE_FLAGS "-fsanitize=${SANITIZER_TYPES_STR}") - set(SANITIZERS_LINK_FLAGS "${SANITIZERS_RELOCATION_FLAGS}" "-fsanitize=${SANITIZER_TYPES_STR}") + list(APPEND SANITIZERS_COMPILE_FLAGS "-fsanitize-recover=${SANITIZER_TYPES_STR}") + set(SANITIZERS_LINK_FLAGS "${SANITIZERS_RELOCATION_FLAGS}" "-fsanitize-recover=${SANITIZER_TYPES_STR}") elseif(is_clang) # Add ignorelist for Clang (GCC doesn't support this) @@ -166,8 +166,8 @@ elseif(is_clang) list(JOIN SANITIZER_TYPES "," SANITIZER_TYPES_STR) # Add sanitizer to compile and link flags - list(APPEND SANITIZERS_COMPILE_FLAGS "-fsanitize=${SANITIZER_TYPES_STR}") - set(SANITIZERS_LINK_FLAGS "-fsanitize=${SANITIZER_TYPES_STR}") + list(APPEND SANITIZERS_COMPILE_FLAGS "-fsanitize-recover=${SANITIZER_TYPES_STR}") + set(SANITIZERS_LINK_FLAGS "-fsanitize-recover=${SANITIZER_TYPES_STR}") endif() message(STATUS " Compile flags: ${SANITIZERS_COMPILE_FLAGS}") diff --git a/conan/profiles/sanitizers b/conan/profiles/sanitizers index d7a622359a..f0a8945c39 100644 --- a/conan/profiles/sanitizers +++ b/conan/profiles/sanitizers @@ -24,7 +24,7 @@ include(default) {% set _ = sanitizer_list.append("float-divide-by-zero") %} {% endif %} - {% set sanitizer_flags = "-fsanitize=" ~ ",".join(sanitizer_list) ~ " " ~ model_code %} + {% set sanitizer_flags = "-fsanitize-recover=" ~ ",".join(sanitizer_list) ~ " " ~ model_code %} tools.build:cxxflags+=['{{sanitizer_flags}} {{" ".join(extra_cxxflags)}}'] tools.build:sharedlinkflags+=['{{sanitizer_flags}}'] @@ -47,7 +47,7 @@ include(default) {% set _ = sanitizer_list.append("unsigned-integer-overflow") %} {% endif %} - {% set sanitizer_flags = "-fsanitize=" ~ ",".join(sanitizer_list) %} + {% set sanitizer_flags = "-fsanitize-recover=" ~ ",".join(sanitizer_list) %} tools.build:cxxflags+=['{{sanitizer_flags}} {{" ".join(extra_cxxflags)}}'] tools.build:sharedlinkflags+=['{{sanitizer_flags}}'] diff --git a/src/libxrpl/basics/Number.cpp b/src/libxrpl/basics/Number.cpp index 5d95a46872..02de174e08 100644 --- a/src/libxrpl/basics/Number.cpp +++ b/src/libxrpl/basics/Number.cpp @@ -462,10 +462,10 @@ doNormalize( minMantissa, maxMantissa, "Number::normalize 2"); - XRPL_ASSERT_PARTS( - mantissa_ >= minMantissa && mantissa_ <= maxMantissa, - "xrpl::doNormalize", - "final mantissa fits in range"); + // XRPL_ASSERT_PARTS( + // mantissa_ >= minMantissa && mantissa_ <= maxMantissa, + // "xrpl::doNormalize", + // "final mantissa fits in range"); } template <>