fix an infinite loop and a memory leak in r9131

svn:r9138
This commit is contained in:
Roger Dingledine 2006-12-16 06:56:58 +00:00
parent 31e09bb524
commit 9cd8feb649

View file

@ -864,9 +864,11 @@ router_rebuild_descriptor(int force)
SMARTLIST_FOREACH(family, char *, name,
{
routerinfo_t *member;
if (!strcasecmp(name, options->Nickname))
member = ri;
else
if (!strcasecmp(name, options->Nickname)) {
/* Don't list ourself in our own family; that's redundant */
tor_free(name);
continue;
} else
member = router_get_by_nickname(name, 1);
if (!member) {
if (!smartlist_string_isin(warned_nonexistent_family, name) &&
@ -879,9 +881,6 @@ router_rebuild_descriptor(int force)
}
smartlist_add(ri->declared_family, name);
name = NULL;
} else if (router_is_me(member)) {
/* Don't list ourself in our own family; that's redundant */
continue;
} else {
char *fp = tor_malloc(HEX_DIGEST_LEN+2);
fp[0] = '$';