mips: fix syscall_get_nr
The implementation of syscall_get_nr on mips used to ignore the task argument and return the syscall number of the calling thread instead of the target thread. The bug was exposed to user space by commit201766a20e
("ptrace: add PTRACE_GET_SYSCALL_INFO request") and detected by strace test suite. Link: https://github.com/strace/strace/issues/235 Fixes:c2d9f17757
("MIPS: Fix syscall_get_nr for the syscall exit tracing.") Cc: <stable@vger.kernel.org> # v3.19+ Co-developed-by: Dmitry V. Levin <ldv@strace.io> Signed-off-by: Dmitry V. Levin <ldv@strace.io> Signed-off-by: Elvira Khabirova <lineprinter0@gmail.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
This commit is contained in:
parent
6f02e39fa4
commit
85cc91e2ba
@ -38,7 +38,7 @@ static inline bool mips_syscall_is_indirect(struct task_struct *task,
|
|||||||
static inline long syscall_get_nr(struct task_struct *task,
|
static inline long syscall_get_nr(struct task_struct *task,
|
||||||
struct pt_regs *regs)
|
struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
return current_thread_info()->syscall;
|
return task_thread_info(task)->syscall;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void mips_syscall_update_nr(struct task_struct *task,
|
static inline void mips_syscall_update_nr(struct task_struct *task,
|
||||||
|
Loading…
Reference in New Issue
Block a user