selftests/seccomp: Actually sleep for 1/10th second
Clang noticed that some none-zero sleep()s were actually using zero
anyway. This switches to nanosleep() to gain sub-second granularity.
seccomp_bpf.c:2625:9: warning: implicit conversion from 'double' to
'unsigned int' changes value from 0.1 to 0 [-Wliteral-conversion]
sleep(0.1);
~~~~~ ^~~
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Shuah Khan <shuah@kernel.org>
This commit is contained in:
@@ -2611,6 +2611,7 @@ TEST_F(TSYNC, two_siblings_not_under_filter)
|
|||||||
{
|
{
|
||||||
long ret, sib;
|
long ret, sib;
|
||||||
void *status;
|
void *status;
|
||||||
|
struct timespec delay = { .tv_nsec = 100000000 };
|
||||||
|
|
||||||
ASSERT_EQ(0, prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) {
|
ASSERT_EQ(0, prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) {
|
||||||
TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!");
|
TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!");
|
||||||
@@ -2664,7 +2665,7 @@ TEST_F(TSYNC, two_siblings_not_under_filter)
|
|||||||
EXPECT_EQ(SIBLING_EXIT_UNKILLED, (long)status);
|
EXPECT_EQ(SIBLING_EXIT_UNKILLED, (long)status);
|
||||||
/* Poll for actual task death. pthread_join doesn't guarantee it. */
|
/* Poll for actual task death. pthread_join doesn't guarantee it. */
|
||||||
while (!kill(self->sibling[sib].system_tid, 0))
|
while (!kill(self->sibling[sib].system_tid, 0))
|
||||||
sleep(0.1);
|
nanosleep(&delay, NULL);
|
||||||
/* Switch to the remaining sibling */
|
/* Switch to the remaining sibling */
|
||||||
sib = !sib;
|
sib = !sib;
|
||||||
|
|
||||||
@@ -2689,7 +2690,7 @@ TEST_F(TSYNC, two_siblings_not_under_filter)
|
|||||||
EXPECT_EQ(0, (long)status);
|
EXPECT_EQ(0, (long)status);
|
||||||
/* Poll for actual task death. pthread_join doesn't guarantee it. */
|
/* Poll for actual task death. pthread_join doesn't guarantee it. */
|
||||||
while (!kill(self->sibling[sib].system_tid, 0))
|
while (!kill(self->sibling[sib].system_tid, 0))
|
||||||
sleep(0.1);
|
nanosleep(&delay, NULL);
|
||||||
|
|
||||||
ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC,
|
ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC,
|
||||||
&self->apply_prog);
|
&self->apply_prog);
|
||||||
|
|||||||
Reference in New Issue
Block a user