Re: [PATCH v4 2/2] ptrace, seccomp: add support for retrieving seccomp metadata

From: Dmitry V. Levin
Date: Tue Feb 20 2018 - 14:30:59 EST


Hi,

On Tue, Nov 14, 2017 at 07:00:19PM -0700, Tycho Andersen wrote:
> With the new SECCOMP_FILTER_FLAG_LOG, we need to be able to extract these
> flags for checkpoint restore, since they describe the state of a filter.
>
> So, let's add PTRACE_SECCOMP_GET_METADATA, similar to ..._GET_FILTER, which
> returns the metadata of the nth filter (right now, just the flags).
> Hopefully this will be future proof, and new per-filter metadata can be
> added to this struct.
>
> v3: * use GET_METADATA instead of GET_FLAGS
> v4: * resend
>
> Signed-off-by: Tycho Andersen <tycho@xxxxxxxx>
> CC: Kees Cook <keescook@xxxxxxxxxxxx>
> CC: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
> CC: Oleg Nesterov <oleg@xxxxxxxxxx>
[...]
> diff --git a/include/uapi/linux/ptrace.h b/include/uapi/linux/ptrace.h
> index e3939e00980b..e46d82b91166 100644
> --- a/include/uapi/linux/ptrace.h
> +++ b/include/uapi/linux/ptrace.h
> @@ -66,6 +66,12 @@ struct ptrace_peeksiginfo_args {
> #define PTRACE_SETSIGMASK 0x420b
>
> #define PTRACE_SECCOMP_GET_FILTER 0x420c
> +#define PTRACE_SECCOMP_GET_METADATA 0x420d
> +
> +struct seccomp_metadata {
> + unsigned long filter_off; /* Input: which filter */
> + unsigned int flags; /* Output: filter's flags */
> +};

This "unsigned long" field is unacceptable unless you are willing
to implement a compat layer for this arch-dependent type.

Please use an arch-independent type instead.
See e.g. struct ptrace_peeksiginfo_args or struct struct seccomp_data.


--
ldv

Attachment: signature.asc
Description: PGP signature