Skip to content

Commit

Permalink
seccomp-util: include missing_syscall_def.h to make __SNR_foo mapped …
Browse files Browse the repository at this point in the history
…to __NR_foo

Fixes systemd#21969.
  • Loading branch information
yuwata committed Jan 2, 2022
1 parent d96ad9e commit e83156c
Showing 1 changed file with 4 additions and 7 deletions.
11 changes: 4 additions & 7 deletions src/shared/seccomp-util.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@
#include <errno.h>
#include <fcntl.h>
#include <linux/seccomp.h>
#include <seccomp.h>
#include <stddef.h>
#include <sys/mman.h>
#include <sys/prctl.h>
#include <sys/shm.h>
#include <sys/stat.h>

/* include missing_syscall_def.h earlier to make __SNR_foo mapped to __NR_foo. */
#include "missing_syscall_def.h"
#include <seccomp.h>

#include "af-list.h"
#include "alloc-util.h"
#include "env-util.h"
Expand Down Expand Up @@ -1736,13 +1739,11 @@ int seccomp_memory_deny_write_execute(void) {
if (r < 0)
continue;

#ifdef __NR_pkey_mprotect
r = add_seccomp_syscall_filter(seccomp, arch, SCMP_SYS(pkey_mprotect),
1,
SCMP_A2(SCMP_CMP_MASKED_EQ, PROT_EXEC, PROT_EXEC));
if (r < 0)
continue;
#endif

if (shmat_syscall > 0) {
r = add_seccomp_syscall_filter(seccomp, arch, shmat_syscall,
Expand Down Expand Up @@ -2063,7 +2064,6 @@ static int seccomp_restrict_sxid(scmp_filter_ctx seccomp, mode_t m) {
else
any = true;

#if SCMP_SYS(open) > 0
r = seccomp_rule_add_exact(
seccomp,
SCMP_ACT_ERRNO(EPERM),
Expand All @@ -2075,7 +2075,6 @@ static int seccomp_restrict_sxid(scmp_filter_ctx seccomp, mode_t m) {
log_debug_errno(r, "Failed to add filter for open: %m");
else
any = true;
#endif

r = seccomp_rule_add_exact(
seccomp,
Expand Down Expand Up @@ -2213,7 +2212,6 @@ static int block_open_flag(scmp_filter_ctx seccomp, int flag) {
/* Blocks open() with the specified flag, where flag is O_SYNC or so. This makes these calls return
* EINVAL, in the hope the client code will retry without O_SYNC then. */

#if SCMP_SYS(open) > 0
r = seccomp_rule_add_exact(
seccomp,
SCMP_ACT_ERRNO(EINVAL),
Expand All @@ -2224,7 +2222,6 @@ static int block_open_flag(scmp_filter_ctx seccomp, int flag) {
log_debug_errno(r, "Failed to add filter for open: %m");
else
any = true;
#endif

r = seccomp_rule_add_exact(
seccomp,
Expand Down

0 comments on commit e83156c

Please sign in to comment.