)]}'
{
  "commit": "7fce69dff8db30cb93aace0bbebda09972027af7",
  "tree": "be0f257b8da82e9e2eb9bdaa2574a48221e7b516",
  "parents": [
    "f06b71fe4d4cd0a4ad7e183b777564f696f6bb36",
    "be619f7f063a49c656f620a46af4f8ea3e759e91"
  ],
  "author": {
    "name": "Eric W. Biederman",
    "email": "ebiederm@xmission.com",
    "time": "Tue Jul 21 08:25:22 2020 -0500"
  },
  "committer": {
    "name": "Eric W. Biederman",
    "email": "ebiederm@xmission.com",
    "time": "Tue Jul 21 08:26:44 2020 -0500"
  },
  "message": "Implement kernel_execve\n\nThis set of changes implements kernel_execve to remove the need for\nkernel threads to pass in pointers to in-kernel data structures\nto functions that take __user pointers.   Which is part of the\ngreater removal of set_fs work.\n\nThis set of changes makes do_execve static and so I have updated the\ncomments.  This affects the comments in the x86 entry point code\nand the comments in tomoyo.  I believe I have updated them correctly.\nIf not please let me know.\n\nI have moved the calls of copy_strings before the call of\nsecurity_bprm_creds_for_exec.  Which might be of interest to the\nsecurity folks.  I can\u0027t see that it matters but I have copied the\nsecurity folks just to be certain.\n\nBy moving the initialization of the new stack that copy_strings does\nearlier it becomes possible to copy all of the parameters to exec before\nanything else is done which makes it possible to have one function\nkernel_execve that uncondtionally handles copying parameters from kernel\nspace, and another function do_execveat_common which handles copying\nparameters from userspace.\n\nThis work was inspired by Christoph Hellwig\u0027s similar patchset, which my\nearlier work to remove the file parameter to do_execveat_common\nconflicted with.\nhttps://lore.kernel.org/linux-fsdevel/20200627072704.2447163-1-hch@lst.de/\n\nI figured that after causing all of that trouble for the set_fs work\nthe least I could do is implement the change myself.\n\nThe big practical change from Christoph\u0027s work is that he did not\nseparate out the copying of parameters from the rest of the work of\nexec, which did not help the maintainability of the code.\n\nEric W. Biederman (7):\n      exec: Remove unnecessary spaces from binfmts.h\n      exec: Factor out alloc_bprm\n      exec: Move initialization of bprm-\u003efilename into alloc_bprm\n      exec: Move bprm_mm_init into alloc_bprm\n      exec: Factor bprm_execve out of do_execve_common\n      exec: Factor bprm_stack_limits out of prepare_arg_pages\n      exec: Implement kernel_execve\n\n arch/x86/entry/entry_32.S      |   2 +-\n arch/x86/entry/entry_64.S      |   2 +-\n arch/x86/kernel/unwind_frame.c |   2 +-\n fs/exec.c                      | 301 ++++++++++++++++++++++++++++-------------\n include/linux/binfmts.h        |  20 ++-\n init/main.c                    |   4 +-\n kernel/umh.c                   |   6 +-\n security/tomoyo/common.h       |   2 +-\n security/tomoyo/domain.c       |   4 +-\n security/tomoyo/tomoyo.c       |   4 +-\n 10 files changed, 224 insertions(+), 123 deletions(-)\n\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: https://lkml.kernel.org/r/871rle8bw2.fsf@x220.int.ebiederm.org\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n",
  "tree_diff": []
}
