aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-05-29 11:04:32 -0400
committerNick Mathewson <nickm@torproject.org>2014-05-29 11:04:32 -0400
commita6688f9cbb930ad139a7f3886684fcadeec59d30 (patch)
tree52bc7d3237ccffb2ec4d790194f0be32267441cc
parenta056ffabbbdc76598830331c6550740a24fadeb8 (diff)
downloadtor-a6688f9cbb930ad139a7f3886684fcadeec59d30.tar
tor-a6688f9cbb930ad139a7f3886684fcadeec59d30.tar.gz
sandbox: allow enough setsockopt to make ConstrainedSockets work
fixes bug 12139; bugfix on 0.2.5.1-alpha
-rw-r--r--changes/bug121394
-rw-r--r--src/common/sandbox.c12
2 files changed, 16 insertions, 0 deletions
diff --git a/changes/bug12139 b/changes/bug12139
new file mode 100644
index 000000000..8d31dab2c
--- /dev/null
+++ b/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.
+
diff --git a/src/common/sandbox.c b/src/common/sandbox.c
index ba1956b14..c379151b3 100644
--- a/src/common/sandbox.c
+++ b/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),