aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-06-04 15:02:47 -0400
committerNick Mathewson <nickm@torproject.org>2015-06-04 15:02:47 -0400
commit2f67a6e8c95aadadfc55b6245668471f7def72e6 (patch)
treec79c3a2e61aa2831751ce5050e4987159c1940bf
parente48f8e5e87603812a6b1844a5fa27bbc44a3543e (diff)
parentf2ff8145820243a05803367d31c8b34e03048706 (diff)
downloadtor-2f67a6e8c95aadadfc55b6245668471f7def72e6.tar.gz
tor-2f67a6e8c95aadadfc55b6245668471f7def72e6.zip
Merge remote-tracking branch 'origin/maint-0.2.6'
-rw-r--r--changes/bug162475
-rw-r--r--src/or/connection.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/changes/bug16247 b/changes/bug16247
new file mode 100644
index 0000000000..9464b1cb24
--- /dev/null
+++ b/changes/bug16247
@@ -0,0 +1,5 @@
+ o Minor bugfixes (client-side privacy):
+ - Properly separate out each SOCKSPort when applying stream isolation.
+ The error occured because each port's session group was being
+ overwritten by a default value. Fixes bug 16247; bugfix on
+ 0.2.6.3-alpha. Patch by "jojelino".
diff --git a/src/or/connection.c b/src/or/connection.c
index 24d47ccd18..bd17629210 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -1291,6 +1291,8 @@ connection_listener_new(const struct sockaddr *listensockaddr,
conn->port = gotPort;
tor_addr_copy(&conn->addr, &addr);
+ memcpy(&lis_conn->entry_cfg, &port_cfg->entry_cfg, sizeof(entry_port_cfg_t));
+
if (port_cfg->entry_cfg.isolation_flags) {
lis_conn->entry_cfg.isolation_flags = port_cfg->entry_cfg.isolation_flags;
if (port_cfg->entry_cfg.session_group >= 0) {
@@ -1306,8 +1308,6 @@ connection_listener_new(const struct sockaddr *listensockaddr,
}
}
- memcpy(&lis_conn->entry_cfg, &port_cfg->entry_cfg, sizeof(entry_port_cfg_t));
-
if (type != CONN_TYPE_AP_LISTENER) {
lis_conn->entry_cfg.ipv4_traffic = 1;
lis_conn->entry_cfg.ipv6_traffic = 1;