| Index: components/nacl/loader/nonsfi/nonsfi_sandbox_unittest.cc
|
| diff --git a/components/nacl/loader/nonsfi/nonsfi_sandbox_unittest.cc b/components/nacl/loader/nonsfi/nonsfi_sandbox_unittest.cc
|
| index 41829910717fd8fc5b91ee7869e83451772cab06..bf58448addfb71d5457fc0961b6b712aa7a08a0d 100644
|
| --- a/components/nacl/loader/nonsfi/nonsfi_sandbox_unittest.cc
|
| +++ b/components/nacl/loader/nonsfi/nonsfi_sandbox_unittest.cc
|
| @@ -345,132 +345,34 @@ BPF_TEST(NaClNonSfiSandboxTest, brk,
|
| BPF_ASSERT_EQ(ENOMEM, errno);
|
| }
|
|
|
| -BPF_TEST(NaClNonSfiSandboxTest, epoll_create_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_epoll_create));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| +// The following test cases check if syscalls return EPERM regardless
|
| +// of arguments.
|
| +#define RESTRICT_SYSCALL_EPERM_TEST(name) \
|
| + BPF_TEST( \
|
| + NaClNonSfiSandboxTest, name ## _EPERM, \
|
| + nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) { \
|
| + errno = 0; \
|
| + BPF_ASSERT_EQ(-1, syscall(__NR_ ## name, 0, 0, 0, 0, 0, 0)); \
|
| + BPF_ASSERT_EQ(EPERM, errno); \
|
| + }
|
|
|
| +RESTRICT_SYSCALL_EPERM_TEST(epoll_create);
|
| #if defined(__i386__) || defined(__arm__)
|
| -BPF_TEST(NaClNonSfiSandboxTest, getegid32_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_getegid32));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, geteuid32_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_geteuid32));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, getgid32_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_getgid32));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, getuid32_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_getuid32));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_DEATH_TEST(NaClNonSfiSandboxTest, getegid_SIGSYS,
|
| - DEATH_MESSAGE(sandbox::GetErrorMessageContentForTests()),
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - syscall(__NR_getegid);
|
| -}
|
| -
|
| -BPF_DEATH_TEST(NaClNonSfiSandboxTest, geteuid_SIGSYS,
|
| - DEATH_MESSAGE(sandbox::GetErrorMessageContentForTests()),
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - syscall(__NR_geteuid);
|
| -}
|
| -
|
| -BPF_DEATH_TEST(NaClNonSfiSandboxTest, getgid_SIGSYS,
|
| - DEATH_MESSAGE(sandbox::GetErrorMessageContentForTests()),
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - syscall(__NR_getgid);
|
| -}
|
| -
|
| -BPF_DEATH_TEST(NaClNonSfiSandboxTest, getuid_SIGSYS,
|
| - DEATH_MESSAGE(sandbox::GetErrorMessageContentForTests()),
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - syscall(__NR_getuid);
|
| -}
|
| -#endif
|
| -
|
| -#if defined(__x86_64__)
|
| -BPF_TEST(NaClNonSfiSandboxTest, getegid_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_getegid));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, geteuid_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_geteuid));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, getgid_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_getgid));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, getuid_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_getuid));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| +RESTRICT_SYSCALL_EPERM_TEST(getegid32);
|
| +RESTRICT_SYSCALL_EPERM_TEST(geteuid32);
|
| +RESTRICT_SYSCALL_EPERM_TEST(getgid32);
|
| +RESTRICT_SYSCALL_EPERM_TEST(getuid32);
|
| #endif
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, madvise_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_madvise));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, open_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_open));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, ptrace_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_ptrace));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| -BPF_TEST(NaClNonSfiSandboxTest, set_robust_list_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_set_robust_list));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| -
|
| +RESTRICT_SYSCALL_EPERM_TEST(getegid);
|
| +RESTRICT_SYSCALL_EPERM_TEST(geteuid);
|
| +RESTRICT_SYSCALL_EPERM_TEST(getgid);
|
| +RESTRICT_SYSCALL_EPERM_TEST(getuid);
|
| +RESTRICT_SYSCALL_EPERM_TEST(madvise);
|
| +RESTRICT_SYSCALL_EPERM_TEST(open);
|
| +RESTRICT_SYSCALL_EPERM_TEST(ptrace);
|
| +RESTRICT_SYSCALL_EPERM_TEST(set_robust_list);
|
| #if defined(__i386__) || defined(__x86_64__)
|
| -BPF_TEST(NaClNonSfiSandboxTest, time_EPERM,
|
| - nacl::nonsfi::NaClNonSfiBPFSandboxPolicy::EvaluateSyscallImpl) {
|
| - errno = 0;
|
| - BPF_ASSERT_EQ(-1, syscall(__NR_time));
|
| - BPF_ASSERT_EQ(EPERM, errno);
|
| -}
|
| +RESTRICT_SYSCALL_EPERM_TEST(time);
|
| #endif
|
|
|
| } // namespace
|
|
|