From: Nick Mathewson Date: Thu, 12 May 2011 04:47:00 +0000 (-0400) Subject: bug 3026: do not upload our vote to ourself X-Git-Tag: tor-0.2.2.26-beta~11^2~6^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6b83b3ba2aff4ba815241c76d712d149f13465e1;p=thirdparty%2Ftor.git bug 3026: do not upload our vote to ourself --- diff --git a/changes/bug3026 b/changes/bug3026 new file mode 100644 index 0000000000..c0c0a3860a --- /dev/null +++ b/changes/bug3026 @@ -0,0 +1,4 @@ + o Minor bugfixes (directory authority) + - Do not upload our own vote or signature set to ourself. It would + tell us nothing new. Also, as of Tor 0.2.2.24-alpha, we started + to warn about receiving duplicate votes. Resolves bug 3026. diff --git a/src/or/directory.c b/src/or/directory.c index 8c6581a123..86dcc8db1c 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -279,6 +279,8 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose, int post_via_tor; smartlist_t *dirservers = router_get_trusted_dir_servers(); int found = 0; + const int exclude_self = (dir_purpose == DIR_PURPOSE_UPLOAD_VOTE || + dir_purpose == DIR_PURPOSE_UPLOAD_SIGNATURES); tor_assert(dirservers); /* This tries dirservers which we believe to be down, but ultimately, that's * harmless, and we may as well err on the side of getting things uploaded. @@ -291,6 +293,9 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose, if ((type & ds->type) == 0) continue; + if (exclude_self && router_digest_is_me(ds->digest)) + continue; + if (options->ExcludeNodes && options->StrictNodes && routerset_contains_routerstatus(options->ExcludeNodes, rs)) { log_warn(LD_DIR, "Wanted to contact authority '%s' for %s, but "