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

From: Andrew Morton
Date: Fri Dec 16 2022 - 17:06:50 EST


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?

--- 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));
}
_