[tor-commits] [tor/master] Fix double-free bug in microdesc parser

nickm at torproject.org nickm at torproject.org
Wed Apr 27 19:19:06 UTC 2011


commit 247cbab6c8a37c5e6225bfd60491b071a29331e4
Author: cypherpunks <writecode at 127.0.0.1>
Date:   Wed Apr 27 11:10:56 2011 -0700

    Fix double-free bug in microdesc parser
---
 changes/microdesc-double-free |    7 +++++++
 src/or/routerparse.c          |    1 +
 2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/changes/microdesc-double-free b/changes/microdesc-double-free
new file mode 100644
index 0000000..932cc75
--- /dev/null
+++ b/changes/microdesc-double-free
@@ -0,0 +1,7 @@
+  o Security fixes:
+    - Don't double-free a parsable, but invalid, microdescriptor, even
+      if it is followed in the blob we're parsing by an unparsable
+      microdescriptor.  Fixes an issue reported in a comment on bug 2954.
+      Bugfix on 0.2.2.6-alpha; fix by "cypherpunks".
+
+
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index ba29f05..d0138e6 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -4357,6 +4357,7 @@ microdescs_parse_from_string(const char *s, const char *eos,
     md = NULL;
   next:
     microdesc_free(md);
+    md = NULL;
 
     memarea_clear(area);
     smartlist_clear(tokens);





More information about the tor-commits mailing list