Ver código fonte

x86: initialize 64bit registers for a.out executables

Previously the data from before the exec was kept in there. Zero
them instead.

[ tglx: arch/x86 adaptation ]

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Andi Kleen 17 anos atrás
pai
commit
f891dd18c1
1 arquivos alterados com 2 adições e 0 exclusões
  1. 2 0
      arch/x86/ia32/ia32_aout.c

+ 2 - 0
arch/x86/ia32/ia32_aout.c

@@ -420,6 +420,8 @@ beyond_if:
 	(regs)->eflags = 0x200;
 	(regs)->eflags = 0x200;
 	(regs)->cs = __USER32_CS;
 	(regs)->cs = __USER32_CS;
 	(regs)->ss = __USER32_DS;
 	(regs)->ss = __USER32_DS;
+	regs->r8 = regs->r9 = regs->r10 = regs->r11 =
+	regs->r12 = regs->r13 = regs->r14 = regs->r15 = 0;
 	set_fs(USER_DS);
 	set_fs(USER_DS);
 	if (unlikely(current->ptrace & PT_PTRACED)) {
 	if (unlikely(current->ptrace & PT_PTRACED)) {
 		if (current->ptrace & PT_TRACE_EXEC)
 		if (current->ptrace & PT_TRACE_EXEC)