summaryrefslogtreecommitdiff
path: root/init/sigchld_handler.cpp
diff options
context:
space:
mode:
authorPaul Crowley <paulcrowley@google.com>2018-02-13 17:09:08 -0800
committerPaul Crowley <paulcrowley@google.com>2018-02-15 10:23:52 -0800
commit959b05553576ffc15da4334a5917ce763611ab82 (patch)
treec293ae0483137406d401de6874785466bfac3210 /init/sigchld_handler.cpp
parent0ce76f910b1794d422f8d45d77a3ee2b95ec3d3e (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.cpp11
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);