summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author jp abgrall <jpa@google.com> 2013-05-28 15:46:14 -0700
committer Android Git Automerger <android-git-automerger@android.com> 2013-05-28 15:46:14 -0700
commit4b2b0a7494c872b7d545a9abe2d08ca0d0325073 (patch)
tree58a6753daa24188e8e7877ce1f93fd90aff7010b
parent31ab96fcc1810e044f8bdb35d3bfbbba2fa6bafd (diff)
parent74bd799ec20d2420459fa382533b1cc39ca9a54c (diff)
am 74bd799e: Merge "Exit dumpstate on SIGPIPE to avoid cascading child crashes"
* commit '74bd799ec20d2420459fa382533b1cc39ca9a54c': Exit dumpstate on SIGPIPE to avoid cascading child crashes
-rw-r--r--cmds/dumpstate/dumpstate.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/cmds/dumpstate/dumpstate.c b/cmds/dumpstate/dumpstate.c
index 9a332a96d8..89bea917d7 100644
--- a/cmds/dumpstate/dumpstate.c
+++ b/cmds/dumpstate/dumpstate.c
@@ -315,7 +315,13 @@ static void usage() {
);
}
+static void sigpipe_handler(int n) {
+ (void)n;
+ exit(EXIT_FAILURE);
+}
+
int main(int argc, char *argv[]) {
+ struct sigaction sigact;
int do_add_date = 0;
int do_compress = 0;
int do_vibrate = 1;
@@ -336,7 +342,9 @@ int main(int argc, char *argv[]) {
}
ALOGI("begin\n");
- signal(SIGPIPE, SIG_IGN);
+ memset(&sigact, 0, sizeof(sigact));
+ sigact.sa_handler = sigpipe_handler;
+ sigaction(SIGPIPE, &sigact, NULL);
/* set as high priority, and protect from OOM killer */
setpriority(PRIO_PROCESS, 0, -20);