Browse Source

Warn on ExtORPort USERADDR that is missing or 0.

Diagnoses violations on #23080.
Nick Mathewson 6 years ago
parent
commit
c4e8548c59
2 changed files with 10 additions and 0 deletions
  1. 5 0
      changes/bug23080
  2. 5 0
      src/or/ext_orport.c

+ 5 - 0
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.

+ 5 - 0
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);