Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
New issues:
- [Low] The patch series breaks git bisectability by changing a core function signature before updating all architecture callers.
Pre-existing issues:
- [High] The return value of `do_syscall_trace_enter()` is ignored, breaking ptrace syscall abortion (e.g., PTRACE_SYSEMU).
--
--- Patch [8]: [PATCH 08/13] openrisc: pass all six syscall args to audit_syscall_entry() ---
commit 9ca4bd79e1e00767e994486accfe2484de6f3a04
Author: Ricardo Robaina <[email protected]>
openrisc: pass all six syscall args to audit_syscall_entry()
Update the audit_syscall_entry() call to forward the 5th and 6th syscall
arguments (gpr[7], gpr[8]) now that the audit core logs all six.
> diff --git a/arch/openrisc/kernel/ptrace.c b/arch/openrisc/kernel/ptrace.c
> index 552489b24855c..197a616d6c65c 100644
> --- a/arch/openrisc/kernel/ptrace.c
> +++ b/arch/openrisc/kernel/ptrace.c
> @@ -302,7 +302,8 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
> ret = -1L;
>
> audit_syscall_entry(regs->gpr[11], regs->gpr[3], regs->gpr[4],
> - regs->gpr[5], regs->gpr[6]);
> + regs->gpr[5], regs->gpr[6],
> + regs->gpr[7], regs->gpr[8]);
[Severity: Low]
Will this change cause a git bisectability regression if architecture
callers are updated in subsequent commits?
If the core function signature of audit_syscall_entry() was changed in a
previous commit, intermediate commits checked out between the core change
and this architecture update will fail to compile on OpenRISC with a
"too few arguments to function" error.
>
> return ret ? : regs->gpr[11];
> }
[Severity: High]
This isn't a bug introduced by this patch, but is the return value ignored
by the assembly caller, potentially breaking ptrace syscall abortion?
If tracing decides a syscall should not happen (e.g., via PTRACE_SYSEMU)
and ptrace_report_syscall_entry() returns non-zero, this function attempts
to abort the syscall by returning -1L in r11.
However, the caller in arch/openrisc/kernel/entry.S unconditionally
reloads the original syscall number into r11, discarding the return value:
arch/openrisc/kernel/entry.S:_syscall_trace_enter()
...
l.jal do_syscall_trace_enter
l.addi r3,r1,0
/* Restore arguments ... */
l.lwz r11,PT_GPR11(r1)
...
Can this allow the original syscall to execute regardless of the tracer's
abort request?
--
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=8
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.