Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / content / common / sandbox_linux / sandbox_bpf_base_policy_linux.cc
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/common/sandbox_linux/sandbox_bpf_base_policy_linux.h"
6
7 #include <errno.h>
8
9 #include "base/logging.h"
10 #include "sandbox/linux/seccomp-bpf-helpers/baseline_policy.h"
11
12 using sandbox::bpf_dsl::ResultExpr;
13
14 namespace content {
15
16 namespace {
17
18 // The errno used for denied file system access system calls, such as open(2).
19 static const int kFSDeniedErrno = EPERM;
20
21 }  // namespace.
22
23 SandboxBPFBasePolicy::SandboxBPFBasePolicy()
24     : baseline_policy_(new sandbox::BaselinePolicy(kFSDeniedErrno)) {}
25 SandboxBPFBasePolicy::~SandboxBPFBasePolicy() {}
26
27 ResultExpr SandboxBPFBasePolicy::EvaluateSyscall(int system_call_number) const {
28   DCHECK(baseline_policy_);
29   return baseline_policy_->EvaluateSyscall(system_call_number);
30 }
31
32 ResultExpr SandboxBPFBasePolicy::InvalidSyscall() const {
33   DCHECK(baseline_policy_);
34   return baseline_policy_->InvalidSyscall();
35 }
36
37 bool SandboxBPFBasePolicy::PreSandboxHook() {
38   return true;
39 }
40
41 int SandboxBPFBasePolicy::GetFSDeniedErrno() {
42   return kFSDeniedErrno;
43 }
44
45 }  // namespace content.