Pavel Machek firstname.lastname@example.org writes:
This is v4 of Syscall User Redirection. The implementation itself is not modified from v3, it only applies the latest round of reviews to the selftests.
__NR_syscalls is not really exported in header files other than asm-generic for every architecture, so it felt safer to optionally expose it with a fallback to a high value.
Also, I didn't expose tests for PR_GET as that is not currently implemented. If possible, I'd have it supported by a future patchset, since it is not immediately necessary to support this feature.
Finally, one question: Which tree would this go through?
Should it come with Documentation?
Thanks for the review.
I will prepare it for the next iteration.
How does it interact with ptrace, seccomp and similar?
That is a very good question.
Regarding seccomp, this must take precedence, since the use case is emulation (it can be invoked with a different ABI) such that seccomp filtering by syscall number doesn't make sense in the first place. In addition, either the syscall is dispatched back to userspace, in which case there is no resource for seccomp to protect, or the syscall will be executed, and seccomp will execute next.
Regarding ptrace, I experimented with before and after, and while the same ABI argument applies, I felt it was easier to debug if I let ptrace happen for syscalls that are dispatched back to userspace. In addition, doing it after ptrace makes the code in syscall_exit_work slightly simpler, since it doesn't require special handling for this feature.
For PTRACE_SYSEMU in particular, either placing this before or after is a bit odd. I don't think there is a right answer for this one, but I don't see anyone wanting to use these features at the same time. I think as long as it is documented behavior, it should be fine either way.