aboutsummaryrefslogtreecommitdiff
path: root/src/or/routerparse.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2010-11-02 11:45:14 -0400
committerNick Mathewson <nickm@torproject.org>2010-11-10 16:02:02 -0500
commit089137f0112b0ad7c8ada8f2d5c7a967cfb87387 (patch)
treec7d22717364f8ebd1835c58df98fedc703e74d4f /src/or/routerparse.c
parentbad609ae6b5505783034cd3951afd382c528c532 (diff)
downloadtor-089137f0112b0ad7c8ada8f2d5c7a967cfb87387.tar
tor-089137f0112b0ad7c8ada8f2d5c7a967cfb87387.tar.gz
Fix a bug where seting allow_annotations==0 only ignores annotations, but does not block them
Diffstat (limited to 'src/or/routerparse.c')
-rw-r--r--src/or/routerparse.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index aa1aba423..da08e4664 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -1177,10 +1177,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;
}
}