diff options
author | Samuel Tan <samueltan@google.com> | 2015-10-16 12:57:49 -0700 |
---|---|---|
committer | Samuel Tan <samueltan@google.com> | 2015-10-16 16:47:16 -0700 |
commit | 378e75c7e1261afea968228aae1713df7ebc21a0 (patch) | |
tree | 27d20bcaa3eb0ededb69557896a7d7193a01f6ea | |
parent | 8d0597a81416dfa3a3c6513718f09077cce31039 (diff) | |
download | libchromeos-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.cc | 17 | ||||
-rw-r--r-- | brillo/minijail/minijail.h | 2 |
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, |