diff --git a/src/or/nodelist.c b/src/or/nodelist.c index 08131219b7..308aaa8658 100644 --- a/src/or/nodelist.c +++ b/src/or/nodelist.c @@ -317,6 +317,12 @@ nodelist_purge(void) for (iter = HT_START(nodelist_map, &the_nodelist->nodes_by_id); iter; ) { node_t *node = *iter; + if (node->md && !node->rs) { + /* An md is only useful if there is an rs. */ + node->md->held_by_node = 0; + node->md = NULL; + } + if (node_is_usable(node)) { iter = HT_NEXT(nodelist_map, &the_nodelist->nodes_by_id, iter); } else {