]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
[PATCH] x86_64: Fix ptrace boundary check
authorAndi Kleen <ak@suse.de>
Wed, 1 Jun 2005 10:47:30 +0000 (12:47 +0200)
committerChris Wright <chrisw@osdl.org>
Sun, 12 Jun 2005 02:45:24 +0000 (19:45 -0700)
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 <ak@suse.de>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86_64/kernel/ptrace.c

index cddc37a5415ac2fecfd246bb80e3a22d462eac22..85105ec76259f867955c49de9828f2b2aa43a6ff 100644 (file)
@@ -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 */