summaryrefslogtreecommitdiff
path: root/cmds/dumpstate/utils.cpp
diff options
context:
space:
mode:
author Felipe Leme <felipeal@google.com> 2016-03-23 16:47:00 -0700
committer Felipe Leme <felipeal@google.com> 2016-03-23 16:55:41 -0700
commit73f731c30a8b7d811127b8e89e01c427b6aab622 (patch)
treec9ac6ae5e4daab4faca68300a284c0e75ad316f8 /cmds/dumpstate/utils.cpp
parentd97e18c038f23cecbe3d5e95fabf4dcd2bfaac20 (diff)
Fixed send_broadcast and fork handling issues.
send_broadcast() was calling run_command_always(char*, bool, int, char*) passing: run_command_always(NULL, 20, true, am_args); I.e., it was passing "true" (!1) as the boolean, and 1 (true) as the timeout value; the proper call should be: run_command_always(NULL, true, 20, am_args); Also, the code handling failure on child calls was calling _exit(), which quits dumpstate - it should simply return the function instead. BUG: 27804637 Change-Id: If8c9b40eddc8b76f92e6d11078dfe446a39ad4d4
Diffstat (limited to 'cmds/dumpstate/utils.cpp')
-rw-r--r--cmds/dumpstate/utils.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/cmds/dumpstate/utils.cpp b/cmds/dumpstate/utils.cpp
index 3fa2141cf1..975cd27b87 100644
--- a/cmds/dumpstate/utils.cpp
+++ b/cmds/dumpstate/utils.cpp
@@ -723,7 +723,7 @@ int run_command_always(const char *title, bool drop_root, int timeout_seconds, c
if (pid == 0) {
if (drop_root && !drop_root_user()) {
printf("*** could not drop root before running %s: %s\n", command, strerror(errno));
- _exit(-1);
+ return -1;
}
/* make sure the child dies when dumpstate dies */
@@ -739,7 +739,7 @@ int run_command_always(const char *title, bool drop_root, int timeout_seconds, c
// execvp's result will be handled after waitpid_with_timeout() below...
MYLOGD("execvp on command %s returned control (error: %s)", command, strerror(errno));
fflush(stdout);
- _exit(-1); // ...but it doesn't hurt to force exit, just in case
+ return -1; // ...but it doesn't hurt to force exit, just in case
}
/* handle parent case */
@@ -851,7 +851,7 @@ void send_broadcast(const std::string& action, const std::vector<std::string>& a
std::string args_string;
format_args(am_index + 1, am_args, &args_string);
MYLOGD("send_broadcast command: %s\n", args_string.c_str());
- run_command_always(NULL, 20, true, am_args);
+ run_command_always(NULL, true, 20, am_args);
}
size_t num_props = 0;