Browse Source

Merge remote-tracking branch 'origin/maint-0.2.3'

Nick Mathewson 13 years ago
parent
commit
7ac8a4a037
4 changed files with 19 additions and 6 deletions
  1. 4 0
      changes/bug6397
  2. 4 0
      changes/cov709056
  3. 5 5
      src/or/circuitbuild.c
  4. 6 1
      src/tools/tor-gencert.c

+ 4 - 0
changes/bug6397

@@ -0,0 +1,4 @@
+  o Major bugfixes:
+    - When disabling guards for having too high a proportion of failed
+      circuits, make sure to look at each guard. Fix for bug 6397; bugfix
+      on 0.2.3.17-beta.

+ 4 - 0
changes/cov709056

@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - Check return value of fputs() when writing authority certificate
+      file. Fixes Coverity issue 709056; bugfix on 0.2.0.1-alpha.
+

+ 5 - 5
src/or/circuitbuild.c

@@ -4728,8 +4728,7 @@ entry_guards_parse_state(or_state_t *state, int set, char **msg)
     }
   }
 
-  SMARTLIST_FOREACH(new_entry_guards, entry_guard_t *, e,
-   {
+  SMARTLIST_FOREACH_BEGIN(new_entry_guards, entry_guard_t *, e) {
      char *sp;
      char *val = digestmap_get(added_by, e->identity);
      if (val && (sp = strchr(val, ' '))) {
@@ -4747,9 +4746,10 @@ entry_guards_parse_state(or_state_t *state, int set, char **msg)
          e->chosen_on_date = time(NULL) - crypto_rand_int(3600*24*30);
        }
      }
-     if (node->path_bias_disabled && !node->bad_since)
-       node->bad_since = time(NULL);
-   });
+     if (e->path_bias_disabled && !e->bad_since)
+       e->bad_since = time(NULL);
+    }
+  SMARTLIST_FOREACH_END(e);
 
   if (*msg || !set) {
     SMARTLIST_FOREACH(new_entry_guards, entry_guard_t *, e,

+ 6 - 1
src/tools/tor-gencert.c

@@ -497,7 +497,12 @@ generate_certificate(void)
     return 1;
   }
 
-  fputs(buf, f);
+  if (fputs(buf, f) < 0) {
+    log_err(LD_GENERAL, "Couldn't write to %s: %s",
+            certificate_file, strerror(errno));
+    fclose(f);
+    return 1;
+  }
   fclose(f);
   return 0;
 }