added ubsan file

Signed-off-by: Pratik Mankawde <pmankawde@ripple.com>
This commit is contained in:
Pratik Mankawde
2025-11-12 12:15:45 +00:00
parent dcd0553050
commit ea4d062e68
4 changed files with 89 additions and 7 deletions

View File

@@ -171,9 +171,9 @@ jobs:
BUILD_TYPE: ${{ inputs.build_type }}
PARALLELISM: ${{ runner.os == 'Windows' && '1' || steps.nproc.outputs.nproc }}
run: |
export ASAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/asan_suppressions.txt"
export TSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/tsan_suppressions.txt"
echo "ASAN_OPTIONS=$ASAN_OPTIONS TSAN_OPTIONS=$TSAN_OPTIONS"
export ASAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/asan.supp"
export TSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/tsan.supp"
export UBSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/ubsan.supp"
ctest \
--output-on-failure \
-C "${BUILD_TYPE}" \
@@ -185,9 +185,9 @@ jobs:
env:
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
run: |
export ASAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/asan_suppressions.txt"
export TSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/tsan_suppressions.txt"
echo "ASAN_OPTIONS=$ASAN_OPTIONS TSAN_OPTIONS=$TSAN_OPTIONS"
export ASAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/asan.supp"
export TSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/tsan.supp"
export UBSAN_OPTIONS="suppressions=$GITHUB_WORKSPACE/external/ubsan.supp"
./rippled --unittest --unittest-jobs "${BUILD_NPROC}"
- name: Debug failure (Linux)

View File

@@ -1,4 +1,4 @@
# Suppress voilations in Boost libraries
interceptor_via_lib:^libboost_.*
# Suprpress voilations in external code
interceptor_name:^external/*
interceptor_name:^external/.*

82
external/ubsan.supp vendored Normal file
View File

@@ -0,0 +1,82 @@
# Suppress UBSan errors in external code by source file path
# This matches any source file under the external/ directory
undefined:external/*
null:external/*
nullability-assign:external/*
pointer-overflow:external/*
pointer-overflow:external/*
pointer-overflow:external/*
pointer-overflow:external/*
alignment:external/*
alignment:external/*
object-size:external/*
signed-integer-overflow:external/*
unsigned-integer-overflow:external/*
integer-divide-by-zero:external/*
float-divide-by-zero:external/*
invalid-builtin-use:external/*
invalid-objc-cast:external/*
implicit-unsigned-integer-truncation:external/*
implicit-signed-integer-truncation:external/*
implicit-integer-sign-change:external/*
implicit-signed-integer-truncation,implicit-integer-sign-change:external/*
shift-base:external/*
shift-exponent:external/*
bounds:external/*
unreachable:external/*
return:external/*
vla-bound:external/*
float-cast-overflow:external/*
bool:external/*
enum:external/*
function:external/*
returns-nonnull-attribute:external/*
nullability-return:external/*
nonnull-attribute:external/*
nullability-arg:external/*
vptr:external/*
cfi:external/*
vptr_check:external/*
# Suppress all UBSan errors in Boost libraries
# This matches any files containing "boost" in its path or name
# src:*/boost/*
undefined:*/boost/*
null:*/boost/*
nullability-assign:*/boost/*
pointer-overflow:*/boost/*
pointer-overflow:*/boost/*
pointer-overflow:*/boost/*
pointer-overflow:*/boost/*
alignment:*/boost/*
alignment:*/boost/*
object-size:*/boost/*
signed-integer-overflow:*/boost/*
unsigned-integer-overflow:*/boost/*
integer-divide-by-zero:*/boost/*
float-divide-by-zero:*/boost/*
invalid-builtin-use:*/boost/*
invalid-objc-cast:*/boost/*
implicit-unsigned-integer-truncation:*/boost/*
implicit-signed-integer-truncation:*/boost/*
implicit-integer-sign-change:*/boost/*
implicit-signed-integer-truncation,implicit-integer-sign-change:*/boost/*
shift-base:*/boost/*
shift-exponent:*/boost/*
bounds:*/boost/*
unreachable:*/boost/*
return:*/boost/*
vla-bound:*/boost/*
float-cast-overflow:*/boost/*
bool:*/boost/*
enum:*/boost/*
function:*/boost/*
returns-nonnull-attribute:*/boost/*
nullability-return:*/boost/*
nonnull-attribute:*/boost/*
nullability-arg:*/boost/*
vptr:*/boost/*
cfi:*/boost/*
vptr_check:*/boost/*