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

Unified Diff: sandbox/linux/bpf_dsl/policy_compiler.h

Issue 761903003: Update from https://crrev.com/306655 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « sandbox/linux/bpf_dsl/bpf_dsl_unittest.cc ('k') | sandbox/linux/bpf_dsl/policy_compiler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sandbox/linux/bpf_dsl/policy_compiler.h
diff --git a/sandbox/linux/bpf_dsl/policy_compiler.h b/sandbox/linux/bpf_dsl/policy_compiler.h
index 4ef8cf38d82c6df6c88a9790ea4a5afc7625ab55..8737c422db30323063a9722214a2adfe24351a98 100644
--- a/sandbox/linux/bpf_dsl/policy_compiler.h
+++ b/sandbox/linux/bpf_dsl/policy_compiler.h
@@ -13,6 +13,7 @@
#include "base/macros.h"
#include "base/memory/scoped_ptr.h"
+#include "sandbox/linux/bpf_dsl/bpf_dsl_forward.h"
#include "sandbox/linux/seccomp-bpf/codegen.h"
#include "sandbox/linux/seccomp-bpf/errorcode.h"
#include "sandbox/sandbox_export.h"
@@ -37,25 +38,9 @@ class SANDBOX_EXPORT PolicyCompiler {
// the specified error number.
ErrorCode Error(int err);
- // We can use ErrorCode to request calling of a trap handler. This method
- // performs the required wrapping of the callback function into an
- // ErrorCode object.
- // The "aux" field can carry a pointer to arbitrary data. See EvaluateSyscall
- // for a description of how to pass data from SetSandboxPolicy() to a Trap()
- // handler.
- ErrorCode Trap(TrapRegistry::TrapFnc fnc, const void* aux);
-
- // Calls a user-space trap handler and disables all sandboxing for system
- // calls made from this trap handler.
- // This feature is available only if explicitly enabled by the user having
- // set the CHROME_SANDBOX_DEBUGGING environment variable.
- // Returns an ET_INVALID ErrorCode, if called when not enabled.
- // NOTE: This feature, by definition, disables all security features of
- // the sandbox. It should never be used in production, but it can be
- // very useful to diagnose code that is incompatible with the sandbox.
- // If even a single system call returns "UnsafeTrap", the security of
- // entire sandbox should be considered compromised.
- ErrorCode UnsafeTrap(TrapRegistry::TrapFnc fnc, const void* aux);
+ // Trap returns an ErrorCode to indicate the system call should
+ // instead invoke a trap handler.
+ ErrorCode Trap(TrapRegistry::TrapFnc fnc, const void* aux, bool safe);
// UnsafeTraps require some syscalls to always be allowed.
// This helper function returns true for these calls.
@@ -77,9 +62,6 @@ class SANDBOX_EXPORT PolicyCompiler {
const ErrorCode& passed,
const ErrorCode& failed);
- // Kill the program and print an error message.
- ErrorCode Kill(const char* msg);
-
// Returns the fatal ErrorCode that is used to indicate that somebody
// attempted to pass a 64bit value in a 32bit system call argument.
// This method is primarily needed for testing purposes.
@@ -88,7 +70,6 @@ class SANDBOX_EXPORT PolicyCompiler {
private:
struct Range;
typedef std::vector<Range> Ranges;
- typedef std::map<uint32_t, ErrorCode> ErrMap;
typedef std::set<ErrorCode, struct ErrorCode::LessThan> Conds;
// Used by CondExpressionHalf to track which half of the argument it's
@@ -133,6 +114,10 @@ class SANDBOX_EXPORT PolicyCompiler {
CodeGen::Node AssembleJumpTable(Ranges::const_iterator start,
Ranges::const_iterator stop);
+ // CompileResult compiles an individual result expression into a
+ // CodeGen node.
+ CodeGen::Node CompileResult(const ResultExpr& res);
+
// Returns a BPF program snippet that makes the BPF filter program exit
// with the given ErrorCode "err". N.B. the ErrorCode may very well be a
// conditional expression; if so, this function will recursively call
@@ -153,9 +138,6 @@ class SANDBOX_EXPORT PolicyCompiler {
CodeGen::Node passed,
CodeGen::Node failed);
- // MakeTrap is the common implementation for Trap and UnsafeTrap.
- ErrorCode MakeTrap(TrapRegistry::TrapFnc fnc, const void* aux, bool safe);
-
const Policy* policy_;
TrapRegistry* registry_;
« no previous file with comments | « sandbox/linux/bpf_dsl/bpf_dsl_unittest.cc ('k') | sandbox/linux/bpf_dsl/policy_compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698