ソースを参照

Fix a potential null deref when rebuilding md cache

Issue discovered using clang's static analyzer
Sebastian Hahn 13 年 前
コミット
1827e60976
2 ファイル変更6 行追加1 行削除
  1. 5 0
      changes/mdesc_null_deref
  2. 1 1
      src/or/microdesc.c

+ 5 - 0
changes/mdesc_null_deref

@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+    - Avoid a possible null-pointer dereference when rebuilding the mdesc
+      cache without actually having any descriptors to cache. Bugfix on
+      0.2.2.6-alpha. Issue discovered using clang's static analyzer.
+

+ 1 - 1
src/or/microdesc.c

@@ -423,7 +423,7 @@ microdesc_cache_rebuild(microdesc_cache_t *cache, int force)
   cache->journal_len = 0;
   cache->bytes_dropped = 0;
 
-  new_size = (int)cache->cache_content->size;
+  new_size = cache->cache_content ? (int)cache->cache_content->size : 0;
   log_info(LD_DIR, "Done rebuilding microdesc cache. "
            "Saved %d bytes; %d still used.",
            orig_size-new_size, new_size);