Subject: Re: [PATCH] seccomp: add compat_ioctl for seccomp notify

From: Kees Cook <[email-masked]>
Date: Wed, 11 Mar 2020 13:06:33 -0700

On Tue, Mar 10, 2020 at 01:33:32PM +0100, Sven Schnelle wrote:
> Hi,
> 
> executing the seccomp_bpf testsuite with 32 bit userland (both s390 and x86)
> doesn't work because there's no compat_ioctl handler defined. Is that something
> that is supposed to work? Disclaimer: I don't know enough about seccomp to judge
> whether there would be some adjustments required in the compat ioctl handler.
> Just setting it to seccomp_notify_ioctl() makes the testsuite pass, but i'm not
> sure whether that's correct.
> 
> Signed-off-by: Sven Schnelle <[email-masked]>

Whoops! Yes, running a mixed environment (64-bit kernel and 32-bit
userspace) shows this as broken. I'll tweak the commit log a bit and
apply it. Thanks!

-Kees

> ---
>  kernel/seccomp.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/kernel/seccomp.c b/kernel/seccomp.c
> index b6ea3dcb57bf..683c81e4861e 100644
> --- a/kernel/seccomp.c
> +++ b/kernel/seccomp.c
> @@ -1221,6 +1221,7 @@ static const struct file_operations seccomp_notify_ops = {
>  	.poll = seccomp_notify_poll,
>  	.release = seccomp_notify_release,
>  	.unlocked_ioctl = seccomp_notify_ioctl,
> +	.compat_ioctl = seccomp_notify_ioctl,
>  };
>  
>  static struct file *init_listener(struct seccomp_filter *filter)
> -- 
> 2.17.1
> 

-- 
Kees Cook