ptrace support has been tested on Debian/s390x.
It should also work on s390 but this has not been tested. I have not added a compat mode to trace 31-bit binaries on s390x due to the lack of a test system.
This commit is contained in:
@@ -196,29 +196,21 @@
|
||||
# define reg_arg2(x) (x).a1
|
||||
# define reg_arg3(x) (x).a2
|
||||
# define reg_arg4(x) (x).a3
|
||||
#elif defined(__s390x__)
|
||||
/* Untested/incomplete.
|
||||
* s390x may not support setting the system call return via ptrace.
|
||||
*/
|
||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_S390X
|
||||
# define sudo_pt_regs s390_regs
|
||||
# define reg_syscall(x) (x).gprs[1] /* r1 */
|
||||
# define reg_retval(x) (x).gprs[2] /* r2 */
|
||||
# define reg_sp(x) (x).gprs[15] /* r15 */
|
||||
# define reg_arg1(x) (x).gprs[2] /* r2 */
|
||||
# define reg_arg2(x) (x).gprs[3] /* r3 */
|
||||
# define reg_arg3(x) (x).gprs[4] /* r4 */
|
||||
# define reg_arg4(x) (x).gprs[5] /* r6 */
|
||||
#elif defined(__s390__)
|
||||
/* Untested/incomplete.
|
||||
* s390 may not support setting the system call return via ptrace.
|
||||
/*
|
||||
* Both the syscall number and return value are stored in r2 for
|
||||
* the s390 ptrace API. The first argument is stored in orig_gpr2.
|
||||
*/
|
||||
# if defined(__s390x__)
|
||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_S390X
|
||||
# else
|
||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_S390
|
||||
# endif
|
||||
# define sudo_pt_regs s390_regs
|
||||
# define reg_syscall(x) (x).gprs[1] /* r1 */
|
||||
# define reg_syscall(x) (x).gprs[2] /* r2 */
|
||||
# define reg_retval(x) (x).gprs[2] /* r2 */
|
||||
# define reg_sp(x) (x).gprs[15] /* r15 */
|
||||
# define reg_arg1(x) (x).gprs[2] /* r2 */
|
||||
# define reg_arg1(x) (x).orig_gpr2 /* r2 */
|
||||
# define reg_arg2(x) (x).gprs[3] /* r3 */
|
||||
# define reg_arg3(x) (x).gprs[4] /* r4 */
|
||||
# define reg_arg4(x) (x).gprs[5] /* r6 */
|
||||
|
@@ -96,7 +96,7 @@ union sudo_token_un {
|
||||
*/
|
||||
#if defined(_PATH_SUDO_INTERCEPT) && defined(__linux__)
|
||||
# if defined(HAVE_DECL_SECCOMP_SET_MODE_FILTER) && HAVE_DECL_SECCOMP_SET_MODE_FILTER
|
||||
# if defined(__amd64__) || defined(__i386__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc__) || (defined(__riscv) && __riscv_xlen == 64)
|
||||
# if defined(__amd64__) || defined(__i386__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc__) || (defined(__riscv) && __riscv_xlen == 64) || defined(__s390__)
|
||||
# ifndef HAVE_PTRACE_INTERCEPT
|
||||
# define HAVE_PTRACE_INTERCEPT 1
|
||||
# endif /* HAVE_PTRACE_INTERCEPT */
|
||||
|
Reference in New Issue
Block a user