diff options
author | Ingo Molnar <mingo@elte.hu> | 2010-07-14 00:50:02 -0700 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2011-09-23 08:50:53 -0600 |
commit | 9d11aa4b7e3e261c42c22275605339e01a2edee4 (patch) | |
tree | 31c8266f1d0b4407220e0350ca39d07838017f8f /fs | |
parent | 984398e5b433dba62078a4073ecef325afcf3731 (diff) |
UBUNTU: ubuntu: nx-emu - i386: NX emulation
This is old code with some cruft, all originally by Ingo Molnar with
much later rebasing by Fedora folks and at least one arcane fix by
Roland McGrath a few years ago. No longer uses exec-shield sysctl,
merged with disable_nx. Kees Cook fixed boottime NX reporting for various
corner cases.
Signed-off-by: Kees Cook <kees.cook@canonical.com>
Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/binfmt_elf.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 303983fabfd..ea5e7bd0d49 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -712,6 +712,15 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) if (retval) goto out_free_dentry; +#ifdef CONFIG_X86_32 + /* + * Turn off the CS limit completely if exec-shield disabled or + * NX active: + */ + if (disable_nx || executable_stack != EXSTACK_DISABLE_X || (__supported_pte_mask & _PAGE_NX)) + arch_add_exec_range(current->mm, -1); +#endif + /* OK, This is the point of no return */ current->flags &= ~PF_FORKNOEXEC; current->mm->def_flags = def_flags; |