Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/maint-0.2.5'

Nick Mathewson 9 gadi atpakaļ
vecāks
revīzija
feee445771
2 mainītis faili ar 14 papildinājumiem un 1 dzēšanām
  1. 13 0
      changes/bug13151-client
  2. 1 1
      src/or/rendclient.c

+ 13 - 0
changes/bug13151-client

@@ -0,0 +1,13 @@
+  o Major bugfixes:
+    - Clients now send the correct address for their chosen rendezvous
+      point when trying to access a hidden service. They used to send
+      the wrong address, which would still work some of the time because
+      they also sent the identity digest of the rendezvous point, and if
+      the hidden service happened to try connecting to the rendezvous
+      point from a relay that already had a connection open to it,
+      the relay would reuse that connection. Now connections to hidden
+      services should be more robust and faster. Also, this bug meant
+      that clients were leaking to the hidden service whether they were
+      on a little-endian (common) or big-endian (rare) system, which for
+      some users might have reduced their anonymity. Fixes bug 13151;
+      bugfix on 0.2.1.5-alpha.

+ 1 - 1
src/or/rendclient.c

@@ -271,7 +271,7 @@ rend_client_send_introduction(origin_circuit_t *introcirc,
     extend_info_t *extend_info = rendcirc->build_state->chosen_exit;
     int klen;
     /* nul pads */
-    set_uint32(tmp+v3_shift+1, tor_addr_to_ipv4h(&extend_info->addr));
+    set_uint32(tmp+v3_shift+1, tor_addr_to_ipv4n(&extend_info->addr));
     set_uint16(tmp+v3_shift+5, htons(extend_info->port));
     memcpy(tmp+v3_shift+7, extend_info->identity_digest, DIGEST_LEN);
     klen = crypto_pk_asn1_encode(extend_info->onion_key,