From: Mike Perry Date: Mon, 10 Dec 2012 04:56:48 +0000 (-0800) Subject: Fix a rather serious use-count state bug. X-Git-Tag: tor-0.2.4.8-alpha~18^2~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b75880d7b3d02f5c60bf2e215c6e84da4f3e1938;p=thirdparty%2Ftor.git Fix a rather serious use-count state bug. We need to use the success count or the use count depending on the consensus parameter. --- diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index cbc1af9618..349063d325 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -1642,7 +1642,7 @@ pathbias_get_closed_count(entry_guard_t *guard) * if it should return guard->circ_successes or * guard->successful_circuits_closed. */ -static double +double pathbias_get_success_count(entry_guard_t *guard) { if (pathbias_use_close_counts(get_options())) { diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c index 21c09f79c3..96b075a35c 100644 --- a/src/or/entrynodes.c +++ b/src/or/entrynodes.c @@ -1065,8 +1065,8 @@ entry_guards_parse_state(or_state_t *state, int set, char **msg) /* Note: We rely on the < comparison here to allow us to set a 0 * rate and disable the feature entirely. If refactoring, don't * change to <= */ - if ((node->circ_successes/((double)node->circ_attempts) - < pathbias_get_extreme_rate(options)) && + if (pathbias_get_success_count(node)/node->circ_attempts + < pathbias_get_extreme_rate(options) && pathbias_get_dropguards(options)) { node->path_bias_disabled = 1; log_info(LD_GENERAL, diff --git a/src/or/entrynodes.h b/src/or/entrynodes.h index de8c60c33d..b9d0e555f1 100644 --- a/src/or/entrynodes.h +++ b/src/or/entrynodes.h @@ -112,6 +112,7 @@ int find_transport_by_bridge_addrport(const tor_addr_t *addr, uint16_t port, int validate_pluggable_transports_config(void); double pathbias_get_closed_count(entry_guard_t *gaurd); +double pathbias_get_success_count(entry_guard_t *guard); #endif