[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor/master] relay: Log the address in circuit protocol warnings



commit 44f71e08c414f6c7aad6304e24be90d5d320c95b
Author: teor <teor@xxxxxxxxxxxxxx>
Date:   Wed Apr 15 09:55:09 2020 +1000

    relay: Log the address in circuit protocol warnings
    
    Always log the address family in extend protocol warnings.
    
    If SafeLogging is 0, also log the address and port.
    
    Diagnostics for 33817.
---
 src/feature/relay/circuitbuild_relay.c | 12 ++++++++++--
 src/test/test_circuitbuild.c           | 19 ++++++++++---------
 2 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/src/feature/relay/circuitbuild_relay.c b/src/feature/relay/circuitbuild_relay.c
index dd38a2825..05146f1b6 100644
--- a/src/feature/relay/circuitbuild_relay.c
+++ b/src/feature/relay/circuitbuild_relay.c
@@ -130,16 +130,24 @@ static int
 circuit_extend_addr_port_helper(const struct tor_addr_port_t *ap,
                                 int log_level)
 {
+  /* It's safe to print the family. But we don't want to print the address,
+   * unless specifically configured to do so. (Zero addresses aren't sensitive,
+   * But some internal addresses might be.)*/
+
   if (!tor_addr_port_is_valid_ap(ap, 0)) {
     log_fn(log_level, LD_PROTOCOL,
-           "Client asked me to extend to zero destination port or addr.");
+           "Client asked me to extend to a zero destination port or "
+           "%s address '%s'.",
+           fmt_addr_family(&ap->addr), safe_str(fmt_addrport_ap(ap)));
     return -1;
   }
 
   if (tor_addr_is_internal(&ap->addr, 0) &&
       !get_options()->ExtendAllowPrivateAddresses) {
     log_fn(log_level, LD_PROTOCOL,
-           "Client asked me to extend to a private address.");
+           "Client asked me to extend to a private %s address '%s'.",
+           fmt_addr_family(&ap->addr),
+           safe_str(fmt_and_decorate_addr(&ap->addr)));
     return -1;
   }
 
diff --git a/src/test/test_circuitbuild.c b/src/test/test_circuitbuild.c
index 061f39937..ab5c9c993 100644
--- a/src/test/test_circuitbuild.c
+++ b/src/test/test_circuitbuild.c
@@ -521,21 +521,21 @@ test_circuit_extend_lspec_valid(void *arg)
 
   /* IPv4 addr or port are 0, these should fail */
   tt_int_op(circuit_extend_lspec_valid_helper(ec, circ), OP_EQ, -1);
-  expect_log_msg("Client asked me to extend to "
-                 "zero destination port or addr.\n");
+  expect_log_msg("Client asked me to extend to a zero destination port "
+                 "or unspecified address '[scrubbed]'.\n");
   mock_clean_saved_logs();
 
   tor_addr_parse(&ec->orport_ipv4.addr, PUBLIC_IPV4);
   tt_int_op(circuit_extend_lspec_valid_helper(ec, circ), OP_EQ, -1);
-  expect_log_msg("Client asked me to extend to "
-                 "zero destination port or addr.\n");
+  expect_log_msg("Client asked me to extend to a zero destination port "
+                 "or IPv4 address '[scrubbed]'.\n");
   mock_clean_saved_logs();
   tor_addr_make_null(&ec->orport_ipv4.addr, AF_INET);
 
   ec->orport_ipv4.port = VALID_PORT;
   tt_int_op(circuit_extend_lspec_valid_helper(ec, circ), OP_EQ, -1);
-  expect_log_msg("Client asked me to extend to "
-                 "zero destination port or addr.\n");
+  expect_log_msg("Client asked me to extend to a zero destination port "
+                 "or IPv4 address '[scrubbed]'.\n");
   mock_clean_saved_logs();
   ec->orport_ipv4.port = 0;
 
@@ -546,7 +546,8 @@ test_circuit_extend_lspec_valid(void *arg)
 
   fake_options->ExtendAllowPrivateAddresses = 0;
   tt_int_op(circuit_extend_lspec_valid_helper(ec, circ), OP_EQ, -1);
-  expect_log_msg("Client asked me to extend to a private address.\n");
+  expect_log_msg("Client asked me to extend "
+                 "to a private IPv4 address '[scrubbed]'.\n");
   mock_clean_saved_logs();
   fake_options->ExtendAllowPrivateAddresses = 0;
 
@@ -1002,8 +1003,8 @@ test_circuit_extend(void *arg)
 
   tt_int_op(circuit_extend(cell, circ), OP_EQ, -1);
   tt_int_op(mock_extend_cell_parse_calls, OP_EQ, 1);
-  expect_log_msg("Client asked me to extend to "
-                 "zero destination port or addr.\n");
+  expect_log_msg("Client asked me to extend to a zero destination port "
+                 "or unspecified address '[scrubbed]'.\n");
   mock_clean_saved_logs();
   mock_extend_cell_parse_calls = 0;
 



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits