diff options
-rw-r--r-- | changes/mdesc_null_deref | 5 | ||||
-rw-r--r-- | src/or/microdesc.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/changes/mdesc_null_deref b/changes/mdesc_null_deref new file mode 100644 index 0000000000..30f0280536 --- /dev/null +++ b/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. + diff --git a/src/or/microdesc.c b/src/or/microdesc.c index 73d2285009..5740c40d5f 100644 --- a/src/or/microdesc.c +++ b/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); |