Index: content/common/sandbox_linux/bpf_gpu_policy_linux.cc |
diff --git a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc |
index 74f9871fc30a92c8cd3abca5527c5ebb896937d1..83e07acb3ee86f45e1a719bcf497e39d3ce408fb 100644 |
--- a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc |
+++ b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc |
@@ -169,14 +169,29 @@ bool UpdateProcessTypeAndEnableSandbox(sandbox::bpf_dsl::SandboxBPFDSLPolicy* ( |
} // namespace |
-GpuProcessPolicy::GpuProcessPolicy() : broker_process_(NULL) {} |
+GpuProcessPolicy::GpuProcessPolicy() : GpuProcessPolicy(false) { |
+} |
+ |
+GpuProcessPolicy::GpuProcessPolicy(bool allow_mincore) |
+ : broker_process_(NULL), allow_mincore_(allow_mincore) { |
+} |
GpuProcessPolicy::~GpuProcessPolicy() {} |
// Main policy for x86_64/i386. Extended by CrosArmGpuProcessPolicy. |
ResultExpr GpuProcessPolicy::EvaluateSyscall(int sysno) const { |
switch (sysno) { |
+ case __NR_access: |
Jorge Lucangeli Obes
2014/10/20 19:52:59
While we order things mostly alphabetically, we do
|
+ DCHECK(broker_process_); |
+ return Trap(GpuSIGSYS_Handler, broker_process_); |
case __NR_ioctl: |
+ return Allow(); |
+ case __NR_mincore: |
+ if (allow_mincore_) { |
+ return Allow(); |
+ } else { |
+ return SandboxBPFBasePolicy::EvaluateSyscall(sysno); |
+ } |
#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) |
// The Nvidia driver uses flags not in the baseline policy |
// (MAP_LOCKED | MAP_EXECUTABLE | MAP_32BIT) |
@@ -188,7 +203,6 @@ ResultExpr GpuProcessPolicy::EvaluateSyscall(int sysno) const { |
// TODO(jln): restrict prctl. |
case __NR_prctl: |
return Allow(); |
- case __NR_access: |
case __NR_open: |
case __NR_openat: |
DCHECK(broker_process_); |