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.
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 @@
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 @@
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 @@
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,