Quellcode durchsuchen

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.
Nick Mathewson vor 11 Jahren
Ursprung
Commit
e3578d52e4
2 geänderte Dateien mit 10 neuen und 2 gelöschten Zeilen
  1. 4 0
      changes/bug8208
  2. 6 2
      src/or/router.c

+ 4 - 0
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.

+ 6 - 2
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,