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

This commit is contained in:
Nick Mathewson 2012-10-04 10:05:55 -04:00
commit d9847165e0
2 changed files with 21 additions and 9 deletions

3
changes/bug7022 Normal file
View File

@ -0,0 +1,3 @@
o Minor bugfixes:
- Fix memory leaks whenever we logged any message about the "path
bias" detection. Fixes bug 7022; bugfix on 0.2.3.21-rc.

View File

@ -2666,12 +2666,13 @@ pathbias_count_first_hop(origin_circuit_t *circ)
approx_time()))) { approx_time()))) {
log_notice(LD_BUG, log_notice(LD_BUG,
"One-hop circuit has length %d. Path state is %s. " "One-hop circuit has length %d. Path state is %s. "
"Circuit is a %s currently %s. %s", "Circuit is a %s currently %s.%s",
circ->build_state->desired_path_len, circ->build_state->desired_path_len,
pathbias_state_to_string(circ->path_state), pathbias_state_to_string(circ->path_state),
circuit_purpose_to_string(circ->_base.purpose), circuit_purpose_to_string(circ->_base.purpose),
circuit_state_to_string(circ->_base.state), circuit_state_to_string(circ->_base.state),
rate_msg); rate_msg);
tor_free(rate_msg);
} }
tor_fragile_assert(); tor_fragile_assert();
} }
@ -2685,11 +2686,12 @@ pathbias_count_first_hop(origin_circuit_t *circ)
approx_time()))) { approx_time()))) {
log_info(LD_BUG, log_info(LD_BUG,
"Opened circuit is in strange path state %s. " "Opened circuit is in strange path state %s. "
"Circuit is a %s currently %s. %s", "Circuit is a %s currently %s.%s",
pathbias_state_to_string(circ->path_state), pathbias_state_to_string(circ->path_state),
circuit_purpose_to_string(circ->_base.purpose), circuit_purpose_to_string(circ->_base.purpose),
circuit_state_to_string(circ->_base.state), circuit_state_to_string(circ->_base.state),
rate_msg); rate_msg);
tor_free(rate_msg);
} }
} }
@ -2712,11 +2714,12 @@ pathbias_count_first_hop(origin_circuit_t *circ)
approx_time()))) { approx_time()))) {
log_info(LD_BUG, log_info(LD_BUG,
"Unopened circuit has strange path state %s. " "Unopened circuit has strange path state %s. "
"Circuit is a %s currently %s. %s", "Circuit is a %s currently %s.%s",
pathbias_state_to_string(circ->path_state), pathbias_state_to_string(circ->path_state),
circuit_purpose_to_string(circ->_base.purpose), circuit_purpose_to_string(circ->_base.purpose),
circuit_state_to_string(circ->_base.state), circuit_state_to_string(circ->_base.state),
rate_msg); rate_msg);
tor_free(rate_msg);
} }
} }
} else { } else {
@ -2724,10 +2727,11 @@ pathbias_count_first_hop(origin_circuit_t *circ)
approx_time()))) { approx_time()))) {
log_info(LD_BUG, log_info(LD_BUG,
"Unopened circuit has no known guard. " "Unopened circuit has no known guard. "
"Circuit is a %s currently %s. %s", "Circuit is a %s currently %s.%s",
circuit_purpose_to_string(circ->_base.purpose), circuit_purpose_to_string(circ->_base.purpose),
circuit_state_to_string(circ->_base.state), circuit_state_to_string(circ->_base.state),
rate_msg); rate_msg);
tor_free(rate_msg);
} }
} }
} }
@ -2738,12 +2742,13 @@ pathbias_count_first_hop(origin_circuit_t *circ)
approx_time()))) { approx_time()))) {
log_info(LD_BUG, log_info(LD_BUG,
"A %s circuit is in cpath state %d (opened: %d). " "A %s circuit is in cpath state %d (opened: %d). "
"Circuit is a %s currently %s. %s", "Circuit is a %s currently %s.%s",
pathbias_state_to_string(circ->path_state), pathbias_state_to_string(circ->path_state),
circ->cpath->state, circ->has_opened, circ->cpath->state, circ->has_opened,
circuit_purpose_to_string(circ->_base.purpose), circuit_purpose_to_string(circ->_base.purpose),
circuit_state_to_string(circ->_base.state), circuit_state_to_string(circ->_base.state),
rate_msg); rate_msg);
tor_free(rate_msg);
} }
} }
} }
@ -2784,12 +2789,13 @@ pathbias_count_success(origin_circuit_t *circ)
approx_time()))) { approx_time()))) {
log_notice(LD_BUG, log_notice(LD_BUG,
"One-hop circuit has length %d. Path state is %s. " "One-hop circuit has length %d. Path state is %s. "
"Circuit is a %s currently %s. %s", "Circuit is a %s currently %s.%s",
circ->build_state->desired_path_len, circ->build_state->desired_path_len,
pathbias_state_to_string(circ->path_state), pathbias_state_to_string(circ->path_state),
circuit_purpose_to_string(circ->_base.purpose), circuit_purpose_to_string(circ->_base.purpose),
circuit_state_to_string(circ->_base.state), circuit_state_to_string(circ->_base.state),
rate_msg); rate_msg);
tor_free(rate_msg);
} }
tor_fragile_assert(); tor_fragile_assert();
} }
@ -2814,11 +2820,12 @@ pathbias_count_success(origin_circuit_t *circ)
approx_time()))) { approx_time()))) {
log_info(LD_BUG, log_info(LD_BUG,
"Succeeded circuit is in strange path state %s. " "Succeeded circuit is in strange path state %s. "
"Circuit is a %s currently %s. %s", "Circuit is a %s currently %s.%s",
pathbias_state_to_string(circ->path_state), pathbias_state_to_string(circ->path_state),
circuit_purpose_to_string(circ->_base.purpose), circuit_purpose_to_string(circ->_base.purpose),
circuit_state_to_string(circ->_base.state), circuit_state_to_string(circ->_base.state),
rate_msg); rate_msg);
tor_free(rate_msg);
} }
} }
@ -2836,10 +2843,11 @@ pathbias_count_success(origin_circuit_t *circ)
approx_time()))) { approx_time()))) {
log_info(LD_BUG, log_info(LD_BUG,
"Completed circuit has no known guard. " "Completed circuit has no known guard. "
"Circuit is a %s currently %s. %s", "Circuit is a %s currently %s.%s",
circuit_purpose_to_string(circ->_base.purpose), circuit_purpose_to_string(circ->_base.purpose),
circuit_state_to_string(circ->_base.state), circuit_state_to_string(circ->_base.state),
rate_msg); rate_msg);
tor_free(rate_msg);
} }
} }
} else { } else {
@ -2848,11 +2856,12 @@ pathbias_count_success(origin_circuit_t *circ)
approx_time()))) { approx_time()))) {
log_info(LD_BUG, log_info(LD_BUG,
"Opened circuit is in strange path state %s. " "Opened circuit is in strange path state %s. "
"Circuit is a %s currently %s. %s", "Circuit is a %s currently %s.%s",
pathbias_state_to_string(circ->path_state), pathbias_state_to_string(circ->path_state),
circuit_purpose_to_string(circ->_base.purpose), circuit_purpose_to_string(circ->_base.purpose),
circuit_state_to_string(circ->_base.state), circuit_state_to_string(circ->_base.state),
rate_msg); rate_msg);
tor_free(rate_msg);
} }
} }
} }