aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2020-06-30 12:05:56 -0400
committerDavid Goulet <dgoulet@torproject.org>2020-06-30 12:05:56 -0400
commita8b8a1ee99fa843a5937b4d2a5973c444a4311e0 (patch)
treef595427737af934dea8e860fbcabdd777890c0c6
parent89c26f4cfd03fa9d26caa99ecf24258e25fc56ea (diff)
downloadtor-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.c4
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