* [PATCH] selftests/seccomp: fix build on older kernels
@ 2019-08-26 14:43 Tycho Andersen
2019-08-29 17:06 ` Kees Cook
0 siblings, 1 reply; 5+ messages in thread
From: Tycho Andersen @ 2019-08-26 14:43 UTC (permalink / raw)
To: Shuah Khan, Kees Cook; +Cc: linux-kselftest, linux-kernel, Tycho Andersen
The seccomp selftest goes to some length to build against older kernel
headers, viz. all the #ifdefs at the beginning of the file. 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
Signed-off-by: Tycho Andersen <tycho@tycho.ws>
Fixes: 201766a20e30 ("ptrace: add PTRACE_GET_SYSCALL_INFO request")
---
tools/testing/selftests/seccomp/seccomp_bpf.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c
index 6ef7f16c4cf5..7f8b5c8982e3 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.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] selftests/seccomp: fix build on older kernels
2019-08-26 14:43 [PATCH] selftests/seccomp: fix build on older kernels Tycho Andersen
@ 2019-08-29 17:06 ` Kees Cook
2019-08-30 0:45 ` shuah
0 siblings, 1 reply; 5+ messages in thread
From: Kees Cook @ 2019-08-29 17:06 UTC (permalink / raw)
To: Shuah Khan; +Cc: Tycho Andersen, linux-kselftest, linux-kernel, Alakesh Haloi
On Mon, Aug 26, 2019 at 08:43:02AM -0600, Tycho Andersen wrote:
> The seccomp selftest goes to some length to build against older kernel
> headers, viz. all the #ifdefs at the beginning of the file. 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
>
> Signed-off-by: Tycho Andersen <tycho@tycho.ws>
> Fixes: 201766a20e30 ("ptrace: add PTRACE_GET_SYSCALL_INFO request")
Acked-by: Kees Cook <keescook@chromium.org>
Alakesh Haloi also sent a fix[1] for this. I prefer Tycho's solution
(one #ifndef and a Fixes line). Shuah, can you please apply this?
Thanks!
-Kees
[1] https://lore.kernel.org/lkml/20190822215823.GA11292@ip-172-31-44-144.us-west-2.compute.internal
> ---
> tools/testing/selftests/seccomp/seccomp_bpf.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c
> index 6ef7f16c4cf5..7f8b5c8982e3 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.20.1
>
--
Kees Cook
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] selftests/seccomp: fix build on older kernels
2019-08-29 17:06 ` Kees Cook
@ 2019-08-30 0:45 ` shuah
2019-08-30 15:19 ` shuah
0 siblings, 1 reply; 5+ messages in thread
From: shuah @ 2019-08-30 0:45 UTC (permalink / raw)
To: Kees Cook
Cc: Tycho Andersen, linux-kselftest, linux-kernel, Alakesh Haloi, shuah
On 8/29/19 11:06 AM, Kees Cook wrote:
> On Mon, Aug 26, 2019 at 08:43:02AM -0600, Tycho Andersen wrote:
>> The seccomp selftest goes to some length to build against older kernel
>> headers, viz. all the #ifdefs at the beginning of the file. 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
>>
>> Signed-off-by: Tycho Andersen <tycho@tycho.ws>
>> Fixes: 201766a20e30 ("ptrace: add PTRACE_GET_SYSCALL_INFO request")
>
> Acked-by: Kees Cook <keescook@chromium.org>
>
> Alakesh Haloi also sent a fix[1] for this. I prefer Tycho's solution
> (one #ifndef and a Fixes line). Shuah, can you please apply this?
>
Kees,
Yes I will pick this up.
thanks,
-- Shuah
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] selftests/seccomp: fix build on older kernels
2019-08-30 0:45 ` shuah
@ 2019-08-30 15:19 ` shuah
2019-08-30 15:31 ` Tycho Andersen
0 siblings, 1 reply; 5+ messages in thread
From: shuah @ 2019-08-30 15:19 UTC (permalink / raw)
To: Kees Cook
Cc: Tycho Andersen, linux-kselftest, linux-kernel, Alakesh Haloi, shuah
On 8/29/19 6:45 PM, shuah wrote:
> On 8/29/19 11:06 AM, Kees Cook wrote:
>> On Mon, Aug 26, 2019 at 08:43:02AM -0600, Tycho Andersen wrote:
>>> The seccomp selftest goes to some length to build against older kernel
>>> headers, viz. all the #ifdefs at the beginning of the file. 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
>>>
>>> Signed-off-by: Tycho Andersen <tycho@tycho.ws>
>>> Fixes: 201766a20e30 ("ptrace: add PTRACE_GET_SYSCALL_INFO request")
>>
>> Acked-by: Kees Cook <keescook@chromium.org>
>>
>> Alakesh Haloi also sent a fix[1] for this. I prefer Tycho's solution
>> (one #ifndef and a Fixes line). Shuah, can you please apply this?
>>
>
> Kees,
>
> Yes I will pick this up.
>
> thanks,
> -- Shuah
>
Applied after fixing the following checkpatch error in the commit log:
ERROR: Please use git commit description style 'commit <12+ chars of
sha1> ("<title line>")' - ie: 'commit 201766a20e30 ("ptrace: add
PTRACE_GET_SYSCALL_INFO request")'
#82:
Now reads as follows:
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:
thanks,
-- Shuah
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] selftests/seccomp: fix build on older kernels
2019-08-30 15:19 ` shuah
@ 2019-08-30 15:31 ` Tycho Andersen
0 siblings, 0 replies; 5+ messages in thread
From: Tycho Andersen @ 2019-08-30 15:31 UTC (permalink / raw)
To: shuah; +Cc: Kees Cook, linux-kselftest, linux-kernel, Alakesh Haloi
On Fri, Aug 30, 2019 at 09:19:00AM -0600, shuah wrote:
> On 8/29/19 6:45 PM, shuah wrote:
> > On 8/29/19 11:06 AM, Kees Cook wrote:
> > > On Mon, Aug 26, 2019 at 08:43:02AM -0600, Tycho Andersen wrote:
> > > > The seccomp selftest goes to some length to build against older kernel
> > > > headers, viz. all the #ifdefs at the beginning of the file. 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
> > > >
> > > > Signed-off-by: Tycho Andersen <tycho@tycho.ws>
> > > > Fixes: 201766a20e30 ("ptrace: add PTRACE_GET_SYSCALL_INFO request")
> > >
> > > Acked-by: Kees Cook <keescook@chromium.org>
> > >
> > > Alakesh Haloi also sent a fix[1] for this. I prefer Tycho's solution
> > > (one #ifndef and a Fixes line). Shuah, can you please apply this?
> > >
> >
> > Kees,
> >
> > Yes I will pick this up.
> >
> > thanks,
> > -- Shuah
> >
>
> Applied after fixing the following checkpatch error in the commit log:
>
> ERROR: Please use git commit description style 'commit <12+ chars of sha1>
> ("<title line>")' - ie: 'commit 201766a20e30 ("ptrace: add
> PTRACE_GET_SYSCALL_INFO request")'
> #82:
>
> Now reads as follows:
>
> 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:
Ah, good to know. Thanks!
Tycho
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-08-30 15:31 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-26 14:43 [PATCH] selftests/seccomp: fix build on older kernels Tycho Andersen
2019-08-29 17:06 ` Kees Cook
2019-08-30 0:45 ` shuah
2019-08-30 15:19 ` shuah
2019-08-30 15:31 ` Tycho Andersen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).