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

Merge remote-tracking branch 'origin/maint-0.2.4'

Nick Mathewson преди 10 години
родител
ревизия
0514bcd37c
променени са 2 файла, в които са добавени 7 реда и са изтрити 0 реда
  1. 5 0
      changes/md_leak_bug
  2. 2 0
      src/or/routerparse.c

+ 5 - 0
changes/md_leak_bug

@@ -0,0 +1,5 @@
+  o Major bugfixes (security, OOM)
+    - Fix a memory leak that could occur if a microdescriptor parse
+      fails during the tokenizing step. This could enable a memory
+      exhaustion attack by directory servers. Fixes bug #11649; bugfix
+      on 0.2.2.6-alpha.

+ 2 - 0
src/or/routerparse.c

@@ -4129,11 +4129,13 @@ microdescs_parse_from_string(const char *s, const char *eos,
     microdesc_free(md);
     md = NULL;
 
+    SMARTLIST_FOREACH(tokens, directory_token_t *, t, token_clear(t));
     memarea_clear(area);
     smartlist_clear(tokens);
     s = start_of_next_microdesc;
   }
 
+  SMARTLIST_FOREACH(tokens, directory_token_t *, t, token_clear(t));
   memarea_drop_all(area);
   smartlist_free(tokens);