Commit 642d0ad7 authored by Greg Kerr's avatar Greg Kerr Committed by Commit Bot

Reland "macOS V2 Sandbox: Report correct sandbox profile for nacl-loader."

This is a reland of 6d83f4b9

Original change's description:
> macOS V2 Sandbox: Report correct sandbox profile for nacl-loader.
>
> The nacl loader process, used only on macOS, currently tries to load an
> invalid profile type under the V2 sandbox. This loads the correct type.
>
> Bug: 892554
> Change-Id: I7b2733db426e3c91181b1f375d791d2918ac6763
> Reviewed-on: https://chromium-review.googlesource.com/c/1268671
> Reviewed-by: Robert Sesek <rsesek@chromium.org>
> Reviewed-by: Derek Schuff <dschuff@chromium.org>
> Reviewed-by: Greg Kerr <kerrnel@chromium.org>
> Reviewed-by: Tom Sepez <tsepez@chromium.org>
> Commit-Queue: Greg Kerr <kerrnel@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#598380}

TBR: rsesek@chromium.org,dschuff@chromium.org,tsepez@chromium.org

Bug: 892554
Change-Id: Ic9cd4da3a17f2a6d36b3ed7145762baf22d8c7f4
Reviewed-on: https://chromium-review.googlesource.com/c/1279201Reviewed-by: default avatarDerek Schuff <dschuff@chromium.org>
Reviewed-by: default avatarGreg Kerr <kerrnel@chromium.org>
Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599391}
parent ed6d37e3
...@@ -9,6 +9,7 @@ include_rules = [ ...@@ -9,6 +9,7 @@ include_rules = [
"+sandbox/linux/services", "+sandbox/linux/services",
"+sandbox/linux/suid", "+sandbox/linux/suid",
"+sandbox/linux/system_headers", "+sandbox/linux/system_headers",
"+sandbox/mac",
"+sandbox/sandbox_buildflags.h", "+sandbox/sandbox_buildflags.h",
"+sandbox/win/src", "+sandbox/win/src",
"+services/service_manager/sandbox", "+services/service_manager/sandbox",
......
...@@ -6,13 +6,22 @@ ...@@ -6,13 +6,22 @@
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#include "base/command_line.h"
#include "base/logging.h" #include "base/logging.h"
#include "components/nacl/common/nacl_switches.h" #include "components/nacl/common/nacl_switches.h"
#include "content/public/common/sandbox_init.h" #include "content/public/common/sandbox_init.h"
#include "sandbox/mac/seatbelt.h"
#include "sandbox/mac/seatbelt_exec.h"
#include "services/service_manager/sandbox/sandbox_type.h" #include "services/service_manager/sandbox/sandbox_type.h"
void NaClMainPlatformDelegate::EnableSandbox( void NaClMainPlatformDelegate::EnableSandbox(
const content::MainFunctionParams& parameters) { const content::MainFunctionParams& parameters) {
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
sandbox::switches::kSeatbeltClientName)) {
// Make sure the sandbox is actually enabled if the V2 flag is present.
CHECK(sandbox::Seatbelt::IsSandboxed());
} else {
CHECK(content::InitializeSandbox(service_manager::SANDBOX_TYPE_NACL_LOADER)) CHECK(content::InitializeSandbox(service_manager::SANDBOX_TYPE_NACL_LOADER))
<< "Error initializing sandbox for " << switches::kNaClLoaderProcess; << "Error initializing sandbox for " << switches::kNaClLoaderProcess;
}
} }
...@@ -126,6 +126,11 @@ SandboxType SandboxTypeFromCommandLine(const base::CommandLine& command_line) { ...@@ -126,6 +126,11 @@ SandboxType SandboxTypeFromCommandLine(const base::CommandLine& command_line) {
if (process_type == switches::kPpapiPluginProcess) if (process_type == switches::kPpapiPluginProcess)
return SANDBOX_TYPE_PPAPI; return SANDBOX_TYPE_PPAPI;
#if defined(OS_MACOSX)
if (process_type == switches::kNaClLoaderProcess)
return SANDBOX_TYPE_NACL_LOADER;
#endif
// This is a process which we don't know about. // This is a process which we don't know about.
return SANDBOX_TYPE_INVALID; return SANDBOX_TYPE_INVALID;
} }
......
...@@ -107,6 +107,7 @@ const char kEnableSandboxLogging[] = "enable-sandbox-logging"; ...@@ -107,6 +107,7 @@ const char kEnableSandboxLogging[] = "enable-sandbox-logging";
// Flags spied upon from other layers. // Flags spied upon from other layers.
const char kGpuProcess[] = "gpu-process"; const char kGpuProcess[] = "gpu-process";
const char kNaClLoaderProcess[] = "nacl-loader";
const char kPpapiBrokerProcess[] = "ppapi-broker"; const char kPpapiBrokerProcess[] = "ppapi-broker";
const char kPpapiPluginProcess[] = "ppapi"; const char kPpapiPluginProcess[] = "ppapi";
const char kRendererProcess[] = "renderer"; const char kRendererProcess[] = "renderer";
......
...@@ -59,6 +59,7 @@ SERVICE_MANAGER_SANDBOX_EXPORT extern const char kEnableSandboxLogging[]; ...@@ -59,6 +59,7 @@ SERVICE_MANAGER_SANDBOX_EXPORT extern const char kEnableSandboxLogging[];
// Flags spied upon from other layers. // Flags spied upon from other layers.
SERVICE_MANAGER_SANDBOX_EXPORT extern const char kGpuProcess[]; SERVICE_MANAGER_SANDBOX_EXPORT extern const char kGpuProcess[];
SERVICE_MANAGER_SANDBOX_EXPORT extern const char kNaClLoaderProcess[];
SERVICE_MANAGER_SANDBOX_EXPORT extern const char kPpapiBrokerProcess[]; SERVICE_MANAGER_SANDBOX_EXPORT extern const char kPpapiBrokerProcess[];
SERVICE_MANAGER_SANDBOX_EXPORT extern const char kPpapiPluginProcess[]; SERVICE_MANAGER_SANDBOX_EXPORT extern const char kPpapiPluginProcess[];
SERVICE_MANAGER_SANDBOX_EXPORT extern const char kRendererProcess[]; SERVICE_MANAGER_SANDBOX_EXPORT extern const char kRendererProcess[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment