From 699bb803baba942c6bcd50542183b283fa191163 Mon Sep 17 00:00:00 2001
From: Nick Mathewson <nickm@torproject.org>
Date: Sun, 4 Mar 2018 10:31:17 -0500
Subject: [PATCH] Fix a crash bug when testing reachability

Fixes bug 25415; bugfix on 0.3.3.2-alpha.
---
 changes/bug25415 | 4 ++++
 src/or/dirserv.c | 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)
 create mode 100644 changes/bug25415

diff --git a/changes/bug25415 b/changes/bug25415
new file mode 100644
index 0000000000..ec851aee8d
--- /dev/null
+++ b/changes/bug25415
@@ -0,0 +1,4 @@
+  o Major bugfixes (directory authority):
+    - Avoid a crash when testing router reachability on a router that could
+      have an ed25519 ID, but which does not. Fixes bug 25415; bugfix on
+      0.3.3.2-alpha.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 7ccce50bc5..7a693b9d43 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -3392,7 +3392,8 @@ dirserv_single_reachability_test(time_t now, routerinfo_t *router)
   tor_assert(node);
 
   if (options->AuthDirTestEd25519LinkKeys &&
-      node_supports_ed25519_link_authentication(node, 1)) {
+      node_supports_ed25519_link_authentication(node, 1) &&
+      router->cache_info.signing_key_cert) {
     ed_id_key = &router->cache_info.signing_key_cert->signing_key;
   } else {
     ed_id_key = NULL;
-- 
GitLab