From 50452c32eccffc4a57e62ed72bb9a10609ed3982 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 23 Aug 2005 22:00:35 +0000 Subject: [PATCH] fix bug 180: handle duplicate lines in approved-routers files. svn:r4825 --- src/or/dirserv.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 1344bc08c7..5a753af127 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -47,22 +47,25 @@ add_fingerprint_to_dir(const char *nickname, const char *fp, smartlist_t *list) { int i; fingerprint_entry_t *ent; + char *fingerprint; tor_assert(nickname); tor_assert(fp); tor_assert(list); + fingerprint = tor_strdup(fp); + tor_strstrip(fingerprint, " "); + for (i = 0; i < smartlist_len(list); ++i) { ent = smartlist_get(list, i); if (!strcasecmp(ent->nickname,nickname)) { tor_free(ent->fingerprint); - ent->fingerprint = tor_strdup(fp); + ent->fingerprint = fingerprint; return 1; } } ent = tor_malloc(sizeof(fingerprint_entry_t)); ent->nickname = tor_strdup(nickname); - ent->fingerprint = tor_strdup(fp); - tor_strstrip(ent->fingerprint, " "); + ent->fingerprint = fingerprint; smartlist_add(list, ent); return 0; }