| From cba4cd9e4cd814942604b81e5992fc782da7cf77 Mon Sep 17 00:00:00 2001 |
| From: Dave Martin <Dave.Martin@arm.com> |
| Date: Mon, 27 Mar 2017 15:10:57 +0100 |
| Subject: [PATCH] metag/ptrace: Reject partial NT_METAG_RPIPE writes |
| |
| commit 7195ee3120d878259e8d94a5d9f808116f34d5ea upstream. |
| |
| It's not clear what behaviour is sensible when doing partial write of |
| NT_METAG_RPIPE, so just don't bother. |
| |
| This patch assumes that userspace will never rely on a partial SETREGSET |
| in this case, since it's not clear what should happen anyway. |
| |
| Signed-off-by: Dave Martin <Dave.Martin@arm.com> |
| Acked-by: James Hogan <james.hogan@imgtec.com> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/metag/kernel/ptrace.c b/arch/metag/kernel/ptrace.c |
| index 2e4dfc15abd3..5e2dc7defd2c 100644 |
| --- a/arch/metag/kernel/ptrace.c |
| +++ b/arch/metag/kernel/ptrace.c |
| @@ -253,6 +253,8 @@ int metag_rp_state_copyin(struct pt_regs *regs, |
| unsigned long long *ptr; |
| int ret, i; |
| |
| + if (count < 4*13) |
| + return -EINVAL; |
| /* Read the entire pipeline before making any changes */ |
| ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, |
| &rp, 0, 4*13); |
| -- |
| 2.12.0 |
| |