diff --git a/ChangeLog b/ChangeLog index 8d1b4ee7335061b94e686e99e290a4f83c376442..4cd8694f0e284e9b26e90e0bcff381c64255fa87 100644 --- a/ChangeLog +++ b/ChangeLog @@ -58,6 +58,9 @@ Changes in version 0.2.0.13-alpha - 2007-12-?? using bridges or we have StrictEntryNodes set), don't mark relays down when they fail a directory request. Otherwise we're too quick to mark all our entry points down. + - Fix handling of hex nicknames when answering controller requests for + networkstatus by name, or when deciding whether to warn about unknown + routers in a config option. Bugfix on 0.2.0.x. (Patch from mwenge.) o Minor features: - On USR1, when dmalloc is in use, log the top 10 memory diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index 6a72340bab1f7f9a9f60fd5617c06be17841563c..dadfbc54d47403e491765788c7770ee5886f87fb 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -830,11 +830,11 @@ router_get_consensus_status_by_nickname(const char *nickname, return NULL; if (nickname[0] == '$') { - if (base16_decode(digest, DIGEST_LEN, nickname+1, strlen(nickname))<0) + if (base16_decode(digest, DIGEST_LEN, nickname+1, strlen(nickname+1))<0) return NULL; return networkstatus_vote_find_entry(current_consensus, digest); } else if (strlen(nickname) == HEX_DIGEST_LEN && - (base16_decode(digest, DIGEST_LEN, nickname+1, strlen(nickname))==0)) { + (base16_decode(digest, DIGEST_LEN, nickname, strlen(nickname))==0)) { return networkstatus_vote_find_entry(current_consensus, digest); }