Define sudo_pt_regs instead of user_pt_regs and include the struct keyword.
On s390, the struct is typedef'd without a name.
This commit is contained in:
@@ -57,7 +57,7 @@
|
|||||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_X86_64
|
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_X86_64
|
||||||
# define X32_execve __X32_SYSCALL_BIT + 520
|
# define X32_execve __X32_SYSCALL_BIT + 520
|
||||||
# define X32_execveat __X32_SYSCALL_BIT + 545
|
# define X32_execveat __X32_SYSCALL_BIT + 545
|
||||||
# define user_pt_regs user_regs_struct
|
# define sudo_pt_regs struct user_regs_struct
|
||||||
# define reg_syscall(x) (x).orig_rax
|
# define reg_syscall(x) (x).orig_rax
|
||||||
# define reg_retval(x) (x).rax
|
# define reg_retval(x) (x).rax
|
||||||
# define reg_sp(x) (x).rsp
|
# define reg_sp(x) (x).rsp
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
#elif defined(__arm__)
|
#elif defined(__arm__)
|
||||||
/* Note: assumes arm EABI, not OABI */
|
/* Note: assumes arm EABI, not OABI */
|
||||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_ARM
|
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_ARM
|
||||||
# define user_pt_regs pt_regs
|
# define sudo_pt_regs struct pt_regs
|
||||||
# define reg_syscall(x) (x).ARM_r7
|
# define reg_syscall(x) (x).ARM_r7
|
||||||
# define reg_retval(x) (x).ARM_r0
|
# define reg_retval(x) (x).ARM_r0
|
||||||
# define reg_sp(x) (x).ARM_sp
|
# define reg_sp(x) (x).ARM_sp
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
#elif defined (__hppa__)
|
#elif defined (__hppa__)
|
||||||
/* Untested (should also support hppa64) */
|
/* Untested (should also support hppa64) */
|
||||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_PARISC
|
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_PARISC
|
||||||
# define user_pt_regs user_regs_struct
|
# define sudo_pt_regs struct user_regs_struct
|
||||||
# define reg_syscall(x) (x).gr[20] /* r20 */
|
# define reg_syscall(x) (x).gr[20] /* r20 */
|
||||||
# define reg_retval(x) (x).gr[28] /* r28 */
|
# define reg_retval(x) (x).gr[28] /* r28 */
|
||||||
# define reg_sp(x) (x).gr[30] /* r30 */
|
# define reg_sp(x) (x).gr[30] /* r30 */
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
# define reg_arg4(x) (x).gr[23] /* r23 */
|
# define reg_arg4(x) (x).gr[23] /* r23 */
|
||||||
#elif defined(__i386__)
|
#elif defined(__i386__)
|
||||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_I386
|
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_I386
|
||||||
# define user_pt_regs user_regs_struct
|
# define sudo_pt_regs struct user_regs_struct
|
||||||
# define reg_syscall(x) (x).orig_eax
|
# define reg_syscall(x) (x).orig_eax
|
||||||
# define reg_retval(x) (x).eax
|
# define reg_retval(x) (x).eax
|
||||||
# define reg_sp(x) (x).esp
|
# define reg_sp(x) (x).esp
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
* We don't currently support this.
|
* We don't currently support this.
|
||||||
* MIPS may not support setting the system call return via ptrace.
|
* MIPS may not support setting the system call return via ptrace.
|
||||||
*/
|
*/
|
||||||
# define user_pt_regs pt_regs
|
# define sudo_pt_regs struct pt_regs
|
||||||
# define reg_syscall(x) (x).regs[2] /* v0 */
|
# define reg_syscall(x) (x).regs[2] /* v0 */
|
||||||
# define reg_retval(x) (x).regs[2] /* v0 */
|
# define reg_retval(x) (x).regs[2] /* v0 */
|
||||||
# define reg_sp(x) (x).regs[29] /* sp */
|
# define reg_sp(x) (x).regs[29] /* sp */
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
# else
|
# else
|
||||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_PPC
|
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_PPC
|
||||||
# endif
|
# endif
|
||||||
# define user_pt_regs pt_regs
|
# define sudo_pt_regs struct pt_regs
|
||||||
# define reg_syscall(x) (x).gpr[0] /* r0 */
|
# define reg_syscall(x) (x).gpr[0] /* r0 */
|
||||||
# define reg_retval(x) (x).gpr[3] /* r3 */
|
# define reg_retval(x) (x).gpr[3] /* r3 */
|
||||||
# define reg_sp(x) (x).gpr[1] /* r1 */
|
# define reg_sp(x) (x).gpr[1] /* r1 */
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
#elif defined(__riscv) && __riscv_xlen == 64
|
#elif defined(__riscv) && __riscv_xlen == 64
|
||||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_RISCV64
|
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_RISCV64
|
||||||
# define user_pt_regs user_regs_struct
|
# define sudo_pt_regs struct user_regs_struct
|
||||||
# define reg_syscall(x) (x).a7
|
# define reg_syscall(x) (x).a7
|
||||||
# define reg_retval(x) (x).a0
|
# define reg_retval(x) (x).a0
|
||||||
# define reg_sp(x) (x).sp
|
# define reg_sp(x) (x).sp
|
||||||
@@ -201,7 +201,7 @@
|
|||||||
* s390x may not support setting the system call return via ptrace.
|
* s390x may not support setting the system call return via ptrace.
|
||||||
*/
|
*/
|
||||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_S390X
|
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_S390X
|
||||||
# define user_pt_regs s390_regs
|
# define sudo_pt_regs s390_regs
|
||||||
# define reg_syscall(x) (x).gprs[1] /* r1 */
|
# define reg_syscall(x) (x).gprs[1] /* r1 */
|
||||||
# define reg_retval(x) (x).gprs[2] /* r2 */
|
# define reg_retval(x) (x).gprs[2] /* r2 */
|
||||||
# define reg_sp(x) (x).gprs[15] /* r15 */
|
# define reg_sp(x) (x).gprs[15] /* r15 */
|
||||||
@@ -214,7 +214,7 @@
|
|||||||
* s390 may not support setting the system call return via ptrace.
|
* s390 may not support setting the system call return via ptrace.
|
||||||
*/
|
*/
|
||||||
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_S390
|
# define SECCOMP_AUDIT_ARCH AUDIT_ARCH_S390
|
||||||
# define user_pt_regs s390_regs
|
# define sudo_pt_regs s390_regs
|
||||||
# define reg_syscall(x) (x).gprs[1] /* r1 */
|
# define reg_syscall(x) (x).gprs[1] /* r1 */
|
||||||
# define reg_retval(x) (x).gprs[2] /* r2 */
|
# define reg_retval(x) (x).gprs[2] /* r2 */
|
||||||
# define reg_sp(x) (x).gprs[15] /* r15 */
|
# define reg_sp(x) (x).gprs[15] /* r15 */
|
||||||
@@ -258,7 +258,7 @@ struct i386_user_regs_struct {
|
|||||||
# define SECCOMP_AUDIT_ARCH_COMPAT AUDIT_ARCH_I386
|
# define SECCOMP_AUDIT_ARCH_COMPAT AUDIT_ARCH_I386
|
||||||
# define COMPAT_execve 11
|
# define COMPAT_execve 11
|
||||||
# define COMPAT_execveat 358
|
# define COMPAT_execveat 358
|
||||||
# define compat_user_pt_regs i386_user_regs_struct
|
# define compat_sudo_pt_regs struct i386_user_regs_struct
|
||||||
# define compat_reg_syscall(x) (x).orig_eax
|
# define compat_reg_syscall(x) (x).orig_eax
|
||||||
# define compat_reg_retval(x) (x).eax
|
# define compat_reg_retval(x) (x).eax
|
||||||
# define compat_reg_sp(x) (x).esp
|
# define compat_reg_sp(x) (x).esp
|
||||||
@@ -273,7 +273,7 @@ struct arm_pt_regs {
|
|||||||
# define SECCOMP_AUDIT_ARCH_COMPAT AUDIT_ARCH_ARM
|
# define SECCOMP_AUDIT_ARCH_COMPAT AUDIT_ARCH_ARM
|
||||||
# define COMPAT_execve 11
|
# define COMPAT_execve 11
|
||||||
# define COMPAT_execveat 387
|
# define COMPAT_execveat 387
|
||||||
# define compat_user_pt_regs arm_pt_regs
|
# define compat_sudo_pt_regs struct arm_pt_regs
|
||||||
# define compat_reg_syscall(x) (x).uregs[7] /* r7 */
|
# define compat_reg_syscall(x) (x).uregs[7] /* r7 */
|
||||||
# define compat_reg_retval(x) (x).uregs[0] /* r0 */
|
# define compat_reg_retval(x) (x).uregs[0] /* r0 */
|
||||||
# define compat_reg_sp(x) (x).uregs[13] /* r13 */
|
# define compat_reg_sp(x) (x).uregs[13] /* r13 */
|
||||||
@@ -306,7 +306,7 @@ struct ppc_pt_regs {
|
|||||||
# endif
|
# endif
|
||||||
# define COMPAT_execve __NR_execve
|
# define COMPAT_execve __NR_execve
|
||||||
# define COMPAT_execveat __NR_execveat
|
# define COMPAT_execveat __NR_execveat
|
||||||
# define compat_user_pt_regs ppc_pt_regs
|
# define compat_sudo_pt_regs struct ppc_pt_regs
|
||||||
# define compat_reg_syscall(x) (x).gpr[0] /* r0 */
|
# define compat_reg_syscall(x) (x).gpr[0] /* r0 */
|
||||||
# define compat_reg_retval(x) (x).gpr[3] /* r3 */
|
# define compat_reg_retval(x) (x).gpr[3] /* r3 */
|
||||||
# define compat_reg_sp(x) (x).gpr[1] /* r1 */
|
# define compat_reg_sp(x) (x).gpr[1] /* r1 */
|
||||||
@@ -343,9 +343,9 @@ struct ppc_pt_regs {
|
|||||||
|
|
||||||
struct sudo_ptrace_regs {
|
struct sudo_ptrace_regs {
|
||||||
union {
|
union {
|
||||||
struct user_pt_regs native;
|
sudo_pt_regs native;
|
||||||
#ifdef SECCOMP_AUDIT_ARCH_COMPAT
|
#ifdef SECCOMP_AUDIT_ARCH_COMPAT
|
||||||
struct compat_user_pt_regs compat;
|
compat_sudo_pt_regs compat;
|
||||||
#endif
|
#endif
|
||||||
} u;
|
} u;
|
||||||
unsigned int wordsize;
|
unsigned int wordsize;
|
||||||
|
Reference in New Issue
Block a user