[tor-commits] [tor/master] Check whether ei is non-NULL before altering it.

nickm at torproject.org nickm at torproject.org
Mon Feb 11 21:10:49 UTC 2013


commit e3578d52e4d32483422cb867786373c2b7b493b5
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Feb 11 16:05:03 2013 -0500

    Check whether ei is non-NULL before altering it.
    
    This fixes a crash bug if we fail to generate an extrainfo
    descriptor.
    
    Fixes bug 8208; bugfix on 0.2.3.16-alpha.
---
 changes/bug8208 |    4 ++++
 src/or/router.c |    8 ++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/changes/bug8208 b/changes/bug8208
new file mode 100644
index 0000000..c85db90
--- /dev/null
+++ b/changes/bug8208
@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - Avoid a crash if we fail to generate an extrinfo descriptor.
+      Fixes bug 8208; bugfix on 0.2.3.16-alpha. Found by Coverity;
+      this is CID 718634.
diff --git a/src/or/router.c b/src/or/router.c
index 38f1cdd..350666d 100644
--- a/src/or/router.c
+++ b/src/or/router.c
@@ -1702,9 +1702,13 @@ router_rebuild_descriptor(int force)
        anyway, since they don't have a DirPort, and always connect to the
        bridge authority anonymously.  But just in case they somehow think of
        sending them on an unencrypted connection, don't allow them to try. */
-    ri->cache_info.send_unencrypted = ei->cache_info.send_unencrypted = 0;
+    ri->cache_info.send_unencrypted = 0;
+    if (ei)
+      ei->cache_info.send_unencrypted = 0
   } else {
-    ri->cache_info.send_unencrypted = ei->cache_info.send_unencrypted = 1;
+    ri->cache_info.send_unencrypted = 1;
+    if (ei)
+      ei->cache_info.send_unencrypted = 1;
   }
 
   router_get_router_hash(ri->cache_info.signed_descriptor_body,





More information about the tor-commits mailing list