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

This commit is contained in:
Nick Mathewson 2014-08-29 16:45:10 -04:00
commit b969ee9dad
6 changed files with 30 additions and 5 deletions

8
changes/bug12948 Normal file
View File

@ -0,0 +1,8 @@
o Major bugfixes:
- Resume expanding abbreviations for command-line options. The fix
for bug 4647 accidentally removed our hack from bug 586 that rewrote
HashedControlPassword to __HashedControlSessionPassword when it
appears on the commandline (which allowed the user to set her
own HashedControlPassword in the torrc file while the controller
generates a fresh session password for each run). Fixes bug 12948;
bugfix on 0.2.5.1-alpha.

5
changes/bug12996 Normal file
View File

@ -0,0 +1,5 @@
o Minor bugfixes:
- Downgrade "Unexpected onionskin length after decryption" warning
to a protocol-warn, since there's nothing relay operators can do
about a client that sends them a malformed create cell. Resolves
bug 12996; bugfix on 0.0.6rc1.

3
changes/bug12997 Normal file
View File

@ -0,0 +1,3 @@
o Minor features:
- Log more specific warnings when we get an ESTABLISH_RENDEZVOUS cell
on a cannibalized or non-OR circuit. Resolves ticket 12997.

View File

@ -1932,7 +1932,8 @@ config_parse_commandline(int argc, char **argv, int ignore_errors,
}
param = tor_malloc_zero(sizeof(config_line_t));
param->key = is_cmdline ? tor_strdup(argv[i]) : tor_strdup(s);
param->key = is_cmdline ? tor_strdup(argv[i]) :
tor_strdup(config_expand_abbrev(&options_format, s, 1, 1));
param->value = arg;
param->command = command;
param->next = NULL;

View File

@ -122,8 +122,9 @@ onion_skin_TAP_server_handshake(
"Couldn't decrypt onionskin: client may be using old onion key");
goto err;
} else if (len != DH_KEY_LEN) {
log_warn(LD_PROTOCOL, "Unexpected onionskin length after decryption: %ld",
(long)len);
log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,
"Unexpected onionskin length after decryption: %ld",
(long)len);
goto err;
}

View File

@ -224,9 +224,16 @@ rend_mid_establish_rendezvous(or_circuit_t *circ, const uint8_t *request,
log_info(LD_REND, "Received an ESTABLISH_RENDEZVOUS request on circuit %u",
(unsigned)circ->p_circ_id);
if (circ->base_.purpose != CIRCUIT_PURPOSE_OR || circ->base_.n_chan) {
if (circ->base_.purpose != CIRCUIT_PURPOSE_OR) {
log_warn(LD_PROTOCOL,
"Tried to establish rendezvous on non-OR or non-edge circuit.");
"Tried to establish rendezvous on non-OR circuit with purpose %s",
circuit_purpose_to_string(circ->base_.purpose));
goto err;
}
if (circ->base_.n_chan) {
log_warn(LD_PROTOCOL,
"Tried to establish rendezvous on non-edge circuit");
goto err;
}