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

This commit is contained in:
Nick Mathewson 2014-09-16 11:10:02 -04:00
commit be0e26272b
2 changed files with 14 additions and 1 deletions

13
changes/bug13151-client Normal file
View File

@ -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.

View File

@ -271,7 +271,7 @@ rend_client_send_introduction(origin_circuit_t *introcirc,
extend_info_t *extend_info = rendcirc->build_state->chosen_exit; extend_info_t *extend_info = rendcirc->build_state->chosen_exit;
int klen; int klen;
/* nul pads */ /* 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)); set_uint16(tmp+v3_shift+5, htons(extend_info->port));
memcpy(tmp+v3_shift+7, extend_info->identity_digest, DIGEST_LEN); memcpy(tmp+v3_shift+7, extend_info->identity_digest, DIGEST_LEN);
klen = crypto_pk_asn1_encode(extend_info->onion_key, klen = crypto_pk_asn1_encode(extend_info->onion_key,