diff options
author | Andi Kleen <ak@suse.de> | 2005-06-01 12:47:30 +0200 |
---|---|---|
committer | Chris Wright <chrisw@osdl.org> | 2005-06-11 19:45:24 -0700 |
commit | fa7405406223dd246f5ab6b7dce0efde0d583a43 (patch) | |
tree | b5ef44650279196f876152a87bcccc6acacf6948 | |
parent | 51af80e5f428d3d15b37c1f2df0479839a1d1fa4 (diff) | |
download | linux-stable-fa7405406223dd246f5ab6b7dce0efde0d583a43.tar.gz linux-stable-fa7405406223dd246f5ab6b7dce0efde0d583a43.tar.bz2 linux-stable-fa7405406223dd246f5ab6b7dce0efde0d583a43.zip |
[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 <ak@suse.de>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | arch/x86_64/kernel/ptrace.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86_64/kernel/ptrace.c b/arch/x86_64/kernel/ptrace.c index cddc37a5415a..85105ec76259 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 */ |