debuggerd: fix CrasherTest.seccomp_crash_oom.

Switch from _exit to raising SIGABRT when we recurse in the fallback
handler, so that waiters see an abort instead of a regular exit.

Bug: http://b/79717060
Test: debuggerd_test32
Test: debuggerd_test64
Change-Id: Iddee1cb1b759690adf07bbb8cd0fda2faac87571
This commit is contained in:
Josh Gao 2018-05-15 17:49:59 -07:00
parent 48cf760bea
commit d2b15dd674

View file

@ -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);
}