Use Minijail to launch 'logger' as a regular user.
BUG=chromium-os:33983
TEST=emerge shill, reboot, check that logger is running as user 'syslog'.
TEST=manual, as described in https://gerrit.chromium.org/gerrit/#/c/23912/
TEST=smoke suite.
Change-Id: I54068a223daeee65ff480a720b73965aaf3e64ce
Reviewed-on: https://gerrit.chromium.org/gerrit/31964
Tested-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Commit-Ready: Jorge Lucangeli Obes <jorgelo@chromium.org>
diff --git a/minijail.cc b/minijail.cc
index 3cb7a4d..15206d8 100644
--- a/minijail.cc
+++ b/minijail.cc
@@ -43,6 +43,11 @@
return minijail_run_pid(jail, args[0], args.data(), pid) == 0;
}
+bool Minijail::RunPipe(struct minijail *jail,
+ vector<char *> args, pid_t *pid, int *stdin) {
+ return minijail_run_pid_pipe(jail, args[0], args.data(), pid, stdin) == 0;
+}
+
bool Minijail::RunAndDestroy(struct minijail *jail,
vector<char *> args, pid_t *pid) {
bool res = Run(jail, args, pid);
@@ -50,4 +55,11 @@
return res;
}
+bool Minijail::RunPipeAndDestroy(struct minijail *jail,
+ vector<char *> args, pid_t *pid, int *stdin) {
+ bool res = RunPipe(jail, args, pid, stdin);
+ Destroy(jail);
+ return res;
+}
+
} // namespace shill