ソースを参照

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

Conflicts:
	src/or/microdesc.c
Nick Mathewson 13 年 前
コミット
1f97e8322f
3 ファイル変更16 行追加2 行削除
  1. 7 0
      changes/bug2230_part1
  2. 5 0
      changes/bug2230_part2
  3. 4 2
      src/or/microdesc.c

+ 7 - 0
changes/bug2230_part1

@@ -0,0 +1,7 @@
+  o Minor bugfixes
+    - When loading the microdesc journal, remember its current size.
+      In 0.2.2, this helps prevent the microdesc journal from growing
+      without limit on authorities (who are the only ones to use it in
+      0.2.2).  Fixes a part of bug 2230; bugfix on 0.2.2.6-alpha.
+      Fix posted by "cypherpunks."
+      

+ 5 - 0
changes/bug2230_part2

@@ -0,0 +1,5 @@
+  o Minor bugfixes
+    - The microdesc journal is supposed to get rebuilt only if it is
+      at least _half_ the length of the store, not _twice_ the length
+      of the store.   Bugfix on 0.2.2.6-alpha; fixes part of bug 2230.
+

+ 4 - 2
src/or/microdesc.c

@@ -246,9 +246,10 @@ microdescs_add_list_to_cache(microdesc_cache_t *cache,
   {
     size_t old_content_len =
       cache->cache_content ? cache->cache_content->size : 0;
-    if ((cache->journal_len > 16384 + old_content_len &&
-         cache->journal_len > old_content_len / 2))
+    if (cache->journal_len > 16384 + old_content_len &&
+        cache->journal_len > old_content_len / 2) {
       microdesc_cache_rebuild(cache);
+    }
   }
 
   {
@@ -305,6 +306,7 @@ microdesc_cache_reload(microdesc_cache_t *cache)
   journal_content = read_file_to_str(cache->journal_fname,
                                      RFTS_IGNORE_MISSING, &st);
   if (journal_content) {
+    cache->journal_len = (size_t) st.st_size;
     added = microdescs_add_to_cache(cache, journal_content,
                                     journal_content+st.st_size,
                                     SAVED_IN_JOURNAL, 0, -1, NULL);