commit c4e8548c59c1eb423fe6a39f2712dbc1eff3951a
parent 9e0587f806268c0ab96a73238c0409e95b0fbed6
Author: Nick Mathewson <nickm@torproject.org>
Date: Wed, 20 Sep 2017 08:50:49 -0400
Warn on ExtORPort USERADDR that is missing or 0.
Diagnoses violations on #23080.
Diffstat:
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/changes/bug23080 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
@@ -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);