On Tue, May 19, 2020 at 02:08:34PM -0500, Eric W. Biederman wrote: > Kees Cook <keescook@xxxxxxxxxxxx> writes: > > > On Mon, May 18, 2020 at 07:31:51PM -0500, Eric W. Biederman wrote: > >> [...] > >> diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h > >> index 8605ab4a0f89..dbb5614d62a2 100644 > >> --- a/include/linux/binfmts.h > >> +++ b/include/linux/binfmts.h > >> @@ -26,6 +26,8 @@ struct linux_binprm { > >> unsigned long p; /* current top of mem */ > >> unsigned long argmin; /* rlimit marker for copy_strings() */ > >> unsigned int > >> + /* It is safe to use the creds of a script (see binfmt_misc) */ > >> + preserve_creds:1, > > > > How about: > > > > /* > > * A binfmt handler will set this to True before calling > > * prepare_binprm() if it is safe to reuse the previous > > * credentials, based on bprm->file (see binfmt_misc). > > */ > > I think that is more words saying less. > > While I agree it might be better. I don't see what your comment adds to > the understanding. What do you see my comment not saying that is important? I think your comment is aimed at the consumer of preserve_creds (i.e. the fs/exec.c code), whereas I think the comment should be directed at a binfmt author, who wants to answer the question "why would I set this flag?" Though I strongly hope we never have new binfmts. ;) -- Kees Cook