From: Andi Kleen Don't pass CR2 address on alignment faults. They report the address of the last page fault, which is a information leak. Fix this for i386 and x86-64 by passing 0 instead. Pointed out by Zachary Amsden Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/kernel/traps.c | 2 +- 25-akpm/arch/x86_64/kernel/traps.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/traps.c~x86-64-x86-dont-pass-cr2-on-alignment-faults arch/i386/kernel/traps.c --- 25/arch/i386/kernel/traps.c~x86-64-x86-dont-pass-cr2-on-alignment-faults Tue Sep 14 17:04:12 2004 +++ 25-akpm/arch/i386/kernel/traps.c Tue Sep 14 17:04:12 2004 @@ -520,7 +520,7 @@ DO_ERROR( 9, SIGFPE, "coprocessor segme DO_ERROR(10, SIGSEGV, "invalid TSS", invalid_TSS) DO_ERROR(11, SIGBUS, "segment not present", segment_not_present) DO_ERROR(12, SIGBUS, "stack segment", stack_segment) -DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, get_cr2()) +DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, 0) asmlinkage void do_general_protection(struct pt_regs * regs, long error_code) { diff -puN arch/x86_64/kernel/traps.c~x86-64-x86-dont-pass-cr2-on-alignment-faults arch/x86_64/kernel/traps.c --- 25/arch/x86_64/kernel/traps.c~x86-64-x86-dont-pass-cr2-on-alignment-faults Tue Sep 14 17:04:12 2004 +++ 25-akpm/arch/x86_64/kernel/traps.c Tue Sep 14 17:04:12 2004 @@ -466,7 +466,7 @@ DO_ERROR( 7, SIGSEGV, "device not availa DO_ERROR( 9, SIGFPE, "coprocessor segment overrun", coprocessor_segment_overrun) DO_ERROR(10, SIGSEGV, "invalid TSS", invalid_TSS) DO_ERROR(11, SIGBUS, "segment not present", segment_not_present) -DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, get_cr2()) +DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, 0) DO_ERROR(18, SIGSEGV, "reserved", reserved) #define DO_ERROR_STACK(trapnr, signr, str, name) \ _