diff options
author | Nick Mathewson <nickm@torproject.org> | 2010-11-10 16:07:04 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2010-11-10 16:07:04 -0500 |
commit | d4e660ff68242f708bec4b527f17a06fb6183ac7 (patch) | |
tree | 35bc57d2a1622424ce42b752a8bc9cdc80491441 /src/or/routerparse.c | |
parent | 28d592267ef508c523c215cb6a120da19aa9d781 (diff) | |
parent | a4bf5b51e9c84a74720ea95eed19d21faf8333ae (diff) | |
download | tor-d4e660ff68242f708bec4b527f17a06fb6183ac7.tar.gz tor-d4e660ff68242f708bec4b527f17a06fb6183ac7.zip |
Merge remote branch 'origin/maint-0.2.2'
Diffstat (limited to 'src/or/routerparse.c')
-rw-r--r-- | src/or/routerparse.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/or/routerparse.c b/src/or/routerparse.c index 2b82e9828f..39f4bc03af 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -1310,10 +1310,16 @@ router_parse_entry_from_string(const char *s, const char *end, s = cp+1; } - if (allow_annotations && start_of_annotations != s) { - if (tokenize_string(area,start_of_annotations,s,tokens, - routerdesc_token_table,TS_NOCHECK)) { - log_warn(LD_DIR, "Error tokenizing router descriptor (annotations)."); + if (start_of_annotations != s) { /* We have annotations */ + if (allow_annotations) { + if (tokenize_string(area,start_of_annotations,s,tokens, + routerdesc_token_table,TS_NOCHECK)) { + log_warn(LD_DIR, "Error tokenizing router descriptor (annotations)."); + goto err; + } + } else { + log_warn(LD_DIR, "Found unexpected annotations on router descriptor not " + "loaded from disk. Dropping it."); goto err; } } @@ -3967,6 +3973,9 @@ tokenize_string(memarea_t *area, end = start+strlen(start); for (i = 0; i < _NIL; ++i) counts[i] = 0; + + SMARTLIST_FOREACH(out, const directory_token_t *, t, ++counts[t->tp]); + while (*s < end && (!tok || tok->tp != _EOF)) { tok = get_next_token(area, s, end, table); if (tok->tp == _ERR) { |