aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2018-01-25 00:31:45 -0500
committerTreehugger Robot <treehugger-gerrit@google.com>2018-01-25 22:43:20 +0000
commit8022e140219e9c8d99e9cba4a7d5e967bc6a4cf4 (patch)
tree6561ad763381967fd8c4607b6ebd304463c38d0c
parent1ed75bc11ec97be57fc032cbbb412aad143b54f8 (diff)
downloadminijail-8022e140219e9c8d99e9cba4a7d5e967bc6a4cf4.tar.gz
add seccomp syscall fallbacks
Some of the android prebuilts use linux 3.2.14 which don't include the seccomp syscall define. Add some fallbacks for the main arches we have support for in android. The rest we'll force to update. Bug: None Test: build passes for host Change-Id: I00bd3aeaed7df32cc28aee9ccd0172a1d0bd2a6c
-rw-r--r--syscall_wrapper.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/syscall_wrapper.c b/syscall_wrapper.c
index 5d57940..dd6f826 100644
--- a/syscall_wrapper.c
+++ b/syscall_wrapper.c
@@ -9,6 +9,25 @@
#include <sys/syscall.h>
#include <unistd.h>
+/*
+ * Older glibc builds predate seccomp inclusion. These arches are the ones
+ * AOSP needs and doesn't provide anything newer. All other targets can upgrade
+ * their kernel headers.
+ */
+#ifndef SYS_seccomp
+# if defined(__x86_64__)
+# define SYS_seccomp 317
+# elif defined(__i386__)
+# define SYS_seccomp 354
+# elif defined(__aarch64__)
+# define SYS_seccomp 277
+# elif defined(__arm__)
+# define SYS_seccomp 383
+# else
+# error "Update your kernel headers"
+# endif
+#endif
+
int sys_seccomp(unsigned int operation, unsigned int flags, void *args)
{
return syscall(SYS_seccomp, operation, flags, args);