From: Nick Mathewson Date: Fri, 11 Mar 2005 21:42:32 +0000 (+0000) Subject: Increment step of a for loop should only happen once. X-Git-Tag: tor-0.1.0.1-rc~148 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b7907ef42d6b4004dd0b0ebc4d4df7cda13ffc6;p=thirdparty%2Ftor.git Increment step of a for loop should only happen once. svn:r3746 --- diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 420047e826..4e8b15a116 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -718,24 +718,22 @@ addressmap_get_mappings(smartlist_t *sl, time_t min_expires, time_t max_expires) void *_val; addressmap_entry_t *val; - for (iter = strmap_iter_init(addressmap); !strmap_iter_done(iter); - iter = strmap_iter_next(addressmap,iter)) { + for (iter = strmap_iter_init(addressmap); !strmap_iter_done(iter); ) { strmap_iter_get(iter, &key, &_val); val = _val; if (val->expires >= min_expires && val->expires <= max_expires) { - if (sl) { + if (!sl) { + addressmap_ent_remove(key, val); + iter = strmap_iter_next_rmv(addressmap,iter); + continue; + } else { size_t len = strlen(key)+strlen(val->new_address)+2; char *line = tor_malloc(len); tor_snprintf(line, len, "%s %s", key, val->new_address); smartlist_add(sl, line); - iter = strmap_iter_next(addressmap,iter); - } else { - addressmap_ent_remove(key, val); - iter = strmap_iter_next_rmv(addressmap,iter); } - } else { - iter = strmap_iter_next(addressmap,iter); } + iter = strmap_iter_next(addressmap,iter); } }