From: Andi Kleen Date: Wed, 1 Jun 2005 10:47:30 +0000 (+0200) Subject: [PATCH] x86_64: Fix ptrace boundary check X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa7405406223dd246f5ab6b7dce0efde0d583a43;p=thirdparty%2Fkernel%2Fstable.git [PATCH] x86_64: Fix ptrace boundary check Don't allow accesses below register frame in ptrace There was a "off by one quad word" error in there. Found and fixed by John Blackwood Signed-off-by: Andi Kleen Signed-off-by: Chris Wright Signed-off-by: Greg Kroah-Hartman --- diff --git a/arch/x86_64/kernel/ptrace.c b/arch/x86_64/kernel/ptrace.c index cddc37a5415ac..85105ec76259f 100644 --- a/arch/x86_64/kernel/ptrace.c +++ b/arch/x86_64/kernel/ptrace.c @@ -252,7 +252,7 @@ asmlinkage long sys_ptrace(long request, long pid, unsigned long addr, long data break; switch (addr) { - case 0 ... sizeof(struct user_regs_struct): + case 0 ... sizeof(struct user_regs_struct) - sizeof(long): tmp = getreg(child, addr); break; case offsetof(struct user, u_debugreg[0]): @@ -297,7 +297,7 @@ asmlinkage long sys_ptrace(long request, long pid, unsigned long addr, long data break; switch (addr) { - case 0 ... sizeof(struct user_regs_struct): + case 0 ... sizeof(struct user_regs_struct) - sizeof(long): ret = putreg(child, addr, data); break; /* Disallows to set a breakpoint into the vsyscall */