From 264aa271a734767a13065bc6e0d15c4d8c602005 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 3 Sep 2013 14:25:01 -0400 Subject: [PATCH] Fix bug 9645: don't forget an md just because we can't save it. --- changes/bug9645a | 5 +++++ src/or/microdesc.c | 9 ++++----- 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 changes/bug9645a diff --git a/changes/bug9645a b/changes/bug9645a new file mode 100644 index 000000000..2daba65a0 --- /dev/null +++ b/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. + diff --git a/src/or/microdesc.c b/src/or/microdesc.c index b93bd83af..8b5581f4a 100644 --- a/src/or/microdesc.c +++ b/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; }