]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Set session_group after the port's data structure has been populated.
authorYawning Angel <yawning@schwanenlied.me>
Thu, 4 Jun 2015 13:53:35 +0000 (13:53 +0000)
committerYawning Angel <yawning@schwanenlied.me>
Thu, 4 Jun 2015 13:53:35 +0000 (13:53 +0000)
Fixes #16247, patch by "jojelino".

changes/bug16247 [new file with mode: 0644]
src/or/connection.c

diff --git a/changes/bug16247 b/changes/bug16247
new file mode 100644 (file)
index 0000000..9464b1c
--- /dev/null
@@ -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".
index 7db0238b3d546b74de9a3bc03da8fcb23a14f62a..721ee20d2773f88ee4c022b402c80fd90f78f21f 100644 (file)
@@ -1284,6 +1284,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) {
@@ -1299,8 +1301,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;