From 1b9e77349ffbe813c7b16af67c069d967327f63b Mon Sep 17 00:00:00 2001 From: Kris Katterjohn Date: Fri, 25 Jan 2019 15:52:40 -0600 Subject: [PATCH] Fix some error-checking logic and a misleading error message When IPv4Only (IPv6Only) was used but the address could not be interpreted as a IPv4 (IPv6) address, the error message referred to the wrong IP version. This also fixes up the error-checking logic so it's more precise about what's being checked. Fixes bug 13221; bugfix on 0.2.3.9-alpha Signed-off-by: Kris Katterjohn --- changes/bug13221 | 5 +++++ src/or/config.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 changes/bug13221 diff --git a/changes/bug13221 b/changes/bug13221 new file mode 100644 index 0000000000..13935a1921 --- /dev/null +++ b/changes/bug13221 @@ -0,0 +1,5 @@ + o Minor bugfixes (logging): + - Correct a misleading error message when IPv4Only or IPv6Only + is used but the resolved address can not be interpreted as an + address of the specified IP version. Fixes bug 13221; bugfix + on 0.2.3.9-alpha. Patch from Kris Katterjohn. diff --git a/src/or/config.c b/src/or/config.c index 810f1e9a7a..e0d1794bdf 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -6650,13 +6650,13 @@ parse_port_config(smartlist_t *out, portname, escaped(ports->value)); goto err; } - if (bind_ipv4_only && tor_addr_family(&addr) == AF_INET6) { - log_warn(LD_CONFIG, "Could not interpret %sPort address as IPv6", + if (bind_ipv4_only && tor_addr_family(&addr) != AF_INET) { + log_warn(LD_CONFIG, "Could not interpret %sPort address as IPv4", portname); goto err; } - if (bind_ipv6_only && tor_addr_family(&addr) == AF_INET) { - log_warn(LD_CONFIG, "Could not interpret %sPort address as IPv4", + if (bind_ipv6_only && tor_addr_family(&addr) != AF_INET6) { + log_warn(LD_CONFIG, "Could not interpret %sPort address as IPv6", portname); goto err; }