From dbdaa610eeeb61ddd10068089efdfe0a97321b57 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 16 Oct 2007 02:15:41 +0000 Subject: [PATCH] r15814@catbus: nickm | 2007-10-15 22:15:19 -0400 Fix last patch. svn:r11961 --- src/or/networkstatus.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index 32f61fc86d..57d951325f 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -864,18 +864,16 @@ networkstatus_copy_old_consensus_info(networkstatus_vote_t *new_c, SMARTLIST_FOREACH(new_c->routerstatus_list, routerstatus_t *, rs_new, { int r; - while (rs_old && /* XXX020 Nick, solve this: sometimes rs_old is NULL */ - (r = memcmp(rs_old->identity_digest, rs_new->identity_digest, + while ((r = memcmp(rs_old->identity_digest, rs_new->identity_digest, DIGEST_LEN))<0) { - if (idx == smartlist_len(old_c->routerstatus_list)) + if (++idx == smartlist_len(old_c->routerstatus_list)) goto done; - rs_old = smartlist_get(old_c->routerstatus_list, ++idx); + rs_old = smartlist_get(old_c->routerstatus_list, idx); } if (r>0) continue; - if (r<0) /* XXX020 Nick, solve this: sometimes it's -1 which doesn't - * match your comment below. */ - continue; + tor_assert(r==0); + /* Okay, so we're looking at the same identity. */ rs_new->name_lookup_warned = rs_old->name_lookup_warned; rs_new->last_dir_503_at = rs_old->last_dir_503_at; @@ -1167,16 +1165,17 @@ routers_update_status_from_consensus_networkstatus(smartlist_t *routers, const char *digest = router->cache_info.identity_digest; int r; while ((r = memcmp(rs->identity_digest, digest, DIGEST_LEN))<0) { - if (idx == smartlist_len(ns->routerstatus_list)) { + if (++idx == smartlist_len(ns->routerstatus_list)) { /* We're out of routerstatuses. Bail. */ goto done; } - rs = smartlist_get(ns->routerstatus_list, ++idx); + rs = smartlist_get(ns->routerstatus_list, idx); } if (r>0) { /* We have no routerstatus for this router. Skip it. */ continue; } + tor_assert(r==0); ds = router_get_trusteddirserver_by_digest(digest); -- 2.47.3