Explorar o código

Merge remote-tracking branch 'public/bug8208'

Nick Mathewson %!s(int64=13) %!d(string=hai) anos
pai
achega
fd8ef8dc57
Modificáronse 2 ficheiros con 10 adicións e 2 borrados
  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

@@ -1942,9 +1942,13 @@ router_rebuild_descriptor(int force)
        anyway, since they don't have a DirPort, and always connect to the
        anyway, since they don't have a DirPort, and always connect to the
        bridge authority anonymously.  But just in case they somehow think of
        bridge authority anonymously.  But just in case they somehow think of
        sending them on an unencrypted connection, don't allow them to try. */
        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 {
   } 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,
   router_get_router_hash(ri->cache_info.signed_descriptor_body,