Browse Source

Merge remote-tracking branch 'public/bug9645'

Nick Mathewson 10 years ago
parent
commit
c7113e702b
2 changed files with 9 additions and 5 deletions
  1. 5 0
      changes/bug9645a
  2. 4 5
      src/or/microdesc.c

+ 5 - 0
changes/bug9645a

@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+    - If we are unable to save a microdescriptor to the journal, do not
+      drop it from memory and then reattempt downloading it. Fixes bug
+      9645; bugfix on 0.2.2.6-alpha.
+

+ 4 - 5
src/or/microdesc.c

@@ -213,7 +213,6 @@ microdescs_add_list_to_cache(microdesc_cache_t *cache,
     if (fd < 0) {
       log_warn(LD_DIR, "Couldn't append to journal in %s: %s",
                cache->journal_fname, strerror(errno));
-      return NULL;
     }
   }
 
@@ -238,11 +237,11 @@ microdescs_add_list_to_cache(microdesc_cache_t *cache,
       if (size < 0) {
         /* we already warned in dump_microdescriptor */
         abort_writing_to_file(open_file);
-        smartlist_clear(added);
-        return added;
+        fd = -1;
+      } else {
+        md->saved_location = SAVED_IN_JOURNAL;
+        cache->journal_len += size;
       }
-      md->saved_location = SAVED_IN_JOURNAL;
-      cache->journal_len += size;
     } else {
       md->saved_location = where;
     }