]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
r16527@catbus: nickm | 2007-11-07 12:27:59 -0500
authorNick Mathewson <nickm@torproject.org>
Wed, 7 Nov 2007 17:29:16 +0000 (17:29 +0000)
committerNick Mathewson <nickm@torproject.org>
Wed, 7 Nov 2007 17:29:16 +0000 (17:29 +0000)
 Re-set all of the indices immediately after sorting old_routers.  Fixes a crash.

svn:r12413

src/or/routerlist.c

index 11dabfe13cff59c13b52e9066ee9c213f502c82a..f51f7cf4e86511ba0bd0b0dc99e3eec2d01aa44f 100644 (file)
@@ -2987,12 +2987,16 @@ routerlist_remove_old_routers(void)
     goto done;
 
   smartlist_sort(routerlist->old_routers, _compare_old_routers_by_identity);
+  /* Fix indices. */
+  for (i = 0; i < smartlist_len(routerlist_old_routers); ++i) {
+    signed_descriptor_t *r = smartlist_get(routerlist->old_routers, i);
+    r->routerlist_index = i;
+  }
 
   /* Iterate through the list from back to front, so when we remove descriptors
    * we don't mess up groups we haven't gotten to. */
   for (i = smartlist_len(routerlist->old_routers)-1; i >= 0; --i) {
     signed_descriptor_t *r = smartlist_get(routerlist->old_routers, i);
-    r->routerlist_index = i;
     if (!cur_id) {
       cur_id = r->identity_digest;
       hi = i;