From 8609c825e97b1e1edac1afbc640c983a067ab040 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Tue, 8 Jan 2008 23:35:03 +0000 Subject: our defensive programming plan hid a bug. switch to offensive programming. svn:r13078 --- src/or/router.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/or') diff --git a/src/or/router.c b/src/or/router.c index 5de54971b..cd7a5658b 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -565,19 +565,19 @@ init_keys(void) v3_digest, type); } - if ((ds = router_get_trusteddirserver_by_digest(digest))) { - if (ds->type != type) { - log_warn(LD_DIR, "Configured authority type does not match authority " - "type in DirServer list. Adjusting. (%d v %d)", - type, ds->type); - ds->type = type; - } - if (v3_digest_set && (ds->type & V3_AUTHORITY) && - memcmp(v3_digest, ds->v3_identity_digest, DIGEST_LEN)) { - log_warn(LD_DIR, "V3 identity key does not match identity declared in " - "DirServer line. Adjusting."); - memcpy(ds->v3_identity_digest, v3_digest, DIGEST_LEN); - } + ds = router_get_trusteddirserver_by_digest(digest); + tor_assert(ds); + if (ds->type != type) { + log_warn(LD_DIR, "Configured authority type does not match authority " + "type in DirServer list. Adjusting. (%d v %d)", + type, ds->type); + ds->type = type; + } + if (v3_digest_set && (ds->type & V3_AUTHORITY) && + memcmp(v3_digest, ds->v3_identity_digest, DIGEST_LEN)) { + log_warn(LD_DIR, "V3 identity key does not match identity declared in " + "DirServer line. Adjusting."); + memcpy(ds->v3_identity_digest, v3_digest, DIGEST_LEN); } return 0; /* success */ -- cgit v1.2.3