]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix crash when tor is compiled with NSS and seccomp sandbox is enabled
authorDaniel Pinto <danielpinto52@gmail.com>
Wed, 6 May 2020 21:00:50 +0000 (22:00 +0100)
committerNick Mathewson <nickm@torproject.org>
Tue, 12 May 2020 16:56:06 +0000 (12:56 -0400)
Adds seccomp rules for socket and getpeername used by NSS

changes/bug34130 [new file with mode: 0644]
src/lib/sandbox/sandbox.c

diff --git a/changes/bug34130 b/changes/bug34130
new file mode 100644 (file)
index 0000000..b1e5715
--- /dev/null
@@ -0,0 +1,4 @@
+  o Minor bugfixes (linux seccomp sandbox nss):
+    - Fix startup crash when tor is compiled with --enable-nss and 
+      sandbox support is enabled. Fixes bug 34130; bugfix on
+      0.3.5.1-alpha. Patch by Daniel Pinto.
index 8f577b066048e22fda3a54160e41d6ebbc95a0fc..b701c00160bf57455278b2a63d9293821c7568dd 100644 (file)
@@ -265,6 +265,11 @@ static int filter_nopar_gen[] = {
     SCMP_SYS(listen),
     SCMP_SYS(connect),
     SCMP_SYS(getsockname),
+#ifdef ENABLE_NSS
+#ifdef __NR_getpeername
+    SCMP_SYS(getpeername),
+#endif
+#endif
     SCMP_SYS(recvmsg),
     SCMP_SYS(recvfrom),
     SCMP_SYS(sendto),
@@ -647,6 +652,15 @@ sb_socket(scmp_filter_ctx ctx, sandbox_cfg_t *filter)
     }
   }
 
+#ifdef ENABLE_NSS
+  rc = seccomp_rule_add_3(ctx, SCMP_ACT_ALLOW, SCMP_SYS(socket),
+    SCMP_CMP(0, SCMP_CMP_EQ, PF_INET),
+    SCMP_CMP(1, SCMP_CMP_EQ, SOCK_STREAM),
+    SCMP_CMP(2, SCMP_CMP_EQ, IPPROTO_IP));
+  if (rc)
+    return rc;
+#endif
+
   rc = seccomp_rule_add_3(ctx, SCMP_ACT_ALLOW, SCMP_SYS(socket),
       SCMP_CMP(0, SCMP_CMP_EQ, PF_UNIX),
       SCMP_CMP_MASKED(1, SOCK_CLOEXEC|SOCK_NONBLOCK, SOCK_STREAM),