mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
Treat null address as "unknown", not "rejected" in md policy
Previously, we had an issue where we'd treat an unknown address as 0, which turned into "0.0.0.0", which looked like a rejected address. This meant in practice that as soon as we started doing comparisons of unknown uint32 addresses to short policies, we'd get 'rejected' right away. Because of the circumstances under which this would be called, it would only happen when we had local DNS cached entries and we were looking to launch new circuits.
This commit is contained in:
parent
3380dc9cc0
commit
f40df02f3e
4
changes/shortpolicy_compare
Normal file
4
changes/shortpolicy_compare
Normal file
@ -0,0 +1,4 @@
|
||||
o Major bugfixes:
|
||||
- Fix a bug where comparing an unknown address to a microdescriptor's
|
||||
shortened exit policy would always seem to give a "rejected" result.
|
||||
Bugfix on 0.2.3.1-alpha. Fixes bug 3599.
|
@ -1415,8 +1415,10 @@ compare_tor_addr_to_short_policy(const tor_addr_t *addr, uint16_t port,
|
||||
|
||||
tor_assert(port != 0);
|
||||
|
||||
if (addr && tor_addr_is_null(addr))
|
||||
addr = NULL; /* Unspec means 'no address at all,' in this context. */
|
||||
|
||||
if (addr && (tor_addr_is_internal(addr, 0) ||
|
||||
tor_addr_is_null(addr) ||
|
||||
tor_addr_is_loopback(addr)))
|
||||
return ADDR_POLICY_REJECTED;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user