]> git.ipfire.org Git - people/arne_f/kernel.git/commitdiff
selftests/seccomp: Actually sleep for 1/10th second
authorKees Cook <keescook@chromium.org>
Sun, 27 Jan 2019 09:43:57 +0000 (01:43 -0800)
committerShuah Khan <shuah@kernel.org>
Wed, 13 Feb 2019 15:52:42 +0000 (08:52 -0700)
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>
tools/testing/selftests/seccomp/seccomp_bpf.c

index 54587b0819796d37c5cf7bbd03791be2660e0cee..f69d2ee29742808600d406c47f283d743b0aa7c8 100644 (file)
@@ -2611,6 +2611,7 @@ TEST_F(TSYNC, two_siblings_not_under_filter)
 {
        long ret, sib;
        void *status;
+       struct timespec delay = { .tv_nsec = 100000000 };
 
        ASSERT_EQ(0, prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) {
                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);
        /* Poll for actual task death. pthread_join doesn't guarantee it. */
        while (!kill(self->sibling[sib].system_tid, 0))
-               sleep(0.1);
+               nanosleep(&delay, NULL);
        /* Switch to the remaining sibling */
        sib = !sib;
 
@@ -2689,7 +2690,7 @@ TEST_F(TSYNC, two_siblings_not_under_filter)
        EXPECT_EQ(0, (long)status);
        /* Poll for actual task death. pthread_join doesn't guarantee it. */
        while (!kill(self->sibling[sib].system_tid, 0))
-               sleep(0.1);
+               nanosleep(&delay, NULL);
 
        ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC,
                      &self->apply_prog);