From a7e75ff7966d7d3d83d41a47c5b9fa5e3daa2465 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Wed, 24 May 2017 23:14:23 -0400 Subject: [PATCH] don't free the values in options->MyFamily when we make a descriptor If we free them here, we will still attempt to access the freed memory later on, and also we will double-free when we are freeing the config. Fixes part of bug 22368. --- src/or/router.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/or/router.c b/src/or/router.c index 642f415a38..b43742aa83 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -2289,7 +2289,7 @@ router_build_fresh_descriptor(routerinfo_t **r, extrainfo_t **e) char *name = family->value; const node_t *member; if (!strcasecmp(name, options->Nickname)) - goto skip; /* Don't list ourself, that's redundant */ + continue; /* Don't list ourself, that's redundant */ else member = node_get_by_nickname(name, 1); if (!member) { @@ -2323,8 +2323,6 @@ router_build_fresh_descriptor(routerinfo_t **r, extrainfo_t **e) if (smartlist_contains_string(warned_nonexistent_family, name)) smartlist_string_remove(warned_nonexistent_family, name); } - skip: - tor_free(name); } /* remove duplicates from the list */ -- 2.11.4.GIT