Просмотр исходного кода

ptrace: in PEEK_SIGINFO, check syscall bitness, not task bitness

Users of the 32-bit ptrace() ABI expect the full 32-bit ABI.  siginfo
translation should check ptrace() ABI, not caller task ABI.

This is an ABI change on SPARC.  Let's hope that no one relied on the
old buggy ABI.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Andy Lutomirski 9 лет назад
Родитель
Сommit
5c465217a9
1 измененных файлов с 1 добавлено и 1 удалено
  1. 1 1
      kernel/ptrace.c

+ 1 - 1
kernel/ptrace.c

@@ -681,7 +681,7 @@ static int ptrace_peek_siginfo(struct task_struct *child,
 			break;
 			break;
 
 
 #ifdef CONFIG_COMPAT
 #ifdef CONFIG_COMPAT
-		if (unlikely(is_compat_task())) {
+		if (unlikely(in_compat_syscall())) {
 			compat_siginfo_t __user *uinfo = compat_ptr(data);
 			compat_siginfo_t __user *uinfo = compat_ptr(data);
 
 
 			if (copy_siginfo_to_user32(uinfo, &info) ||
 			if (copy_siginfo_to_user32(uinfo, &info) ||