summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-04-03 12:36:03 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-04-03 13:24:43 +0200
commitdff6c6295b1cb09d6da8ab054e66059e43247ab1 (patch)
treed4e0123c0de5e6995b703b64bc959b65d15526c4
parentbuild-sys: bump package version (diff)
downloadsystemd-dff6c6295b1cb09d6da8ab054e66059e43247ab1.tar.xz
systemd-dff6c6295b1cb09d6da8ab054e66059e43247ab1.zip
test-seccomp: fix compilation on arm64
It has no open().
-rw-r--r--src/test/test-seccomp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/test/test-seccomp.c b/src/test/test-seccomp.c
index 8efbecbeff..9b7307cf39 100644
--- a/src/test/test-seccomp.c
+++ b/src/test/test-seccomp.c
@@ -7,6 +7,7 @@
#include <sys/mman.h>
#include <sys/personality.h>
#include <sys/shm.h>
+#include <sys/syscall.h>
#include <sys/types.h>
#include <unistd.h>
@@ -763,9 +764,14 @@ static void test_lock_personality(void) {
static int real_open(const char *path, int flags, mode_t mode) {
/* glibc internally calls openat() when open() is requested. Let's hence define our own wrapper for
- * testing purposes that calls the real syscall. */
+ * testing purposes that calls the real syscall, on architectures where SYS_open is defined. On
+ * other architectures, let's just fall back to the glibc call. */
+#ifdef SYS_open
return (int) syscall(SYS_open, path, flags, mode);
+#else
+ return open(path, flags, mode);
+#endif
}
static void test_restrict_suid_sgid(void) {