diff options
Diffstat (limited to 'fs/binfmt_elf.c')
-rw-r--r-- | fs/binfmt_elf.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index bcb884e2d613..81878b78c9d4 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -712,7 +712,6 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) | |||
712 | goto out_free_dentry; | 712 | goto out_free_dentry; |
713 | 713 | ||
714 | /* OK, This is the point of no return */ | 714 | /* OK, This is the point of no return */ |
715 | current->flags &= ~PF_FORKNOEXEC; | ||
716 | current->mm->def_flags = def_flags; | 715 | current->mm->def_flags = def_flags; |
717 | 716 | ||
718 | /* Do this immediately, since STACK_TOP as used in setup_arg_pages | 717 | /* Do this immediately, since STACK_TOP as used in setup_arg_pages |
@@ -934,7 +933,6 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) | |||
934 | #endif /* ARCH_HAS_SETUP_ADDITIONAL_PAGES */ | 933 | #endif /* ARCH_HAS_SETUP_ADDITIONAL_PAGES */ |
935 | 934 | ||
936 | install_exec_creds(bprm); | 935 | install_exec_creds(bprm); |
937 | current->flags &= ~PF_FORKNOEXEC; | ||
938 | retval = create_elf_tables(bprm, &loc->elf_ex, | 936 | retval = create_elf_tables(bprm, &loc->elf_ex, |
939 | load_addr, interp_load_addr); | 937 | load_addr, interp_load_addr); |
940 | if (retval < 0) { | 938 | if (retval < 0) { |
@@ -1421,7 +1419,7 @@ static int fill_thread_core_info(struct elf_thread_core_info *t, | |||
1421 | for (i = 1; i < view->n; ++i) { | 1419 | for (i = 1; i < view->n; ++i) { |
1422 | const struct user_regset *regset = &view->regsets[i]; | 1420 | const struct user_regset *regset = &view->regsets[i]; |
1423 | do_thread_regset_writeback(t->task, regset); | 1421 | do_thread_regset_writeback(t->task, regset); |
1424 | if (regset->core_note_type && | 1422 | if (regset->core_note_type && regset->get && |
1425 | (!regset->active || regset->active(t->task, regset))) { | 1423 | (!regset->active || regset->active(t->task, regset))) { |
1426 | int ret; | 1424 | int ret; |
1427 | size_t size = regset->n * regset->size; | 1425 | size_t size = regset->n * regset->size; |
@@ -2077,7 +2075,8 @@ out: | |||
2077 | 2075 | ||
2078 | static int __init init_elf_binfmt(void) | 2076 | static int __init init_elf_binfmt(void) |
2079 | { | 2077 | { |
2080 | return register_binfmt(&elf_format); | 2078 | register_binfmt(&elf_format); |
2079 | return 0; | ||
2081 | } | 2080 | } |
2082 | 2081 | ||
2083 | static void __exit exit_elf_binfmt(void) | 2082 | static void __exit exit_elf_binfmt(void) |