Browse Source

Allow getsockopt(…, SOL_SOCKET, SO_ACCEPTCONN, …) in sandbox

SO_ACCEPTCONN checks whether socket listening is enabled and is
used ever since 9369152aae9527cc3764 has been merged.

Closes ticket #29150
Peter Gerber 6 years ago
parent
commit
db3ee1d862
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/lib/sandbox/sandbox.c

+ 6 - 0
src/lib/sandbox/sandbox.c

@@ -832,6 +832,12 @@ sb_getsockopt(scmp_filter_ctx ctx, sandbox_cfg_t *filter)
   if (rc)
   if (rc)
     return rc;
     return rc;
 
 
+  rc = seccomp_rule_add_2(ctx, SCMP_ACT_ALLOW, SCMP_SYS(getsockopt),
+      SCMP_CMP(1, SCMP_CMP_EQ, SOL_SOCKET),
+      SCMP_CMP(2, SCMP_CMP_EQ, SO_ACCEPTCONN));
+  if (rc)
+    return rc;
+
 #ifdef HAVE_SYSTEMD
 #ifdef HAVE_SYSTEMD
   rc = seccomp_rule_add_2(ctx, SCMP_ACT_ALLOW, SCMP_SYS(getsockopt),
   rc = seccomp_rule_add_2(ctx, SCMP_ACT_ALLOW, SCMP_SYS(getsockopt),
       SCMP_CMP(1, SCMP_CMP_EQ, SOL_SOCKET),
       SCMP_CMP(1, SCMP_CMP_EQ, SOL_SOCKET),