Pārlūkot izejas kodu

sandbox: allow enough setsockopt to make ConstrainedSockets work

fixes bug 12139; bugfix on 0.2.5.1-alpha
Nick Mathewson 10 gadi atpakaļ
vecāks
revīzija
a6688f9cbb
2 mainītis faili ar 16 papildinājumiem un 0 dzēšanām
  1. 4 0
      changes/bug12139
  2. 12 0
      src/common/sandbox.c

+ 4 - 0
changes/bug12139

@@ -0,0 +1,4 @@
+  o Minor bugfixes (linux seccomp sandbox):
+    - Avoid crashing with the seccomp sandbox enabled along with
+      ConstrainedSockets. Fixes bug 12139; bugfix on 0.2.5.1-alpha.
+

+ 12 - 0
src/common/sandbox.c

@@ -587,6 +587,18 @@ sb_setsockopt(scmp_filter_ctx ctx, sandbox_cfg_t *filter)
   if (rc)
     return rc;
 
+  rc = seccomp_rule_add_2(ctx, SCMP_ACT_ALLOW, SCMP_SYS(setsockopt),
+      SCMP_CMP(1, SCMP_CMP_EQ, SOL_SOCKET),
+      SCMP_CMP(2, SCMP_CMP_EQ, SO_SNDBUF));
+  if (rc)
+    return rc;
+
+  rc = seccomp_rule_add_2(ctx, SCMP_ACT_ALLOW, SCMP_SYS(setsockopt),
+      SCMP_CMP(1, SCMP_CMP_EQ, SOL_SOCKET),
+      SCMP_CMP(2, SCMP_CMP_EQ, SO_RCVBUF));
+  if (rc)
+    return rc;
+
 #ifdef IP_TRANSPARENT
   rc = seccomp_rule_add_2(ctx, SCMP_ACT_ALLOW, SCMP_SYS(setsockopt),
       SCMP_CMP(1, SCMP_CMP_EQ, SOL_IP),