Mitch Phillips 6a42cbf6d2 [GWP-ASan] Add inbuilt options parser.
Adds a modified options parser (shamefully pulled from Scudo, which
shamefully pulled it from sanitizer-common) to GWP-ASan. This allows
customers (Android) to parse options strings in a common way.

Depends on D94117.

AOSP side of these patches is staged at:

 - sepolicy (sysprops should only be settable by the shell, in both root and
 unrooted conditions):
 https://android-review.googlesource.com/c/platform/system/sepolicy/+/1517238

 - zygote updates:
 https://android-review.googlesource.com/c/platform/frameworks/base/+/1515009

 - bionic changes to add `gwp_asan.<process_name>` system property, and
 GWP_ASAN_OPTIONS environment variable:
 https://android-review.googlesource.com/c/platform/bionic/+/1514989

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D92696
2021-01-15 12:57:05 -08:00

34 lines
1.4 KiB
CMake

# Build the stack trace compressor fuzzer. This will require Clang >= 6.0.0, as
# -fsanitize=fuzzer-no-link was not a valid command line flag prior to this.
if (LLVM_USE_SANITIZE_COVERAGE)
add_executable(stack_trace_compressor_fuzzer
../../lib/gwp_asan/stack_trace_compressor.cpp
../../lib/gwp_asan/stack_trace_compressor.h
stack_trace_compressor_fuzzer.cpp)
set_target_properties(
stack_trace_compressor_fuzzer PROPERTIES FOLDER "Fuzzers")
target_compile_options(
stack_trace_compressor_fuzzer PRIVATE -fsanitize=fuzzer-no-link)
set_target_properties(
stack_trace_compressor_fuzzer PROPERTIES LINK_FLAGS -fsanitize=fuzzer)
target_include_directories(
stack_trace_compressor_fuzzer PRIVATE ../../lib/)
add_executable(options_parser_fuzzer
../../lib/gwp_asan/optional/options_parser.cpp
../../lib/gwp_asan/optional/options_parser.h
options_parser_fuzzer.cpp)
set_target_properties(
options_parser_fuzzer PROPERTIES FOLDER "Fuzzers")
target_compile_options(
options_parser_fuzzer PRIVATE -fsanitize=fuzzer-no-link)
set_target_properties(
options_parser_fuzzer PROPERTIES LINK_FLAGS -fsanitize=fuzzer)
target_include_directories(
options_parser_fuzzer PRIVATE ../../lib/)
if (TARGET gwp_asan)
add_dependencies(gwp_asan stack_trace_compressor_fuzzer options_parser_fuzzer)
endif()
endif()