diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/sandbox/linux/integration_tests | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/sandbox/linux/integration_tests')
-rw-r--r-- | chromium/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/chromium/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc b/chromium/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc index 28604a82797..938b51ae623 100644 --- a/chromium/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc +++ b/chromium/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc @@ -177,7 +177,9 @@ bool IsSyscallForTestHarness(int sysno) { // UBSan_vptr checker needs mmap, munmap, pipe, write. // ASan and MSan don't need any of these for normal operation, but they // require at least mmap & munmap to print a report if an error is detected. - if (sysno == kMMapNr || sysno == __NR_munmap || sysno == __NR_pipe) { + // ASan requires sigaltstack. + if (sysno == kMMapNr || sysno == __NR_munmap || sysno == __NR_pipe || + sysno == __NR_sigaltstack) { return true; } #endif @@ -599,7 +601,7 @@ class PrctlPolicy : public Policy { if (sysno == __NR_prctl) { // Handle prctl() inside an UnsafeTrap() - return UnsafeTrap(PrctlHandler, NULL); + return UnsafeTrap(PrctlHandler, nullptr); } // Allow all other system calls. @@ -661,7 +663,7 @@ ResultExpr RedirectAllSyscallsPolicy::EvaluateSyscall(int sysno) const { // use of UnsafeTrap() if (SandboxBPF::IsRequiredForUnsafeTrap(sysno)) return Allow(); - return UnsafeTrap(AllowRedirectedSyscall, NULL); + return UnsafeTrap(AllowRedirectedSyscall, nullptr); } #if !defined(ADDRESS_SANITIZER) @@ -688,7 +690,7 @@ BPF_TEST_C(SandboxBPF, SigBus, RedirectAllSyscallsPolicy) { struct sigaction sa = {}; sa.sa_sigaction = SigBusHandler; sa.sa_flags = SA_SIGINFO; - BPF_ASSERT(sigaction(SIGBUS, &sa, NULL) == 0); + BPF_ASSERT(sigaction(SIGBUS, &sa, nullptr) == 0); kill(getpid(), SIGBUS); char c = '\000'; BPF_ASSERT(read(fds[0], &c, 1) == 1); @@ -720,8 +722,8 @@ BPF_TEST_C(SandboxBPF, SigMask, RedirectAllSyscallsPolicy) { // Try again, and this time we verify that we can block it. This // requires a second call to sigprocmask(). sigaddset(&mask0, SIGUSR2); - BPF_ASSERT(!sigprocmask(SIG_BLOCK, &mask0, NULL)); - BPF_ASSERT(!sigprocmask(SIG_BLOCK, NULL, &mask2)); + BPF_ASSERT(!sigprocmask(SIG_BLOCK, &mask0, nullptr)); + BPF_ASSERT(!sigprocmask(SIG_BLOCK, nullptr, &mask2)); BPF_ASSERT(sigismember(&mask2, SIGUSR2)); } @@ -837,7 +839,7 @@ class EqualityStressTest { // work isn't impacted by the fact that we are overriding // a lot of different system calls. ++end; - arg_values_.push_back(NULL); + arg_values_.push_back(nullptr); } else { arg_values_.push_back( RandomArgValue(rand() % kMaxArgs, 0, rand() % kMaxArgs)); @@ -955,7 +957,7 @@ class EqualityStressTest { arg_value->tests[n].k_value = k_value; if (!remaining_args || (rand() & 1)) { arg_value->tests[n].err = (rand() % 1000) + 1; - arg_value->tests[n].arg_value = NULL; + arg_value->tests[n].arg_value = nullptr; } else { arg_value->tests[n].err = 0; arg_value->tests[n].arg_value = @@ -967,7 +969,7 @@ class EqualityStressTest { // node, or we can randomly add another couple of tests. if (!remaining_args || (rand() & 1)) { arg_value->err = (rand() % 1000) + 1; - arg_value->arg_value = NULL; + arg_value->arg_value = nullptr; } else { arg_value->err = 0; arg_value->arg_value = @@ -1820,15 +1822,15 @@ ResultExpr PthreadPolicyBitMask::EvaluateSyscall(int sysno) const { static void* ThreadFnc(void* arg) { ++*reinterpret_cast<int*>(arg); Syscall::Call(__NR_futex, arg, FUTEX_WAKE, 1, 0, 0, 0); - return NULL; + return nullptr; } static void PthreadTest() { // Attempt to start a joinable thread. This should succeed. pthread_t thread; int thread_ran = 0; - BPF_ASSERT(!pthread_create(&thread, NULL, ThreadFnc, &thread_ran)); - BPF_ASSERT(!pthread_join(thread, NULL)); + BPF_ASSERT(!pthread_create(&thread, nullptr, ThreadFnc, &thread_ran)); + BPF_ASSERT(!pthread_join(thread, nullptr)); BPF_ASSERT(thread_ran); // Attempt to start a detached thread. This should succeed. @@ -2084,7 +2086,7 @@ class TrapPread64Policy : public Policy { } if (system_call_number == __NR_pread64) { - return UnsafeTrap(ForwardPreadHandler, NULL); + return UnsafeTrap(ForwardPreadHandler, nullptr); } return Allow(); } @@ -2134,7 +2136,7 @@ void* TsyncApplyToTwoThreadsFunc(void* cond_ptr) { BlacklistNanosleepPolicy::AssertNanosleepFails(); - return NULL; + return nullptr; } SANDBOX_TEST(SandboxBPF, Tsync) { @@ -2158,7 +2160,7 @@ SANDBOX_TEST(SandboxBPF, Tsync) { // Create a thread on which to invoke the blocked syscall. pthread_t thread; BPF_ASSERT_EQ( - 0, pthread_create(&thread, NULL, &TsyncApplyToTwoThreadsFunc, &event)); + 0, pthread_create(&thread, nullptr, &TsyncApplyToTwoThreadsFunc, &event)); // Test that nanoseelp success. const struct timespec ts = {0, 0}; @@ -2175,7 +2177,7 @@ SANDBOX_TEST(SandboxBPF, Tsync) { event.Signal(); // Wait for the thread to finish. - BPF_ASSERT_EQ(0, pthread_join(thread, NULL)); + BPF_ASSERT_EQ(0, pthread_join(thread, nullptr)); } class AllowAllPolicy : public Policy { @@ -2237,7 +2239,7 @@ class UnsafeTrapWithCondPolicy : public Policy { case __NR_close: return Allow(); case __NR_getppid: - return UnsafeTrap(NoOpHandler, NULL); + return UnsafeTrap(NoOpHandler, nullptr); default: return Error(EPERM); } |