diff options
author | David Goulet <dgoulet@torproject.org> | 2020-06-30 12:05:56 -0400 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2020-06-30 12:05:56 -0400 |
commit | a8b8a1ee99fa843a5937b4d2a5973c444a4311e0 (patch) | |
tree | f595427737af934dea8e860fbcabdd777890c0c6 | |
parent | 89c26f4cfd03fa9d26caa99ecf24258e25fc56ea (diff) | |
download | tor-a8b8a1ee99fa843a5937b4d2a5973c444a4311e0.tar.gz tor-a8b8a1ee99fa843a5937b4d2a5973c444a4311e0.zip |
addr: Only attempt Address resolution on non parsable lines
In get_address_from_config(), we would attempt to resolve an Address line that
is not from the requested family but that line could be a valid address from
another family (v4 vs v6).
This makes it that we don't attempt to resolve a valid address from another
family.
Found with unit test config/find_my_address_mixed.
Fixed in #33235
Related to #33233
Signed-off-by: David Goulet <dgoulet@torproject.org>
-rw-r--r-- | src/app/config/resolve_addr.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/app/config/resolve_addr.c b/src/app/config/resolve_addr.c index c8b44de845..61662c340f 100644 --- a/src/app/config/resolve_addr.c +++ b/src/app/config/resolve_addr.c @@ -193,6 +193,10 @@ get_address_from_config(const or_options_t *options, int warn_severity, explicit_ip = true; num_valid_addr++; continue; + } else if (af != -1) { + /* Parsable address but just not the one from the family we want. Skip + * it so we don't attempt a resolve. */ + continue; } /* Not an IP address. Considering this value a hostname and attempting to |