diff options
author | fanquake <fanquake@gmail.com> | 2023-11-07 14:05:25 +0000 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2023-11-07 16:57:23 +0000 |
commit | 49d953281df5618430728c0a88471695207f086b (patch) | |
tree | f68b9a6fdd6b894b8941d028b59d069aab1539b3 | |
parent | 3da69c464f16841a5c8d9fcc9c63238ab807d5ff (diff) | |
download | bitcoin-49d953281df5618430728c0a88471695207f086b.tar.xz |
fuzz: explicitly specify llvm-symbolizer path in runner
It's not completely clear to me why this needs to be explicitly
specified in some environments, and not in others, while at the same time
that `llvm-symbolizer` is already in PATH, but this has fixed the 2 issues
outlined in #28147.
Use `LLVM_SYMBOLIZER_PATH` as the env var, as that is somewhat also used
inside LLVM, but not consistently, i.e it's checked for in the asan_symbolize
script, but not in in the ubsan_symbolize script, or from in compiler-rt.
-rwxr-xr-x | ci/test/00_setup_env_native_fuzz.sh | 1 | ||||
-rwxr-xr-x | test/fuzz/test_runner.py | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/ci/test/00_setup_env_native_fuzz.sh b/ci/test/00_setup_env_native_fuzz.sh index 122f044b58..3585b2b417 100755 --- a/ci/test/00_setup_env_native_fuzz.sh +++ b/ci/test/00_setup_env_native_fuzz.sh @@ -18,3 +18,4 @@ export CI_CONTAINER_CAP="--cap-add SYS_PTRACE" # If run with (ASan + LSan), the export BITCOIN_CONFIG="--enable-fuzz --with-sanitizers=fuzzer,address,undefined,float-divide-by-zero,integer \ CC='clang-17 -ftrivial-auto-var-init=pattern' CXX='clang++-17 -ftrivial-auto-var-init=pattern'" export CCACHE_MAXSIZE=200M +export LLVM_SYMBOLIZER_PATH="/usr/bin/llvm-symbolizer-17" diff --git a/test/fuzz/test_runner.py b/test/fuzz/test_runner.py index ec74f7705c..e72977fac0 100755 --- a/test/fuzz/test_runner.py +++ b/test/fuzz/test_runner.py @@ -16,11 +16,14 @@ import sys def get_fuzz_env(*, target, source_dir): + symbolizer = os.environ.get('LLVM_SYMBOLIZER_PATH', "/usr/bin/llvm-symbolizer") return { 'FUZZ': target, 'UBSAN_OPTIONS': f'suppressions={source_dir}/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1:report_error_type=1', + 'UBSAN_SYMBOLIZER_PATH':symbolizer, "ASAN_OPTIONS": "detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1", + 'ASAN_SYMBOLIZER_PATH':symbolizer, } |