summaryrefslogtreecommitdiffstats
path: root/chrome/nacl/nacl_helper_linux.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/nacl/nacl_helper_linux.cc')
-rw-r--r--chrome/nacl/nacl_helper_linux.cc26
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,