| From stable-bounces@linux.kernel.org Wed Feb 14 18:42:06 2007 |
| From: "Paolo 'Blaisorblade' Giarrusso" <blaisorblade@yahoo.it> |
| Date: Thu, 15 Feb 2007 03:34:23 +0100 |
| Subject: x86_64: fix 2.6.18 regression - PTRACE_OLDSETOPTIONS should be accepted |
| To: Andrew Morton <akpm@osdl.org>, stable@kernel.org |
| Cc: Jeff Dike <jdike@addtoit.com>, Andi Kleen <ak@suse.de>, user-mode-linux-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org |
| Message-ID: <11715068631914-git-send-email-blaisorblade@yahoo.it> |
| |
| |
| Also PTRACE_OLDSETOPTIONS should be accepted, as done by kernel/ptrace.c and |
| forced by binary compatibility. UML/32bit breaks because of this - since it is wise |
| enough to use PTRACE_OLDSETOPTIONS to be binary compatible with 2.4 host |
| kernels. |
| |
| Until 2.6.17 (commit f0f2d6536e3515b5b1b7ae97dc8f176860c8c2ce) we had: |
| |
| default: |
| return sys_ptrace(request, pid, addr, data); |
| |
| Instead here we have: |
| case PTRACE_GET_THREAD_AREA: |
| case ...: |
| return sys_ptrace(request, pid, addr, data); |
| |
| default: |
| return -EINVAL; |
| |
| This change was a style change - when a case is added, it must be explicitly |
| tested this way. In this case, not enough testing was done. |
| |
| Cc: Andi Kleen <ak@suse.de> |
| Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/x86_64/ia32/ptrace32.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- linux-2.6.20.1.orig/arch/x86_64/ia32/ptrace32.c |
| +++ linux-2.6.20.1/arch/x86_64/ia32/ptrace32.c |
| @@ -243,6 +243,7 @@ asmlinkage long sys32_ptrace(long reques |
| case PTRACE_SINGLESTEP: |
| case PTRACE_DETACH: |
| case PTRACE_SYSCALL: |
| + case PTRACE_OLDSETOPTIONS: |
| case PTRACE_SETOPTIONS: |
| case PTRACE_SET_THREAD_AREA: |
| case PTRACE_GET_THREAD_AREA: |