summaryrefslogtreecommitdiff
path: root/src/or/channel.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-09-06 16:26:47 -0400
committerNick Mathewson <nickm@torproject.org>2017-09-15 09:35:59 -0400
commite05414d2411a5354dc43bde3a791938697a9799b (patch)
tree76b1f504e62e80c8d66f865f62742cf34f0160d8 /src/or/channel.c
parentb440560b8bdd6034ddf94720bf9e3683aca68f72 (diff)
downloadtor-e05414d2411a5354dc43bde3a791938697a9799b.tar.gz
tor-e05414d2411a5354dc43bde3a791938697a9799b.zip
Fix several places where md-using relays would get wrong behavior.
This patch replaces a few calls to router_get_by_id_digest ("do we have a routerinfo?") with connection_or_digest_is_known_relay ("do we know this relay to be in the consensus, or have been there some time recently?"). Found while doing the 21585 audit; fixes bug 23533. Bugfix on 0.3.0.1-alpha.
Diffstat (limited to 'src/or/channel.c')
-rw-r--r--src/or/channel.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/or/channel.c b/src/or/channel.c
index 17b2191b77..2970b96791 100644
--- a/src/or/channel.c
+++ b/src/or/channel.c
@@ -2696,7 +2696,7 @@ channel_do_open_actions(channel_t *chan)
router_set_status(chan->identity_digest, 1);
} else {
/* only report it to the geoip module if it's not a known router */
- if (!router_get_by_id_digest(chan->identity_digest)) {
+ if (!connection_or_digest_is_known_relay(chan->identity_digest)) {
if (channel_get_addr_if_possible(chan, &remote_addr)) {
char *transport_name = NULL;
if (chan->get_transport_name(chan, &transport_name) < 0)