]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/seccomp: fix negative_ENOSYS tracer tests on arm32
authorTerry Tritton <terry.tritton@linaro.org>
Fri, 9 May 2025 11:56:22 +0000 (12:56 +0100)
committerKees Cook <kees@kernel.org>
Fri, 9 May 2025 19:15:43 +0000 (12:15 -0700)
TRACE_syscall.ptrace.negative_ENOSYS and TRACE_syscall.seccomp.negative_ENOSYS
on arm32 are being reported as failures instead of skipping.

The teardown_trace_fixture function sets the test to KSFT_FAIL in case of a
non 0 return value from the tracer process.
Due to _metadata now being shared between the forked processes the tracer is
returning the KSFT_SKIP value set by the tracee which is non 0.

Remove the setting of the _metadata.exit_code in teardown_trace_fixture.

Fixes: 24cf65a62266 ("selftests/harness: Share _metadata between forked processes")
Signed-off-by: Terry Tritton <terry.tritton@linaro.org>
Link: https://lore.kernel.org/r/20250509115622.64775-1-terry.tritton@linaro.org
Signed-off-by: Kees Cook <kees@kernel.org>
tools/testing/selftests/seccomp/seccomp_bpf.c

index 53bf6a9c801f8fa511deb2452e6f116cc1402565..61acbd45ffaaf87b180c8dff2324a02282356fcd 100644 (file)
@@ -1629,14 +1629,8 @@ void teardown_trace_fixture(struct __test_metadata *_metadata,
 {
        if (tracer) {
                int status;
-               /*
-                * Extract the exit code from the other process and
-                * adopt it for ourselves in case its asserts failed.
-                */
                ASSERT_EQ(0, kill(tracer, SIGUSR1));
                ASSERT_EQ(tracer, waitpid(tracer, &status, 0));
-               if (WEXITSTATUS(status))
-                       _metadata->exit_code = KSFT_FAIL;
        }
 }