summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug46574
-rw-r--r--src/or/config.c6
-rw-r--r--src/or/router.c2
3 files changed, 11 insertions, 1 deletions
diff --git a/changes/bug4657 b/changes/bug4657
new file mode 100644
index 0000000000..4d9dd7d0a3
--- /dev/null
+++ b/changes/bug4657
@@ -0,0 +1,4 @@
+ o Minor bugfixes:
+ - If the configuration tries to set MyFamily on a bridge, refuse to
+ do so, and warn about the security implications. Fix for bug 4657;
+ bugfix on 0.2.0.3-alpha.
diff --git a/src/or/config.c b/src/or/config.c
index 090aba1c7a..58c76b4fba 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -3601,6 +3601,12 @@ options_validate(or_options_t *old_options, or_options_t *options,
if (options->UseEntryGuards && ! options->NumEntryGuards)
REJECT("Cannot enable UseEntryGuards with NumEntryGuards set to 0");
+ if (options->MyFamily && options->BridgeRelay) {
+ log_warn(LD_CONFIG, "Listing a family for a bridge relay is not "
+ "supported: it can reveal bridge fingerprints to censors. "
+ "You should also make sure you aren't listing this bridge's "
+ "fingerprint in any other MyFamily.");
+ }
if (check_nickname_list(options->MyFamily, "MyFamily", msg))
return -1;
for (cl = options->NodeFamilies; cl; cl = cl->next) {
diff --git a/src/or/router.c b/src/or/router.c
index 365e888af9..1919448152 100644
--- a/src/or/router.c
+++ b/src/or/router.c
@@ -1483,7 +1483,7 @@ router_rebuild_descriptor(int force)
}
if (authdir_mode(options))
ri->is_valid = ri->is_named = 1; /* believe in yourself */
- if (options->MyFamily) {
+ if (options->MyFamily && ! options->BridgeRelay) {
smartlist_t *family;
if (!warned_nonexistent_family)
warned_nonexistent_family = smartlist_create();