Chromium Code Reviews| Index: sandbox/linux/services/namespace_sandbox.cc |
| diff --git a/sandbox/linux/services/namespace_sandbox.cc b/sandbox/linux/services/namespace_sandbox.cc |
| index 23796446f3044e88a6ddcb5d6e38fb41156e8456..3d10e47cf88f2d584cf311a58ffb9476ef61142e 100644 |
| --- a/sandbox/linux/services/namespace_sandbox.cc |
| +++ b/sandbox/linux/services/namespace_sandbox.cc |
| @@ -24,6 +24,7 @@ |
| #include "base/process/process.h" |
| #include "sandbox/linux/services/credentials.h" |
| #include "sandbox/linux/services/namespace_utils.h" |
| +#include "sandbox/linux/system_headers/linux_signal.h" |
| namespace sandbox { |
| @@ -65,6 +66,7 @@ void SetEnvironForNamespaceType(base::EnvironmentMap* environ, |
| // An empty string causes the env var to be unset in the child process. |
| (*environ)[env_var] = value ? "1" : ""; |
| } |
| +#endif // !defined(OS_NACL_NONSFI) |
| // Linux supports up to 64 signals. This should be updated if that ever changes. |
| int g_signal_exit_codes[64]; |
| @@ -79,7 +81,6 @@ void TerminationSignalHandler(int sig) { |
| _exit(NamespaceSandbox::kDefaultExitCode); |
| } |
| -#endif // !defined(OS_NACL_NONSFI) |
| } // namespace |
| @@ -129,11 +130,12 @@ base::Process NamespaceSandbox::LaunchProcess( |
| return base::LaunchProcess(argv, launch_options); |
| } |
| +#endif // !defined(OS_NACL_NONSFI) |
| // static |
| pid_t NamespaceSandbox::ForkInNewPidNamespace(bool drop_capabilities_in_child) { |
| const pid_t pid = |
| - base::ForkWithFlags(CLONE_NEWPID | SIGCHLD, nullptr, nullptr); |
| + base::ForkWithFlags(CLONE_NEWPID | LINUX_SIGCHLD, nullptr, nullptr); |
| if (pid < 0) { |
| return pid; |
| } |
| @@ -168,10 +170,13 @@ bool NamespaceSandbox::InstallTerminationSignalHandler( |
| struct sigaction old_action; |
| PCHECK(sigaction(sig, nullptr, &old_action) == 0); |
|
hidehiko
2015/06/16 05:41:53
Youl'll need to call sys_sigaction instead. Ditto
rickyz (no longer on Chrome)
2015/06/16 20:57:07
Oops, done - do you know whether we need our own d
|
| +#if !defined(OS_NACL_NONSFI) |
| if (old_action.sa_flags & SA_SIGINFO && |
| old_action.sa_sigaction != nullptr) { |
| return false; |
| - } else if (old_action.sa_handler != SIG_DFL) { |
| + } else |
|
hidehiko
2015/06/16 05:41:53
nit: you don't need "else"
rickyz (no longer on Chrome)
2015/06/16 20:57:06
Done.
|
| +#endif |
| + if (old_action.sa_handler != SIG_DFL) { |
|
hidehiko
2015/06/16 05:41:53
SIG_DFL needs to be LINUX_SIG_DFL.
rickyz (no longer on Chrome)
2015/06/16 20:57:06
Done.
|
| return false; |
| } |
| @@ -188,7 +193,6 @@ bool NamespaceSandbox::InstallTerminationSignalHandler( |
| PCHECK(sigaction(sig, &action, nullptr) == 0); |
| return true; |
| } |
| -#endif // !defined(OS_NACL_NONSFI) |
| // static |
| bool NamespaceSandbox::InNewUserNamespace() { |