Re: [PATCH v6 3/6] mm/memfd: add MFD_NOEXEC_SEAL and MFD_EXEC

From: Jeff Xu
Date: Fri Dec 16 2022 - 18:40:46 EST


On Fri, Dec 16, 2022 at 2:06 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> On Fri, 16 Dec 2022 13:46:58 -0800 Jeff Xu <jeffxu@xxxxxxxxxx> wrote:
>
> > On Fri, Dec 16, 2022 at 12:35 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote:
> > >
> > > On Fri, Dec 16, 2022 at 10:11:44AM -0800, Jeff Xu wrote:
> > > > Once per boot seems too little, it would be nice if we can list all processes.
> > > > I agree ratelimited might be too much.
> > > > There is a feature gap here for logging.
> > > >
> > > > Kees, what do you think ?
> > >
> > > I agree once per boot is kind of frustrating "I fixed the one warning,
> > > oh, now it's coming from a different process". But ratelimit is, in
> > > retrospect, still too often.
> > >
> > > Let's go with per boot -- this should be noisy "enough" to get the
> > > changes in API into the callers without being too much of a hassle.
> > >
> > Agreed. Let's go with per boot.
> >
> > Hi Andrew, what is your preference ? I can send a patch or you
> > directly fix it in mm-unstable ?
>
> Like this?
>
Yes. Thanks!

> --- a/mm/memfd.c~mm-memfd-add-mfd_noexec_seal-and-mfd_exec-fix-3
> +++ a/mm/memfd.c
> @@ -308,7 +308,7 @@ SYSCALL_DEFINE2(memfd_create,
> flags |= MFD_NOEXEC_SEAL;
> break;
> default:
> - pr_warn_ratelimited(
> + pr_warn_once(
> "memfd_create(): MFD_NOEXEC_SEAL is enforced, pid=%d '%s'\n",
> task_pid_nr(current), get_task_comm(comm, current));
> return -EINVAL;
> @@ -316,7 +316,7 @@ SYSCALL_DEFINE2(memfd_create,
> #else
> flags |= MFD_EXEC;
> #endif
> - pr_warn_ratelimited(
> + pr_warn_once(
> "memfd_create() without MFD_EXEC nor MFD_NOEXEC_SEAL, pid=%d '%s'\n",
> task_pid_nr(current), get_task_comm(comm, current));
> }
> _
>