[or-cvs] r19251: {tor} Partial backport for the relevant parts of 19250 (in tor/branches/tor-0_2_0-patches: . src/or)

nickm at seul.org nickm at seul.org
Thu Apr 9 20:00:43 UTC 2009


Author: nickm
Date: 2009-04-09 16:00:43 -0400 (Thu, 09 Apr 2009)
New Revision: 19251

Modified:
   tor/branches/tor-0_2_0-patches/ChangeLog
   tor/branches/tor-0_2_0-patches/src/or/routerparse.c
Log:
Partial backport for the relevant parts of 19250

Modified: tor/branches/tor-0_2_0-patches/ChangeLog
===================================================================
--- tor/branches/tor-0_2_0-patches/ChangeLog	2009-04-09 19:58:16 UTC (rev 19250)
+++ tor/branches/tor-0_2_0-patches/ChangeLog	2009-04-09 20:00:43 UTC (rev 19251)
@@ -1,4 +1,8 @@
 Changes in version 0.3.0.35 - 2009-??-??
+  o Security fix:
+    - Avoid crashing in the presence of certain malformed descriptors.
+      Found by lark, and by automated fuzzing.
+
   o Minor bugfixes:
     - When starting with a cache over a few days old, do not leak
       memory for the obsolete router descriptors in it.  Bugfix on

Modified: tor/branches/tor-0_2_0-patches/src/or/routerparse.c
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/routerparse.c	2009-04-09 19:58:16 UTC (rev 19250)
+++ tor/branches/tor-0_2_0-patches/src/or/routerparse.c	2009-04-09 20:00:43 UTC (rev 19251)
@@ -378,7 +378,7 @@
 
   T0N("opt",                 K_OPT,             CONCAT_ARGS, OBJ_OK ),
 
-  T1N("dir-source",          K_DIR_SOURCE,          GE(3),   NO_OBJ ),
+  T1N("dir-source",          K_DIR_SOURCE,          GE(6),   NO_OBJ ),
   T1N("contact",             K_CONTACT,         CONCAT_ARGS, NO_OBJ ),
   T1N("vote-digest",         K_VOTE_DIGEST,         GE(1),   NO_OBJ ),
 
@@ -2212,7 +2212,7 @@
         base16_decode(voter->vote_digest, sizeof(voter->vote_digest),
                       tok->args[0], HEX_DIGEST_LEN) < 0) {
         log_warn(LD_DIR, "Error decoding vote digest %s in "
-                 "network-status consensus.", escaped(tok->args[1]));
+                 "network-status consensus.", escaped(tok->args[0]));
         goto err;
       }
     }
@@ -2825,8 +2825,7 @@
     goto check_object;
 
   obstart = *s; /* Set obstart to start of object spec */
-  tor_assert(eol >= (*s+16));
-  if (*s+11 >= eol-5 || memchr(*s+11,'\0',eol-*s-16) || /* no short lines, */
+  if (*s+16 >= eol || memchr(*s+11,'\0',eol-*s-16) || /* no short lines, */
       strcmp_len(eol-5, "-----", 5)) {          /* nuls or invalid endings */
     RET_ERR("Malformed object: bad begin line");
   }



More information about the tor-commits mailing list