Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1426)

Unified Diff: content/common/sandbox_seccomp_bpf_linux.cc

Issue 11312209: Revert "Enable Seccomp-BPF sandbox for renderers/workers and PPAPI processes on i386." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/sandbox_seccomp_bpf_linux.cc
diff --git a/content/common/sandbox_seccomp_bpf_linux.cc b/content/common/sandbox_seccomp_bpf_linux.cc
index a2bfecf3b351ab73fae2498202e8f47c1c505092..9ee2820499d6e601534c2d567e1700ff68deb2a6 100644
--- a/content/common/sandbox_seccomp_bpf_linux.cc
+++ b/content/common/sandbox_seccomp_bpf_linux.cc
@@ -48,14 +48,6 @@ inline bool IsChromeOS() {
#endif
}
-inline bool IsArchitectureI386() {
-#if defined(__i386__)
- return true;
-#else
- return false;
-#endif
-}
-
inline bool IsArchitectureArm() {
#if defined(__arm__)
return true;
@@ -1201,18 +1193,11 @@ bool IsBaselinePolicyWatched(int sysno) {
}
}
+// x86_64 and ARM for now. Needs to be adapted and tested for i386.
ErrorCode BaselinePolicy(int sysno) {
if (IsBaselinePolicyAllowed(sysno)) {
return ErrorCode(ErrorCode::ERR_ALLOWED);
}
-
-#if defined(__i386__)
- // socketcall(2) should be tightened.
- if (IsSocketCall(sysno)) {
- return ErrorCode(ErrorCode::ERR_ALLOWED);
- }
-#endif
-
// TODO(jln): some system calls in those sets are not supposed to
// return ENOENT. Return the appropriate error.
if (IsFileSystem(sysno) || IsCurrentDirectory(sysno)) {
@@ -1287,21 +1272,17 @@ ErrorCode RendererOrWorkerProcessPolicy(int sysno, void *) {
case __NR_prlimit64:
return ErrorCode(EPERM); // See crbug.com/160157.
default:
- // These need further tightening.
#if defined(__x86_64__) || defined(__arm__)
if (IsSystemVSharedMemory(sysno))
return ErrorCode(ErrorCode::ERR_ALLOWED);
#endif
-#if defined(__i386__)
- if (IsSystemVIpc(sysno))
- return ErrorCode(ErrorCode::ERR_ALLOWED);
-#endif
// Default on the baseline policy.
return BaselinePolicy(sysno);
}
}
+// x86_64 and ARM for now. Needs to be adapted and tested for i386.
ErrorCode FlashProcessPolicy(int sysno, void *) {
switch (sysno) {
case __NR_sched_getaffinity:
@@ -1311,15 +1292,12 @@ ErrorCode FlashProcessPolicy(int sysno, void *) {
case __NR_ioctl:
return ErrorCode(ENOTTY); // Flash Access.
default:
- // These need further tightening.
#if defined(__x86_64__) || defined(__arm__)
+ // These are under investigation, and hopefully not here for the long
+ // term.
if (IsSystemVSharedMemory(sysno))
return ErrorCode(ErrorCode::ERR_ALLOWED);
#endif
-#if defined(__i386__)
- if (IsSystemVIpc(sysno))
- return ErrorCode(ErrorCode::ERR_ALLOWED);
-#endif
// Default on the baseline policy.
return BaselinePolicy(sysno);
@@ -1370,11 +1348,11 @@ void WarmupPolicy(Sandbox::EvaluateSyscall policy) {
Sandbox::EvaluateSyscall GetProcessSyscallPolicy(
const CommandLine& command_line,
const std::string& process_type) {
+#if defined(__x86_64__) || defined(__arm__)
if (process_type == switches::kGpuProcess) {
// On Chrome OS, --enable-gpu-sandbox enables the more restrictive policy.
- // However, we don't yet enable the more restrictive GPU process policy
- // on i386 or ARM.
- if (IsArchitectureI386() || IsArchitectureArm() ||
+ // However, we never enable the more restrictive GPU process policy on ARM.
+ if (IsArchitectureArm() ||
(IsChromeOS() && !command_line.HasSwitch(switches::kEnableGpuSandbox)))
return BlacklistDebugAndNumaPolicy;
else
@@ -1399,6 +1377,12 @@ Sandbox::EvaluateSyscall GetProcessSyscallPolicy(
NOTREACHED();
// This will be our default if we need one.
return AllowAllPolicy;
+#else
+ // On other architectures (currently IA32),
+ // we only have a small blacklist at the moment.
+ (void) process_type;
+ return BlacklistDebugAndNumaPolicy;
+#endif // __x86_64__ || __arm__
}
// Initialize the seccomp-bpf sandbox.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698