| From 57735c0eb97104c799650694a20b9a88dcf6f95b Mon Sep 17 00:00:00 2001 |
| From: Tycho Andersen <tycho@tycho.ws> |
| Date: Mon, 26 Aug 2019 08:43:02 -0600 |
| Subject: [PATCH] selftests/seccomp: fix build on older kernels |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| commit 88282297fff00796e81f5e67734a6afdfb31fbc4 upstream. |
| |
| The seccomp selftest goes to some length to build against older kernel |
| headers, viz. all the #ifdefs at the beginning of the file. |
| |
| Commit 201766a20e30 ("ptrace: add PTRACE_GET_SYSCALL_INFO request") |
| introduces some additional macros, but doesn't do the #ifdef dance. |
| Let's add that dance here to avoid: |
| |
| gcc -Wl,-no-as-needed -Wall seccomp_bpf.c -lpthread -o seccomp_bpf |
| In file included from seccomp_bpf.c:51: |
| seccomp_bpf.c: In function ‘tracer_ptrace’: |
| seccomp_bpf.c:1787:20: error: ‘PTRACE_EVENTMSG_SYSCALL_ENTRY’ undeclared (first use in this function); did you mean ‘PTRACE_EVENT_CLONE’? |
| EXPECT_EQ(entry ? PTRACE_EVENTMSG_SYSCALL_ENTRY |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| ../kselftest_harness.h:608:13: note: in definition of macro ‘__EXPECT’ |
| __typeof__(_expected) __exp = (_expected); \ |
| ^~~~~~~~~ |
| seccomp_bpf.c:1787:2: note: in expansion of macro ‘EXPECT_EQ’ |
| EXPECT_EQ(entry ? PTRACE_EVENTMSG_SYSCALL_ENTRY |
| ^~~~~~~~~ |
| seccomp_bpf.c:1787:20: note: each undeclared identifier is reported only once for each function it appears in |
| EXPECT_EQ(entry ? PTRACE_EVENTMSG_SYSCALL_ENTRY |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| ../kselftest_harness.h:608:13: note: in definition of macro ‘__EXPECT’ |
| __typeof__(_expected) __exp = (_expected); \ |
| ^~~~~~~~~ |
| seccomp_bpf.c:1787:2: note: in expansion of macro ‘EXPECT_EQ’ |
| EXPECT_EQ(entry ? PTRACE_EVENTMSG_SYSCALL_ENTRY |
| ^~~~~~~~~ |
| seccomp_bpf.c:1788:6: error: ‘PTRACE_EVENTMSG_SYSCALL_EXIT’ undeclared (first use in this function); did you mean ‘PTRACE_EVENT_EXIT’? |
| : PTRACE_EVENTMSG_SYSCALL_EXIT, msg); |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| ../kselftest_harness.h:608:13: note: in definition of macro ‘__EXPECT’ |
| __typeof__(_expected) __exp = (_expected); \ |
| ^~~~~~~~~ |
| seccomp_bpf.c:1787:2: note: in expansion of macro ‘EXPECT_EQ’ |
| EXPECT_EQ(entry ? PTRACE_EVENTMSG_SYSCALL_ENTRY |
| ^~~~~~~~~ |
| make: *** [Makefile:12: seccomp_bpf] Error 1 |
| |
| [skhan@linuxfoundation.org: Fix checkpatch error in commit log] |
| Signed-off-by: Tycho Andersen <tycho@tycho.ws> |
| Fixes: 201766a20e30 ("ptrace: add PTRACE_GET_SYSCALL_INFO request") |
| Acked-by: Kees Cook <keescook@chromium.org> |
| Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c |
| index dc66fe852768..277c43ac7862 100644 |
| --- a/tools/testing/selftests/seccomp/seccomp_bpf.c |
| +++ b/tools/testing/selftests/seccomp/seccomp_bpf.c |
| @@ -199,6 +199,11 @@ struct seccomp_notif_sizes { |
| }; |
| #endif |
| |
| +#ifndef PTRACE_EVENTMSG_SYSCALL_ENTRY |
| +#define PTRACE_EVENTMSG_SYSCALL_ENTRY 1 |
| +#define PTRACE_EVENTMSG_SYSCALL_EXIT 2 |
| +#endif |
| + |
| #ifndef seccomp |
| int seccomp(unsigned int op, unsigned int flags, void *args) |
| { |
| -- |
| 2.7.4 |
| |