| Index: sandbox/linux/seccomp-bpf/syscall_iterator.h
|
| diff --git a/sandbox/linux/seccomp-bpf/syscall_iterator.h b/sandbox/linux/seccomp-bpf/syscall_iterator.h
|
| index d89b981cee4b6a12537f35971ea7669557486aed..5080fcc09a21070ae0d81881d9e0f37733d9e852 100644
|
| --- a/sandbox/linux/seccomp-bpf/syscall_iterator.h
|
| +++ b/sandbox/linux/seccomp-bpf/syscall_iterator.h
|
| @@ -7,6 +7,8 @@
|
|
|
| #include <stdint.h>
|
|
|
| +#include <iterator>
|
| +
|
| #include "base/macros.h"
|
| #include "sandbox/sandbox_export.h"
|
|
|
| @@ -41,6 +43,10 @@ class SANDBOX_EXPORT SyscallSet {
|
| // system call numbers.
|
| static SyscallSet All() { return SyscallSet(Set::ALL); }
|
|
|
| + // ValidOnly returns a SyscallSet that contains only valid system
|
| + // call numbers.
|
| + static SyscallSet ValidOnly() { return SyscallSet(Set::VALID_ONLY); }
|
| +
|
| // InvalidOnly returns a SyscallSet that contains only invalid
|
| // system call numbers, but still omits numbers in the middle of a
|
| // range of invalid system call numbers.
|
| @@ -51,7 +57,7 @@ class SANDBOX_EXPORT SyscallSet {
|
| static bool IsValid(uint32_t num);
|
|
|
| private:
|
| - enum class Set { ALL, INVALID_ONLY };
|
| + enum class Set { ALL, VALID_ONLY, INVALID_ONLY };
|
|
|
| explicit SyscallSet(Set set) : set_(set) {}
|
|
|
| @@ -65,7 +71,8 @@ SANDBOX_EXPORT bool operator==(const SyscallSet& lhs, const SyscallSet& rhs);
|
|
|
| // Iterator provides C++ input iterator semantics for traversing a
|
| // SyscallSet.
|
| -class SyscallSet::Iterator {
|
| +class SyscallSet::Iterator
|
| + : public std::iterator<std::input_iterator_tag, uint32_t> {
|
| public:
|
| Iterator(const Iterator& it)
|
| : set_(it.set_), done_(it.done_), num_(it.num_) {}
|
| @@ -77,6 +84,8 @@ class SyscallSet::Iterator {
|
| private:
|
| Iterator(Set set, bool done);
|
|
|
| + uint32_t NextSyscall() const;
|
| +
|
| Set set_;
|
| bool done_;
|
| uint32_t num_;
|
|
|