diff options
-rw-r--r-- | changes/shortpolicy_compare | 4 | ||||
-rw-r--r-- | src/or/policies.c | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/changes/shortpolicy_compare b/changes/shortpolicy_compare new file mode 100644 index 0000000000..3de0948174 --- /dev/null +++ b/changes/shortpolicy_compare @@ -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. diff --git a/src/or/policies.c b/src/or/policies.c index 5bd13b5014..93cae768e9 100644 --- a/src/or/policies.c +++ b/src/or/policies.c @@ -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; |