Re: [PATCH] RISC-V: Fix PTRACE_SETREGSET bug.

From: Palmer Dabbelt
Date: Mon Jun 11 2018 - 20:46:35 EST


On Mon, 11 Jun 2018 14:48:22 PDT (-0700), Jim Wilson wrote:
In riscv_gpr_set, pass regs instead of &regs to user_regset_copyin to fix
gdb segfault.

Signed-off-by: Jim Wilson <jimw@xxxxxxxxxx>
---
arch/riscv/kernel/ptrace.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/riscv/kernel/ptrace.c b/arch/riscv/kernel/ptrace.c
index ba3e80712797..9f82a7e34c64 100644
--- a/arch/riscv/kernel/ptrace.c
+++ b/arch/riscv/kernel/ptrace.c
@@ -50,7 +50,7 @@ static int riscv_gpr_set(struct task_struct *target,
struct pt_regs *regs;

regs = task_pt_regs(target);
- ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &regs, 0, -1);
+ ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, regs, 0, -1);
return ret;
}

Whoops, that's embarassing :). I poked around and didn't see this anywhere else, so I'm not sure where we managed to obtain this particular pathology.

Thanks for the patch!