diff --git a/changes/annotations_fix b/changes/annotations_fix index d3cd7f343ef1d671c5ece2ec44b349dcdaac89eb..b259a306d2c9c30e2cc61d5b9558b30f64213cdf 100644 --- a/changes/annotations_fix +++ b/changes/annotations_fix @@ -4,5 +4,7 @@ Previously we would ignore such annotations at first, but cache them to disk anyway. Bugfix on 0.2.0.8-alpha. Found by piebeer. - + o Minor bugfixes + - Enforce multiplicity rules when parsing annotations. Bugfix on + 0.2.0.8-alpha. Found by piebeer. diff --git a/src/or/routerparse.c b/src/or/routerparse.c index da08e466442280d49de55d2b5803b5c1fd922519..3d8ca143172ebbc63651bcb12fd076ccce9eb57e 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -3181,6 +3181,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) {