diff options
author | Paul Crowley <paulcrowley@google.com> | 2018-02-13 17:09:08 -0800 |
---|---|---|
committer | Paul Crowley <paulcrowley@google.com> | 2018-02-15 10:23:52 -0800 |
commit | 959b05553576ffc15da4334a5917ce763611ab82 (patch) | |
tree | c293ae0483137406d401de6874785466bfac3210 /init/sigchld_handler.cpp | |
parent | 0ce76f910b1794d422f8d45d77a3ee2b95ec3d3e (diff) |
If enablefilecrypto or init_user0 fails, reboot into recovery.
Test: Roll back PLATFORM_SECURITY_PATCH, ensure recovery dialog is seen
Bug: 70487538
Change-Id: Iceb6af3f9d6aea6bc646dbb4b5d29dffcb284736
Diffstat (limited to 'init/sigchld_handler.cpp')
-rw-r--r-- | init/sigchld_handler.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/init/sigchld_handler.cpp b/init/sigchld_handler.cpp index 072a0fb0b..badacaf1c 100644 --- a/init/sigchld_handler.cpp +++ b/init/sigchld_handler.cpp @@ -84,16 +84,15 @@ static bool ReapOneProcess() { } } - auto status = siginfo.si_status; - if (WIFEXITED(status)) { - LOG(INFO) << name << " exited with status " << WEXITSTATUS(status) << wait_string; - } else if (WIFSIGNALED(status)) { - LOG(INFO) << name << " killed by signal " << WTERMSIG(status) << wait_string; + if (siginfo.si_code == CLD_EXITED) { + LOG(INFO) << name << " exited with status " << siginfo.si_status << wait_string; + } else { + LOG(INFO) << name << " received signal " << siginfo.si_status << wait_string; } if (!service) return true; - service->Reap(); + service->Reap(siginfo); if (service->flags() & SVC_TEMPORARY) { ServiceList::GetInstance().RemoveService(*service); |