summaryrefslogtreecommitdiff
path: root/arch/x86_64
diff options
context:
space:
mode:
authorMarkus Schoder <lists@gammarayburst.de>2006-07-10 17:06:06 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-07-10 15:12:32 -0700
commit3391c22e5b6aaeb289bcc1ad0d5b3f2ba5421f22 (patch)
tree2fe664aea3492f5e8afeab95298fb67aa1813096 /arch/x86_64
parentd5d8ad78b05d13c658aae8f4b06b6d339f13fd58 (diff)
downloadlinux-3.10-3391c22e5b6aaeb289bcc1ad0d5b3f2ba5421f22.tar.gz
linux-3.10-3391c22e5b6aaeb289bcc1ad0d5b3f2ba5421f22.tar.bz2
linux-3.10-3391c22e5b6aaeb289bcc1ad0d5b3f2ba5421f22.zip
[PATCH] x86_64: Bring x86-64 ia32 emul in sync with i386 on READ_IMPLIES_EXEC enabling
Currently ia32 binaries behave differently with respect to enabling READ_IMPLIES_EXEC. On i386 a binary with the exec_stack flag set is executed with READ_IMPLIES_EXEC enabled as well. The same binary executes without READ_IMPLIES_EXEC on x86-64. This causes binaries that work on i386 to fail on x86-64 which goes somewhat against the whole 32 bit emulation idea. It has been argued that READ_IMPLIES_EXEC should not be enabled at all for binaries that have the exec_stack flag. Which is probably a valid point. However until this is clarified I think x86-64 should behave the same for ia32 binaries as i386. The following patch brings x86-64 in sync with i386 for ia32 binaries. Signed-off-by: Markus Schoder <lists@gammarayburst.de> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64')
-rw-r--r--arch/x86_64/ia32/ia32_binfmt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86_64/ia32/ia32_binfmt.c b/arch/x86_64/ia32/ia32_binfmt.c
index 926c4743d13..a9dc0f3b5b5 100644
--- a/arch/x86_64/ia32/ia32_binfmt.c
+++ b/arch/x86_64/ia32/ia32_binfmt.c
@@ -182,7 +182,7 @@ struct elf_prpsinfo
#define user user32
#define __ASM_X86_64_ELF_H 1
-#define elf_read_implies_exec(ex, have_pt_gnu_stack) (!(have_pt_gnu_stack))
+#define elf_read_implies_exec(ex, executable_stack) (executable_stack != EXSTACK_DISABLE_X)
//#include <asm/ia32.h>
#include <linux/elf.h>