Browse Source

Allow setsockopt(IPV6_V6ONLY) in sandbox.

Fixes bug 20247.  We started setting V6ONLY in 0.2.3.13-alpha and
added the sandbox on 0.2.5.1-alpha.
Nick Mathewson 6 years ago
parent
commit
16d2bce893
2 changed files with 12 additions and 0 deletions
  1. 4 0
      changes/bug20247
  2. 8 0
      src/common/sandbox.c

+ 4 - 0
changes/bug20247

@@ -0,0 +1,4 @@
+  o Minor bugfixes (linux seccomp2 sandbox):
+    - Avoid a sandbox failure when trying to re-bind to a socket and mark
+      it as IPv6-only. Fixes bug 20247; bugfix on 0.2.5.1-alpha.
+

+ 8 - 0
src/common/sandbox.c

@@ -728,6 +728,14 @@ sb_setsockopt(scmp_filter_ctx ctx, sandbox_cfg_t *filter)
     return rc;
 #endif
 
+#ifdef IPV6_V6ONLY
+  rc = seccomp_rule_add_2(ctx, SCMP_ACT_ALLOW, SCMP_SYS(setsockopt),
+      SCMP_CMP(1, SCMP_CMP_EQ, IPPROTO_IPV6),
+      SCMP_CMP(2, SCMP_CMP_EQ, IPV6_V6ONLY));
+  if (rc)
+    return rc;
+#endif
+
   return 0;
 }