diff options
Diffstat (limited to 'chrome/nacl/nacl_helper_linux.cc')
-rw-r--r-- | chrome/nacl/nacl_helper_linux.cc | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/chrome/nacl/nacl_helper_linux.cc b/chrome/nacl/nacl_helper_linux.cc index b53cf8d..7ffeadb 100644 --- a/chrome/nacl/nacl_helper_linux.cc +++ b/chrome/nacl/nacl_helper_linux.cc @@ -23,6 +23,7 @@ #include "content/common/main_function_params.h" #include "content/common/unix_domain_socket_posix.h" #include "ipc/ipc_switches.h" +#include "native_client/src/trusted/service_runtime/sel_memory.h" namespace { @@ -116,33 +117,20 @@ void HandleForkRequest(const std::vector<int>& child_fds) { } // namespace -static const void* g_nacl_reserved_space = NULL; -extern "C" __attribute__((visibility("default"))) -const void* nacl_helper_get_1G_address() { - return g_nacl_reserved_space; -} +static const char kNaClHelperAtZero[] = "at-zero"; -// nacl_helper_init does the real work of this module. It is invoked as -// a static constructor and never returns, preventing main() from the -// nacl_helper_bootstrap program from being called. -// -// NOTE This routine must not return. -extern "C" __attribute__((visibility("default"))) -void nacl_helper_init(int argc, char *argv[], - const char *nacl_reserved_space) { +int main(int argc, char *argv[]) { CommandLine::Init(argc, argv); base::AtExitManager exit_manager; base::RandUint64(); // acquire /dev/urandom fd before sandbox is raised std::vector<int> empty; // for SendMsg() calls g_suid_sandbox_active = (NULL != getenv("SBX_D")); - g_nacl_reserved_space = nacl_reserved_space; - if (!nacl_reserved_space) { - VLOG(1) << "nacl_reserved_space is NULL"; - } else { - VLOG(1) << "nacl_reserved_space is at " - << (void *)nacl_reserved_space; + + if (CommandLine::ForCurrentProcess()->HasSwitch(kNaClHelperAtZero)) { + g_nacl_prereserved_sandbox_addr = (void *) (uintptr_t) 0x10000; } + // Send the zygote a message to let it know we are ready to help if (!UnixDomainSocket::SendMsg(kNaClZygoteDescriptor, kNaClHelperStartupAck, |