commit 264aa271a734767a13065bc6e0d15c4d8c602005
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Tue Sep 3 14:25:01 2013 -0400
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(-)
diff --git a/changes/bug9645a b/changes/bug9645a
new file mode 100644
index 0000000..2daba65
--- /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 b93bd83..8b5581f 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;
}