Преглед на файлове

Fix a spec conformance issue when parsing a ns vote

A vote may only contain exactly one signature. Make sure we reject
votes that violate this.

Problem found by Rotor, who also helped writing the patch. Thanks!
Sebastian Hahn преди 16 години
родител
ревизия
c1a6fb42ac
променени са 2 файла, в които са добавени 6 реда и са изтрити 0 реда
  1. 2 0
      ChangeLog
  2. 4 0
      src/or/routerparse.c

+ 2 - 0
ChangeLog

@@ -5,6 +5,8 @@ Changes in version 0.2.2.2-alpha - 2009-09-??
       Found by Matt Edman. Bugfix on 0.2.0.16-alpha.
     - Fix parsing for memory or time units given without a space between
       the number and the unit.  Bugfix on 0.2.2.1-alpha; fixes bug 1076.
+    - A networkstatus vote must contain exactly one signature. Spec
+      conformance issue. Bugfix on 0.2.0.3-alpha.
 
 
 Changes in version 0.2.2.1-alpha - 2009-08-26

+ 4 - 0
src/or/routerparse.c

@@ -2616,6 +2616,10 @@ networkstatus_parse_vote_from_string(const char *s, const char **eos_out,
   if (! n_signatures) {
     log_warn(LD_DIR, "No signatures on networkstatus vote.");
     goto err;
+  } else if (ns->type == NS_TYPE_VOTE && n_signatures != 1) {
+    log_warn(LD_DIR, "Received more than one signature on a "
+             "network-status vote.");
+    goto err;
   }
 
   if (eos_out)