diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 9e4fce4372..f63d41f7a8 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -265,12 +265,8 @@ router_rebuild_store(int force) smartlist_add_all(routers, routerlist->routers); smartlist_sort(routers, _compare_routers_by_age); for (i = 0; i < 2; ++i) { - smartlist_t *lst = smartlist_create(); /* We sort the routers by age to enhance locality on disk. */ - if (i==0) - lst = old_routers; - else - lst = routers; + smartlist_t *lst = (i == 0) ? old_routers : routers; /* Now, add the appropriate members to chunk_list */ SMARTLIST_FOREACH(lst, void *, ptr, { @@ -280,7 +276,6 @@ router_rebuild_store(int force) const char *body = signed_descriptor_get_body(sd); if (!body) { log_warn(LD_BUG, "Bug! No descriptor available for router."); - smartlist_free(lst); goto done; } c = tor_malloc(sizeof(sized_chunk_t)); @@ -318,8 +313,6 @@ router_rebuild_store(int force) signed_descriptor_get_body(sd); }); } - smartlist_free(old_routers); - smartlist_free(routers); tor_snprintf(fname, fname_len, "%s/cached-routers.new", options->DataDirectory); @@ -331,11 +324,11 @@ router_rebuild_store(int force) router_journal_len = 0; router_bytes_dropped = 0; done: + smartlist_free(old_routers); + smartlist_free(routers); tor_free(fname); - if (chunk_list) { - SMARTLIST_FOREACH(chunk_list, sized_chunk_t *, c, tor_free(c)); - smartlist_free(chunk_list); - } + SMARTLIST_FOREACH(chunk_list, sized_chunk_t *, c, tor_free(c)); + smartlist_free(chunk_list); return r; }