aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <[email protected]>2017-12-11 22:56:54 +0000
committerRalf Baechle <[email protected]>2017-12-12 19:14:12 +0100
commitc8c5a3a24d395b14447a9a89d61586a913840a3b (patch)
tree9a4c78d6f34dfb9f3ccd58753bcde1fcd80adbb5
parent006501e039eec411842bb3150c41358867d320c2 (diff)
MIPS: Disallow outsized PTRACE_SETREGSET NT_PRFPREG regset accesses
Complement commit c23b3d1a5311 ("MIPS: ptrace: Change GP regset to use correct core dump register layout") and also reject outsized PTRACE_SETREGSET requests to the NT_PRFPREG regset, like with the NT_PRSTATUS regset. Signed-off-by: Maciej W. Rozycki <[email protected]> Fixes: c23b3d1a5311 ("MIPS: ptrace: Change GP regset to use correct core dump register layout") Cc: James Hogan <[email protected]> Cc: Paul Burton <[email protected]> Cc: Alex Smith <[email protected]> Cc: Dave Martin <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] # v3.17+ Patchwork: https://patchwork.linux-mips.org/patch/17930/ Signed-off-by: Ralf Baechle <[email protected]>
-rw-r--r--arch/mips/kernel/ptrace.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
index 256908951a7c..0b23b1ad99e6 100644
--- a/arch/mips/kernel/ptrace.c
+++ b/arch/mips/kernel/ptrace.c
@@ -550,6 +550,9 @@ static int fpr_set(struct task_struct *target,
BUG_ON(count % sizeof(elf_fpreg_t));
+ if (pos + count > sizeof(elf_fpregset_t))
+ return -EIO;
+
init_fp_ctx(target);
if (sizeof(target->thread.fpu.fpr[0]) == sizeof(elf_fpreg_t))