diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc b/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc index 15a253feb1168371961a2e16032a9c6e8287fdcf..52c08d8e3ce2ae45eb690611d667a73465021dcf 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc @@ -275,3 +275,8 @@ COMMON_FLAG(bool, detect_write_exec, false, COMMON_FLAG(bool, test_only_emulate_no_memorymap, false, "TEST ONLY fail to read memory mappings to emulate sanitized " "\"init\"") + +// OHOS_LOCAL begin +COMMON_FLAG(bool, run_on_tw, false, + "If true, no abort.") +// OHOS_LOCAL end \ No newline at end of file diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp index 31eebd293f299a80d66cf98be365f99d13462c47..9db928f92ab057442bc28b73edd62a37e899c53d 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp +++ b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp @@ -250,6 +250,12 @@ void HandleDeadlySignal(void *siginfo, void *context, u32 tid, ScopedErrorReportLock rl; SignalContext sig(siginfo, context); ReportDeadlySignal(sig, tid, unwind, unwind_context); +// OHOS_LOCAL begin + if (!common_flags()->run_on_tw) { + Report("ABORTING\n"); + Die(); + } +// OHOS_LOCAL end } #endif // !SANITIZER_FUCHSIA && !SANITIZER_GO