diff options
| author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-05-19 02:14:33 +0000 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-05-19 02:14:33 +0000 |
| commit | 74bf81443fef2ff48bb80cc24b678aff8bdd462a (patch) | |
| tree | 488597ca33e147341685eb1165077c7c2c2cbced /debuggerd | |
| parent | 98214c81d157d4cef7f5ca6cbd6f447e596beb80 (diff) | |
| parent | d2b15dd6749eefaa76a12e0466693e4336e9b8a7 (diff) | |
| download | system_core-74bf81443fef2ff48bb80cc24b678aff8bdd462a.tar.gz system_core-74bf81443fef2ff48bb80cc24b678aff8bdd462a.tar.bz2 system_core-74bf81443fef2ff48bb80cc24b678aff8bdd462a.zip | |
Merge "debuggerd: fix CrasherTest.seccomp_crash_oom."
Diffstat (limited to 'debuggerd')
| -rw-r--r-- | debuggerd/handler/debuggerd_fallback.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/debuggerd/handler/debuggerd_fallback.cpp b/debuggerd/handler/debuggerd_fallback.cpp index dea2e17eb..079a574d3 100644 --- a/debuggerd/handler/debuggerd_fallback.cpp +++ b/debuggerd/handler/debuggerd_fallback.cpp @@ -304,7 +304,16 @@ static void crash_handler(siginfo_t* info, ucontext_t* ucontext, void* abort_mes crash_mutex.lock(); if (lock_count++ > 0) { - async_safe_format_log(ANDROID_LOG_ERROR, "libc", "recursed signal handler call, exiting"); + async_safe_format_log(ANDROID_LOG_ERROR, "libc", "recursed signal handler call, aborting"); + signal(SIGABRT, SIG_DFL); + raise(SIGABRT); + sigset_t sigset; + sigemptyset(&sigset); + sigaddset(&sigset, SIGABRT); + sigprocmask(SIG_UNBLOCK, &sigset, nullptr); + + // Just in case... + async_safe_format_log(ANDROID_LOG_ERROR, "libc", "abort didn't exit, exiting"); _exit(1); } |
