]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
seccomp, ptrace: switch get_metadata types to arch independent
authorTycho Andersen <tycho@tycho.ws>
Wed, 21 Feb 2018 02:47:45 +0000 (19:47 -0700)
committerKees Cook <keescook@chromium.org>
Thu, 22 Feb 2018 00:56:03 +0000 (16:56 -0800)
Commit 26500475ac1b ("ptrace, seccomp: add support for retrieving seccomp
metadata") introduced `struct seccomp_metadata`, which contained unsigned
longs that should be arch independent. The type of the flags member was
chosen to match the corresponding argument to seccomp(), and so we need
something at least as big as unsigned long. My understanding is that __u64
should fit the bill, so let's switch both types to that.

While this is userspace facing, it was only introduced in 4.16-rc2, and so
should be safe assuming it goes in before then.

Reported-by: "Dmitry V. Levin" <ldv@altlinux.org>
Signed-off-by: Tycho Andersen <tycho@tycho.ws>
CC: Kees Cook <keescook@chromium.org>
CC: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: "Dmitry V. Levin" <ldv@altlinux.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
include/uapi/linux/ptrace.h

index e46d82b911669700662e5e4ec321b26db625f150..d5a1b8a492b93ddb6dd41cf23d759c4059bc8660 100644 (file)
@@ -69,8 +69,8 @@ struct ptrace_peeksiginfo_args {
 #define PTRACE_SECCOMP_GET_METADATA    0x420d
 
 struct seccomp_metadata {
-       unsigned long filter_off;       /* Input: which filter */
-       unsigned int flags;             /* Output: filter's flags */
+       __u64 filter_off;       /* Input: which filter */
+       __u64 flags;            /* Output: filter's flags */
 };
 
 /* Read signals from a shared (process wide) queue */