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;
}
/* 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;
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;
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;