Browse Source

Bugfix: we don't want loopback/multicastaddress from _hack().

rl1987 9 years ago
parent
commit
92fc728d83
1 changed files with 10 additions and 2 deletions
  1. 10 2
      src/common/address.c

+ 10 - 2
src/common/address.c

@@ -1542,8 +1542,16 @@ get_interface_address6_via_udp_socket_hack(int severity,
     goto err;
   }
 
-  tor_addr_from_sockaddr(addr, (struct sockaddr*)&my_addr, NULL);
-  r=0;
+ if (tor_addr_from_sockaddr(addr, (struct sockaddr*)&my_addr, NULL) == 0) {
+    if (tor_addr_is_loopback(addr) || tor_addr_is_multicast(addr)) {
+      log_fn(severity, LD_NET, "Address that we determined via UDP socket"
+                               " magic is unsuitable for public comms.");
+    }
+    else {
+      r=0;
+    }
+ }
+
  err:
   if (sock >= 0)
     tor_close_socket(sock);