瀏覽代碼

Merge remote-tracking branch 'public/bug4657'

Conflicts:
	src/or/router.c
Nick Mathewson 12 年之前
父節點
當前提交
1ce0c5eba9
共有 3 個文件被更改,包括 11 次插入1 次删除
  1. 4 0
      changes/bug4657
  2. 6 0
      src/or/config.c
  3. 1 1
      src/or/router.c

+ 4 - 0
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.

+ 6 - 0
src/or/config.c

@@ -3936,6 +3936,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) {

+ 1 - 1
src/or/router.c

@@ -1598,7 +1598,7 @@ router_rebuild_descriptor(int force)
     ri->is_valid = ri->is_named = 1; /* believe in yourself */
 #endif
 
-  if (options->MyFamily) {
+  if (options->MyFamily && ! options->BridgeRelay) {
     smartlist_t *family;
     if (!warned_nonexistent_family)
       warned_nonexistent_family = smartlist_new();