changeset 5469:f9a05c95d611 draft

privsep: Add more platforms for seccomp Really nutty. Why cannot a system header define a default?
author Roy Marples <roy@marples.name>
date Sun, 20 Sep 2020 20:22:40 +0100
parents a2d2d095088f
children d7a5671d08c5
files src/privsep-linux.c
diffstat 1 files changed, 23 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/privsep-linux.c	Sun Sep 20 19:44:23 2020 +0100
+++ b/src/privsep-linux.c	Sun Sep 20 20:22:40 2020 +0100
@@ -127,6 +127,8 @@
 
 #define SECCOMP_FILTER_FAIL	SECCOMP_RET_KILL
 
+/* I personally find this quite nutty.
+ * Why can a system header not define a default for this? */
 #if defined(__i386__)
 #  define SECCOMP_AUDIT_ARCH AUDIT_ARCH_I386
 #elif defined(__x86_64__)
@@ -135,9 +137,23 @@
 #  ifndef EM_ARM
 #    define EM_ARM 40
 #  endif
-#  define SECCOMP_AUDIT_ARCH AUDIT_ARCH_ARM
+#  if (BYTE_ORDER == LITTLE_ENDIAN)
+#    define SECCOMP_AUDIT_ARCH AUDIT_ARCH_ARM
+#  else
+#    define SECCOMP_AUDIT_ARCH AUDIT_ARCH_ARMEB
+#  endif
 #elif defined(__aarch64__)
 #  define SECCOMP_AUDIT_ARCH AUDIT_ARCH_AARCH64
+#elif defined(__alpha__)
+#  define SECCOMP_AUDIT_ARCH AUDIT_ARCH_ALPHA
+#elif defined(__hppa__)
+#  if defined(__LP64__)
+#    define SECCOMP_AUDIT_ARCH AUDIT_ARCH_PARISC64
+#  else
+#    define SECCOMP_AUDIT_ARCH AUDIT_ARCH_PARISC
+#  endif
+#elif defined(__ia64__)
+#  define SECCOMP_AUDIT_ARCH AUDIT_ARCH_IA64
 #elif defined(__mips__)
 #  if defined(__MIPSEL__)
 #    if defined(__LP64__)
@@ -154,6 +170,12 @@
 #  define SECCOMP_AUDIT_ARCH AUDIT_ARCH_PPC64
 #elif defined(__powerpc__)
 #  define SECCOMP_AUDIT_ARCH AUDIT_ARCH_PPC
+#elif defined(__riscv)
+#  if defined(__LP64__)
+#    define SECCOMP_AUDIT_ARCH AUDIT_ARCH_RISCV64
+#  else
+#    define SECCOMP_AUDIT_ARCH AUDIT_ARCH_RISCV32
+#  endif
 #elif defined(__s390x__)
 #  define SECCOMP_AUDIT_ARCH AUDIT_ARCH_S390X
 #elif defined(__s390__)