From c4e8548c59c1eb423fe6a39f2712dbc1eff3951a Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 20 Sep 2017 08:50:49 -0400 Subject: [PATCH] Warn on ExtORPort USERADDR that is missing or 0. Diagnoses violations on #23080. --- changes/bug23080 | 5 +++++ src/or/ext_orport.c | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 changes/bug23080 diff --git a/changes/bug23080 b/changes/bug23080 new file mode 100644 index 0000000000..c80d323d3d --- /dev/null +++ b/changes/bug23080 @@ -0,0 +1,5 @@ + o Minor features (spec conformance, bridge, diagnostic): + - When handling the USERADDR command on an ExtOrPort, warn when the + transports provides a USERADDR with no port. In a future version, + USERADDR commands of this format may be rejected. Detects problems + related to ticket 23080. diff --git a/src/or/ext_orport.c b/src/or/ext_orport.c index c22a2f13d8..28377a3f36 100644 --- a/src/or/ext_orport.c +++ b/src/or/ext_orport.c @@ -460,6 +460,11 @@ connection_ext_or_handle_cmd_useraddr(connection_t *conn, tor_free(addr_str); if (res<0) return -1; + if (port == 0) { + log_warn(LD_GENERAL, "Server transport proxy gave us an empty port " + "in ExtORPort UserAddr command."); + // return -1; // enable this if nothing breaks after a while. + } res = tor_addr_parse(&addr, address_part); tor_free(address_part);