Re: [PATCH v2 0/8] exec: Control flow simplifications

From: Eric W. Biederman
Date: Wed May 20 2020 - 09:06:44 EST


Kees Cook <keescook@xxxxxxxxxxxx> writes:

> On Mon, May 18, 2020 at 07:29:00PM -0500, Eric W. Biederman wrote:
>> arch/alpha/kernel/binfmt_loader.c | 11 +----
>> fs/binfmt_elf.c | 4 +-
>> fs/binfmt_elf_fdpic.c | 4 +-
>> fs/binfmt_em86.c | 13 +----
>> fs/binfmt_misc.c | 69 ++++-----------------------
>> fs/binfmt_script.c | 82 ++++++++++++++------------------
>> fs/exec.c | 97 ++++++++++++++++++++++++++------------
>> include/linux/binfmts.h | 36 ++++++--------
>> include/linux/lsm_hook_defs.h | 3 +-
>> include/linux/lsm_hooks.h | 52 +++++++++++---------
>> include/linux/security.h | 14 ++++--
>> kernel/cred.c | 3 ++
>> security/apparmor/domain.c | 7 +--
>> security/apparmor/include/domain.h | 2 +-
>> security/apparmor/lsm.c | 2 +-
>> security/commoncap.c | 9 ++--
>> security/security.c | 9 +++-
>> security/selinux/hooks.c | 8 ++--
>> security/smack/smack_lsm.c | 9 ++--
>> security/tomoyo/tomoyo.c | 12 ++---
>> 20 files changed, 202 insertions(+), 244 deletions(-)
>
> Oh, BTW, heads up on this (trivially but annoyingly) conflicting with
> the copy_strings_kernel/copy_string/kernel change:
>
> https://ozlabs.org/~akpm/mmotm/broken-out/exec-simplify-the-copy_strings_kernel-calling-convention.patch
>
> Is it worth pulling that and these into your tree?
>
> https://ozlabs.org/~akpm/mmotm/broken-out/exec-open-code-copy_string_kernel.patch
>
> https://ozlabs.org/~akpm/mmotm/broken-out/umh-fix-refcount-underflow-in-fork_usermode_blob.patch

Good question. It is part of the greater set_fs removal work, and I
don't want to mess that up.

I would love to give copy_string_kernel a length parameter so
binfmt_script did not have to modify it's buffer or copy the string,
before calling copy_string_kernel.

Hmm. I already have to call strdup on i_name in brpm_change_interp.
So I probably just want to bite the bullet and figure out a way to do
strdup earlier.

So unless it makes things easier for Andrew I think it is probably
easier to live with the conflict for now, and use this conversation
as inspiration for my next round of cleanups of binfmt_misc.

Eric