summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Tan <samueltan@google.com>2015-10-16 12:57:49 -0700
committerSamuel Tan <samueltan@google.com>2015-10-16 16:47:16 -0700
commit378e75c7e1261afea968228aae1713df7ebc21a0 (patch)
tree27d20bcaa3eb0ededb69557896a7d7193a01f6ea
parent8d0597a81416dfa3a3c6513718f09077cce31039 (diff)
downloadlibchromeos-378e75c7e1261afea968228aae1713df7ebc21a0.tar.gz
libchromeos: minijail: do not use ld preload API functions on Android
When building for Android, do not use the minijail_run_pid_pipe* API funtions that use LD_PRELOAD. Instead, use the *_no_preload versions of these functions. While there, replace the use of minijail_run_pid_pipe() with minijail_run_pid_pipes(). BUG: 24577038 Change-Id: Ie29a0f762e7810587f49199679dcc9d90acd465d TEST: unit tests pass.
-rw-r--r--brillo/minijail/minijail.cc17
-rw-r--r--brillo/minijail/minijail.h2
2 files changed, 15 insertions, 4 deletions
diff --git a/brillo/minijail/minijail.cc b/brillo/minijail/minijail.cc
index b72f41b..0f2efaa 100644
--- a/brillo/minijail/minijail.cc
+++ b/brillo/minijail/minijail.cc
@@ -83,7 +83,13 @@ 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;
+#if defined(__ANDROID__)
+ return minijail_run_pid_pipes_no_preload(jail, args[0], args.data(), pid,
+ stdin, NULL, NULL) == 0;
+#else
+ return minijail_run_pid_pipes(jail, args[0], args.data(), pid, stdin, NULL,
+ NULL) == 0;
+#endif // __ANDROID__
}
bool Minijail::RunPipes(struct minijail* jail,
@@ -92,8 +98,13 @@ bool Minijail::RunPipes(struct minijail* jail,
int* stdin,
int* stdout,
int* stderr) {
- return minijail_run_pid_pipes(
- jail, args[0], args.data(), pid, stdin, stdout, stderr) == 0;
+#if defined(__ANDROID__)
+ return minijail_run_pid_pipes_no_preload(jail, args[0], args.data(), pid,
+ stdin, stdout, stderr) == 0;
+#else
+ return minijail_run_pid_pipes(jail, args[0], args.data(), pid, stdin, stdout,
+ stderr) == 0;
+#endif // __ANDROID__
}
bool Minijail::RunAndDestroy(struct minijail* jail,
diff --git a/brillo/minijail/minijail.h b/brillo/minijail/minijail.h
index a04268d..eaa85a8 100644
--- a/brillo/minijail/minijail.h
+++ b/brillo/minijail/minijail.h
@@ -63,7 +63,7 @@ class Minijail {
std::vector<char*> args,
int* status);
- // minijail_run_pid_pipe
+ // minijail_run_pid_pipes, with |pstdout_fd| and |pstderr_fd| set to NULL.
virtual bool RunPipe(struct minijail* jail,
std::vector<char*> args,
pid_t* pid,