Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1262771
| From | Amanieu d'Antras <amanieu@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v2 14/20] powerpc: Use generic copy_siginfo_{to,from}_user32 |
| Date | 2015-11-05 02:00 +0100 |
| Message-ID | <qrh4e-7PW-13@gated-at.bofh.it> (permalink) |
| References | <qrh4d-7PW-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Signed-off-by: Amanieu d'Antras <amanieu@gmail.com>
---
arch/powerpc/include/asm/compat.h | 5 ---
arch/powerpc/kernel/signal_32.c | 72 +--------------------------------------
2 files changed, 1 insertion(+), 76 deletions(-)
diff --git a/arch/powerpc/include/asm/compat.h b/arch/powerpc/include/asm/compat.h
index f0f8392..6d9c7aa 100644
--- a/arch/powerpc/include/asm/compat.h
+++ b/arch/powerpc/include/asm/compat.h
@@ -124,11 +124,6 @@ typedef union compat_sigval {
compat_uptr_t sival_ptr;
} compat_sigval_t;
-#define SI_PAD_SIZE32 (128/sizeof(int) - 3)
-
-#define HAVE_ARCH_COPY_SIGINFO_TO_USER32
-#define HAVE_ARCH_COPY_SIGINFO_FROM_USER32
-
#define COMPAT_OFF_T_MAX 0x7fffffff
#define COMPAT_LOFF_T_MAX 0x7fffffffffffffffL
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index 0dbee46..66c47d0 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -907,78 +907,8 @@ static long restore_tm_user_regs(struct pt_regs *regs,
#endif
#ifdef CONFIG_PPC64
-int copy_siginfo_to_user32(struct compat_siginfo __user *d, const siginfo_t *s)
-{
- int err;
-
- if (!access_ok (VERIFY_WRITE, d, sizeof(*d)))
- return -EFAULT;
-
- /* If you change siginfo_t structure, please be sure
- * this code is fixed accordingly.
- * It should never copy any pad contained in the structure
- * to avoid security leaks, but must copy the generic
- * 3 ints plus the relevant union member.
- * This routine must convert siginfo from 64bit to 32bit as well
- * at the same time.
- */
- err = __put_user(s->si_signo, &d->si_signo);
- err |= __put_user(s->si_errno, &d->si_errno);
- err |= __put_user((short)s->si_code, &d->si_code);
- if (s->si_code < 0)
- err |= __copy_to_user(&d->_sifields._pad, &s->_sifields._pad,
- SI_PAD_SIZE32);
- else switch(s->si_code >> 16) {
- case __SI_CHLD >> 16:
- err |= __put_user(s->si_pid, &d->si_pid);
- err |= __put_user(s->si_uid, &d->si_uid);
- err |= __put_user(s->si_utime, &d->si_utime);
- err |= __put_user(s->si_stime, &d->si_stime);
- err |= __put_user(s->si_status, &d->si_status);
- break;
- case __SI_FAULT >> 16:
- err |= __put_user((unsigned int)(unsigned long)s->si_addr,
- &d->si_addr);
- break;
- case __SI_POLL >> 16:
- err |= __put_user(s->si_band, &d->si_band);
- err |= __put_user(s->si_fd, &d->si_fd);
- break;
- case __SI_TIMER >> 16:
- err |= __put_user(s->si_tid, &d->si_tid);
- err |= __put_user(s->si_overrun, &d->si_overrun);
- err |= __put_user(s->si_int, &d->si_int);
- break;
- case __SI_SYS >> 16:
- err |= __put_user(ptr_to_compat(s->si_call_addr), &d->si_call_addr);
- err |= __put_user(s->si_syscall, &d->si_syscall);
- err |= __put_user(s->si_arch, &d->si_arch);
- break;
- case __SI_RT >> 16: /* This is not generated by the kernel as of now. */
- case __SI_MESGQ >> 16:
- err |= __put_user(s->si_int, &d->si_int);
- /* fallthrough */
- case __SI_KILL >> 16:
- default:
- err |= __put_user(s->si_pid, &d->si_pid);
- err |= __put_user(s->si_uid, &d->si_uid);
- break;
- }
- return err;
-}
-
#define copy_siginfo_to_user copy_siginfo_to_user32
-
-int copy_siginfo_from_user32(siginfo_t *to, struct compat_siginfo __user *from)
-{
- if (copy_from_user(to, from, 3*sizeof(int)) ||
- copy_from_user(to->_sifields._pad,
- from->_sifields._pad, SI_PAD_SIZE32))
- return -EFAULT;
-
- return 0;
-}
-#endif /* CONFIG_PPC64 */
+#endif
/*
* Set up a signal frame for a "real-time" signal handler
--
2.6.2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v2 00/20] Fix handling of compat_siginfo_t Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 14/20] powerpc: Use generic copy_siginfo_{to,from}_user32 Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 04/20] x86: Rewrite copy_siginfo_{to,from}_user32 Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
Re: [PATCH v2 04/20] x86: Rewrite copy_siginfo_{to,from}_user32 "H. Peter Anvin" <hpa@zytor.com> - 2015-11-05 03:40 +0100
[PATCH v2 05/20] mips: Clean up compat_siginfo_t Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 06/20] mips: Use generic copy_siginfo_{to,from}_user32 Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 19/20] signalfd: Fix some issues in signalfd_copyinfo Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 11/20] s390: Use generic compat_siginfo_t Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 10/20] parsic: Use generic copy_siginfo_{to,from}_user32 Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 17/20] sparc: Use generic compat_siginfo_t Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 18/20] sparc: Use generic copy_siginfo_{to,from}_user32 Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 03/20] x86: Update compat_siginfo_t to be closer to the generic version Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 20/20] signal: Remove unnecessary zero-initialization of siginfo_t Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 02/20] compat: Add generic copy_siginfo_{to,from}_user32 Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 16/20] tile: Use generic copy_siginfo_{to,from}_user32 Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 07/20] arm64: Use generic compat_siginfo_t Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
[PATCH v2 01/20] compat: Add generic compat_siginfo_t Amanieu d'Antras <amanieu@gmail.com> - 2015-11-05 02:00 +0100
Re: [PATCH v2 00/20] Fix handling of compat_siginfo_t Andy Lutomirski <luto@amacapital.net> - 2015-11-08 06:10 +0100
Re: [PATCH v2 00/20] Fix handling of compat_siginfo_t Oleg Nesterov <oleg@redhat.com> - 2015-11-09 15:20 +0100
csiph-web