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

Unified Diff: components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc

Issue 260793003: [MIPS] Add seccomp bpf support (Closed) Base URL: https://git.chromium.org/git/chromium/src.git@master
Patch Set: Fix problem with truncation of syscall value in CrashSIGSYS_Handler Created 6 years, 7 months 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
Index: components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc
diff --git a/components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc b/components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc
index 7626bf29196e220d1021b0ed5ad9b9deb5371a34..493183db06de867776591c4120d60180766a4551 100644
--- a/components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc
+++ b/components/nacl/loader/sandbox_linux/nacl_bpf_sandbox_linux.cc
@@ -44,7 +44,7 @@ bool IsSystemVSharedMemory(int sysno) {
}
#endif
-#if defined(__i386__)
+#if defined(__i386__) || defined(__mips__)
// Big system V multiplexing system call.
bool IsSystemVIpc(int sysno) {
switch (sysno) {
@@ -76,17 +76,17 @@ ErrorCode NaClBPFSandboxPolicy::EvaluateSyscall(
switch (sysno) {
// TODO(jln): NaCl's GDB debug stub uses the following socket system calls,
// see if it can be restricted a bit.
-#if defined(__x86_64__) || defined(__arm__)
+#if defined(__x86_64__) || defined(__arm__) || defined(__mips__)
// transport_common.cc needs this.
case __NR_accept:
case __NR_setsockopt:
-#elif defined(__i386__)
+#elif defined(__i386__) || defined(__mips__)
case __NR_socketcall:
#endif
// trusted/service_runtime/linux/thread_suspension.c needs sigwait() and is
// used by NaCl's GDB debug stub.
case __NR_rt_sigtimedwait:
-#if defined(__i386__)
+#if defined(__i386__) || defined(__mips__)
// Needed on i386 to set-up the custom segments.
case __NR_modify_ldt:
#endif
@@ -97,7 +97,7 @@ ErrorCode NaClBPFSandboxPolicy::EvaluateSyscall(
// Below is fairly similar to the policy for a Chromium renderer.
// TODO(jln): restrict ioctl() and prctl().
case __NR_ioctl:
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
case __NR_getrlimit:
#endif
#if defined(__i386__) || defined(__arm__)
@@ -133,7 +133,7 @@ ErrorCode NaClBPFSandboxPolicy::EvaluateSyscall(
#if defined(__x86_64__) || defined(__arm__)
if (IsSystemVSharedMemory(sysno))
return ErrorCode(ErrorCode::ERR_ALLOWED);
-#elif defined(__i386__)
+#elif defined(__i386__) || defined(__mips__)
if (IsSystemVIpc(sysno))
return ErrorCode(ErrorCode::ERR_ALLOWED);
#endif
@@ -157,9 +157,7 @@ void RunSandboxSanityChecks() {
#else
-#if !defined(ARCH_CPU_MIPS_FAMILY)
#error "Seccomp-bpf disabled on supported architecture!"
-#endif
#endif // defined(USE_SECCOMP_BPF)

Powered by Google App Engine
This is Rietveld 408576698