| Index: sandbox/linux/seccomp-bpf/demo.cc
|
| diff --git a/sandbox/linux/seccomp-bpf/demo.cc b/sandbox/linux/seccomp-bpf/demo.cc
|
| index 1cf4511454a4f43e34b8dd68ecdb760b36f8ec4a..d9fd3423eeef5410d38f88137c1ab10ed12a5df8 100644
|
| --- a/sandbox/linux/seccomp-bpf/demo.cc
|
| +++ b/sandbox/linux/seccomp-bpf/demo.cc
|
| @@ -26,12 +26,15 @@
|
| #include <time.h>
|
| #include <unistd.h>
|
|
|
| +#include "base/macros.h"
|
| #include "base/posix/eintr_wrapper.h"
|
| #include "sandbox/linux/seccomp-bpf/sandbox_bpf.h"
|
| +#include "sandbox/linux/seccomp-bpf/sandbox_bpf_policy.h"
|
| #include "sandbox/linux/services/linux_syscalls.h"
|
|
|
| using sandbox::ErrorCode;
|
| using sandbox::SandboxBPF;
|
| +using sandbox::SandboxBPFPolicy;
|
| using sandbox::arch_seccomp_data;
|
|
|
| #define ERR EPERM
|
| @@ -237,7 +240,17 @@ intptr_t DefaultHandler(const struct arch_seccomp_data& data, void *) {
|
| return -ERR;
|
| }
|
|
|
| -ErrorCode Evaluator(SandboxBPF* sandbox, int sysno, void *) {
|
| +class DemoPolicy : public SandboxBPFPolicy {
|
| + public:
|
| + DemoPolicy() {}
|
| + virtual ErrorCode EvaluateSyscall(SandboxBPF* sandbox,
|
| + int sysno) const OVERRIDE;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(DemoPolicy);
|
| +};
|
| +
|
| +ErrorCode DemoPolicy::EvaluateSyscall(SandboxBPF* sandbox, int sysno) const {
|
| switch (sysno) {
|
| #if defined(__NR_accept)
|
| case __NR_accept: case __NR_accept4:
|
| @@ -420,7 +433,7 @@ int main(int argc, char *argv[]) {
|
| }
|
| SandboxBPF sandbox;
|
| sandbox.set_proc_fd(proc_fd);
|
| - sandbox.SetSandboxPolicyDeprecated(Evaluator, NULL);
|
| + sandbox.SetSandboxPolicy(new DemoPolicy());
|
| if (!sandbox.StartSandbox(SandboxBPF::PROCESS_SINGLE_THREADED)) {
|
| fprintf(stderr, "StartSandbox() failed");
|
| _exit(1);
|
|
|