mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
config: Remove Bridge <-> ClientTransportPlugin validation
This validation was only done if DisableNetwork was off because we would use the global list of transports/bridges and DisableNetwork would not populate it. This was a problem for any user using DisableNetwork which includes Tor Browser and thus leading to the Bug() warning. Without a more in depth refactoring, we can't do this validation without the global list. The previous commit makes it that any connection to a bridge without a transport won't happen thus we keep the security feature of not connecting to a bridge without its corresponding transport. Related to #40106 Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
+5
-4
@@ -1,5 +1,6 @@
|
||||
o Minor bugfixes (config, bridge):
|
||||
- Really fix the case where torrc has a missing ClientTransportPlugin but
|
||||
configured with a Bridge line and UseBridges. Previously, we failed to
|
||||
also look at the managed proxy list and thus it would fail for the
|
||||
"exec" case. Fixes bug 40106; bugfix on 0.4.5.1-alpha.
|
||||
- Don't initiate a connection to a bridge without a corresponding
|
||||
transport. Fixes bug 40106; bugfix on 0.4.5.1-alpha.
|
||||
- This also reverts an earlier fix we did for this that would validate
|
||||
configuration to avoid such situation but turns out it wouldn't work for
|
||||
a DisableNetwork thus the new approach.
|
||||
|
||||
@@ -2189,23 +2189,6 @@ options_act,(const or_options_t *old_options))
|
||||
}
|
||||
}
|
||||
|
||||
/* Validate that we actually have a configured transport for a Bridge line
|
||||
* that has one. This is done here because we require the bridge and
|
||||
* transport to be added to the global list before doing the validation.
|
||||
*
|
||||
* In an ideal world, pt_parse_transport_line() would actually return a
|
||||
* transport_t object so we could inspect it and thus do this step at
|
||||
* validation time. */
|
||||
SMARTLIST_FOREACH_BEGIN(bridge_list_get(), const bridge_info_t *, bi) {
|
||||
const char *bi_transport_name = bridget_get_transport_name(bi);
|
||||
if (bi_transport_name && (!transport_get_by_name(bi_transport_name) &&
|
||||
!managed_proxy_has_transport(bi_transport_name))) {
|
||||
log_warn(LD_CONFIG, "Bridge line with transport %s is missing a "
|
||||
"ClientTransportPlugin line", bi_transport_name);
|
||||
return -1;
|
||||
}
|
||||
} SMARTLIST_FOREACH_END(bi);
|
||||
|
||||
if (options_act_server_transport(old_options) < 0)
|
||||
return -1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user