Parcourir la source

Merge branch 'maint-0.3.3' into maint-0.3.4

Nick Mathewson il y a 6 ans
Parent
commit
c389c41292
2 fichiers modifiés avec 11 ajouts et 3 suppressions
  1. 5 0
      changes/bug26435
  2. 6 3
      src/or/protover.c

+ 5 - 0
changes/bug26435

@@ -0,0 +1,5 @@
+  o Major bugfixes:
+    - Fix a memory leak where directory authorities would leak a chunk
+      of memory for every router descriptor every time they considered
+      voting. This bug was taking down directory authorities due to
+      out-of-memory issues. Fixes bug 26435; bugfix on 0.3.3.6.

+ 6 - 3
src/or/protover.c

@@ -283,9 +283,12 @@ parse_protocol_list(const char *s)
 bool
 protover_contains_long_protocol_names(const char *s)
 {
-  if (!parse_protocol_list(s))
-    return true;
-  return false;
+  smartlist_t *list = parse_protocol_list(s);
+  if (!list)
+    return true; /* yes, has a dangerous name */
+  SMARTLIST_FOREACH(list, proto_entry_t *, ent, proto_entry_free(ent));
+  smartlist_free(list);
+  return false; /* no, looks fine */
 }
 
 /**