| Index: sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc
|
| diff --git a/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc b/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc
|
| index f54882cd1fd7ba144f09c3a8943830da4cff4db0..f97efb8a17d08814614e7d6fd30a4be285d42200 100644
|
| --- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc
|
| +++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc
|
| @@ -10,6 +10,7 @@
|
| #include <signal.h>
|
| #include <string.h>
|
| #include <sys/prctl.h>
|
| +#include <sys/resource.h>
|
| #include <sys/socket.h>
|
| #include <sys/stat.h>
|
| #include <sys/syscall.h>
|
| @@ -301,6 +302,41 @@ BPF_DEATH_TEST_C(BaselinePolicy,
|
| _exit(1);
|
| }
|
|
|
| +BPF_TEST_C(BaselinePolicy, GetOrSetPriority, BaselinePolicy) {
|
| + errno = 0;
|
| + const int original_prio = getpriority(PRIO_PROCESS, 0);
|
| + // Check errno instead of the return value since this system call can return
|
| + // -1 as a valid value.
|
| + BPF_ASSERT_EQ(0, errno);
|
| +
|
| + errno = 0;
|
| + int rc = getpriority(PRIO_PROCESS, getpid());
|
| + BPF_ASSERT_EQ(0, errno);
|
| +
|
| + rc = getpriority(PRIO_PROCESS, getpid() + 1);
|
| + BPF_ASSERT_EQ(-1, rc);
|
| + BPF_ASSERT_EQ(EPERM, errno);
|
| +
|
| + rc = setpriority(PRIO_PROCESS, 0, original_prio);
|
| + BPF_ASSERT_EQ(0, rc);
|
| +
|
| + rc = setpriority(PRIO_PROCESS, getpid(), original_prio);
|
| + BPF_ASSERT_EQ(0, rc);
|
| +
|
| + errno = 0;
|
| + rc = setpriority(PRIO_PROCESS, getpid() + 1, original_prio);
|
| + BPF_ASSERT_EQ(-1, rc);
|
| + BPF_ASSERT_EQ(EPERM, errno);
|
| +}
|
| +
|
| +BPF_DEATH_TEST_C(BaselinePolicy,
|
| + GetPrioritySigsys,
|
| + DEATH_SEGV_MESSAGE(GetErrorMessageContentForTests()),
|
| + BaselinePolicy) {
|
| + getpriority(PRIO_USER, 0);
|
| + _exit(1);
|
| +}
|
| +
|
| } // namespace
|
|
|
| } // namespace sandbox
|
|
|