Index: sandbox/linux/seccomp-bpf/sandbox_bpf.cc |
diff --git a/sandbox/linux/seccomp-bpf/sandbox_bpf.cc b/sandbox/linux/seccomp-bpf/sandbox_bpf.cc |
index 8a9b3f7c4c80970d4becdeb8764389acf55ee914..8292ae61653c7d6690f2d5f0a39678f3c2e9fa5a 100644 |
--- a/sandbox/linux/seccomp-bpf/sandbox_bpf.cc |
+++ b/sandbox/linux/seccomp-bpf/sandbox_bpf.cc |
@@ -29,6 +29,7 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/posix/eintr_wrapper.h" |
#include "sandbox/linux/bpf_dsl/bpf_dsl.h" |
+#include "sandbox/linux/bpf_dsl/policy.h" |
#include "sandbox/linux/bpf_dsl/policy_compiler.h" |
#include "sandbox/linux/seccomp-bpf/codegen.h" |
#include "sandbox/linux/seccomp-bpf/die.h" |
@@ -43,7 +44,6 @@ |
using sandbox::bpf_dsl::Allow; |
using sandbox::bpf_dsl::Error; |
using sandbox::bpf_dsl::ResultExpr; |
-using sandbox::bpf_dsl::SandboxBPFDSLPolicy; |
namespace sandbox { |
@@ -67,7 +67,7 @@ void WriteFailedStderrSetupMessage(int out_fd) { |
// We define a really simple sandbox policy. It is just good enough for us |
// to tell that the sandbox has actually been activated. |
-class ProbePolicy : public SandboxBPFDSLPolicy { |
+class ProbePolicy : public bpf_dsl::Policy { |
public: |
ProbePolicy() {} |
virtual ~ProbePolicy() {} |
@@ -96,7 +96,7 @@ void ProbeProcess(void) { |
} |
} |
-class AllowAllPolicy : public SandboxBPFDSLPolicy { |
+class AllowAllPolicy : public bpf_dsl::Policy { |
public: |
AllowAllPolicy() {} |
virtual ~AllowAllPolicy() {} |
@@ -153,9 +153,8 @@ bool SandboxBPF::IsValidSyscallNumber(int sysnum) { |
return SyscallSet::IsValid(sysnum); |
} |
-bool SandboxBPF::RunFunctionInPolicy( |
- void (*code_in_sandbox)(), |
- scoped_ptr<bpf_dsl::SandboxBPFDSLPolicy> policy) { |
+bool SandboxBPF::RunFunctionInPolicy(void (*code_in_sandbox)(), |
+ scoped_ptr<bpf_dsl::Policy> policy) { |
// Block all signals before forking a child process. This prevents an |
// attacker from manipulating our test by sending us an unexpected signal. |
sigset_t old_mask, new_mask; |
@@ -274,12 +273,10 @@ bool SandboxBPF::RunFunctionInPolicy( |
} |
bool SandboxBPF::KernelSupportSeccompBPF() { |
- return RunFunctionInPolicy( |
- ProbeProcess, |
- scoped_ptr<bpf_dsl::SandboxBPFDSLPolicy>(new ProbePolicy())) && |
- RunFunctionInPolicy( |
- TryVsyscallProcess, |
- scoped_ptr<bpf_dsl::SandboxBPFDSLPolicy>(new AllowAllPolicy())); |
+ return RunFunctionInPolicy(ProbeProcess, |
+ scoped_ptr<bpf_dsl::Policy>(new ProbePolicy())) && |
+ RunFunctionInPolicy(TryVsyscallProcess, |
+ scoped_ptr<bpf_dsl::Policy>(new AllowAllPolicy())); |
} |
// static |
@@ -423,7 +420,7 @@ bool SandboxBPF::StartSandbox(SandboxThreadState thread_state) { |
} |
// Don't take a scoped_ptr here, polymorphism make their use awkward. |
-void SandboxBPF::SetSandboxPolicy(bpf_dsl::SandboxBPFDSLPolicy* policy) { |
+void SandboxBPF::SetSandboxPolicy(bpf_dsl::Policy* policy) { |
DCHECK(!policy_); |
if (sandbox_has_started_) { |
SANDBOX_DIE("Cannot change policy after sandbox has started"); |