From ceaa6aa76beb4b97c435710b65ba02a951db5347 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 13 Sep 2017 19:33:54 +0200 Subject: [PATCH] seccomp: let's update @file-system a bit Let's add fremovexattr which was the only xattr syscall so far missing from the group, even though lremovexattr and friends where included. Add inotify_init, which is an older (but still supported) version of inotify_init1. Add oldfstat, oldlstat, oldstat which are old versions of the stat syscalls on some archs. Add utime, which is an older more limited version of utimes and utimensat. Enclose the "statx" entry in some ifdeffery to ensure libseccomp actually knows the syscall. If libseccomp doesn't know it, then we'd get EINVAL rather than EDOM (which is what is returned if a syscall is known but not available on the local system) when resolving the syscall name and we really don't want that, as we use the EDOM vs. EINVAL check for determining whether a syscall makes sense at all. Also, order things alphabetically. --- src/shared/seccomp-util.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/shared/seccomp-util.c b/src/shared/seccomp-util.c index b4fbb03932a..44dc027c961 100644 --- a/src/shared/seccomp-util.c +++ b/src/shared/seccomp-util.c @@ -362,24 +362,26 @@ const SyscallFilterSet syscall_filter_sets[_SYSCALL_FILTER_SET_MAX] = { "fchdir\0" "fchmod\0" "fchmodat\0" - "fcntl64\0" "fcntl\0" + "fcntl64\0" "fgetxattr\0" "flistxattr\0" + "fremovexattr\0" "fsetxattr\0" - "fstat64\0" "fstat\0" + "fstat64\0" "fstatat64\0" - "fstatfs64\0" "fstatfs\0" - "ftruncate64\0" + "fstatfs64\0" "ftruncate\0" + "ftruncate64\0" "futimesat\0" "getcwd\0" - "getdents64\0" "getdents\0" + "getdents64\0" "getxattr\0" "inotify_add_watch\0" + "inotify_init\0" "inotify_init1\0" "inotify_rm_watch\0" "lgetxattr\0" @@ -389,36 +391,43 @@ const SyscallFilterSet syscall_filter_sets[_SYSCALL_FILTER_SET_MAX] = { "llistxattr\0" "lremovexattr\0" "lsetxattr\0" - "lstat64\0" "lstat\0" + "lstat64\0" "mkdir\0" "mkdirat\0" "mknod\0" "mknodat\0" - "mmap2\0" "mmap\0" + "mmap2\0" "munmap\0" "newfstatat\0" + "oldfstat\0" + "oldlstat\0" + "oldstat\0" "open\0" "openat\0" "readlink\0" "readlinkat\0" "removexattr\0" "rename\0" - "renameat2\0" "renameat\0" + "renameat2\0" "rmdir\0" "setxattr\0" - "stat64\0" "stat\0" + "stat64\0" "statfs\0" + "statfs64\0" +#ifdef __PNR_statx "statx\0" +#endif "symlink\0" "symlinkat\0" - "truncate64\0" "truncate\0" + "truncate64\0" "unlink\0" "unlinkat\0" + "utime\0" "utimensat\0" "utimes\0" }, -- 2.47.3