summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-09-21 09:33:03 -0400
committerNick Mathewson <nickm@torproject.org>2018-09-21 09:33:03 -0400
commit96d1f2e6d0ebcb97aa66a1416d147533b24fac9c (patch)
tree921f9a18c894624bbc6c707910e847fcdeb51711
parent55122bfe0425c54aeb28d0daa266cc4601247994 (diff)
parente3713f17fb393ef701f566dc3a34a188d270a908 (diff)
downloadtor-96d1f2e6d0ebcb97aa66a1416d147533b24fac9c.tar.gz
tor-96d1f2e6d0ebcb97aa66a1416d147533b24fac9c.zip
Merge remote-tracking branch 'dgoulet/ticket27797_035_01'
-rw-r--r--changes/ticket277975
-rw-r--r--src/feature/nodelist/nodelist.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/changes/ticket27797 b/changes/ticket27797
new file mode 100644
index 0000000000..f07e35f84c
--- /dev/null
+++ b/changes/ticket27797
@@ -0,0 +1,5 @@
+ o Minor bugfixes (node, hidden service v3):
+ - When selecting a v3 rendezvous point, not only look at the protover but
+ also if the curve25519 onion key is present. That way we avoid picking a
+ node that supports the v3 rendezvous but for which we don't have the
+ descriptor yet for the key. Fixes bug 27797; bugfix on 0.3.2.1-alpha.
diff --git a/src/feature/nodelist/nodelist.c b/src/feature/nodelist/nodelist.c
index 9cde06f37e..b2ac89af20 100644
--- a/src/feature/nodelist/nodelist.c
+++ b/src/feature/nodelist/nodelist.c
@@ -1144,6 +1144,11 @@ node_supports_v3_rendezvous_point(const node_t *node)
{
tor_assert(node);
+ /* We can't use a v3 rendezvous point without the curve25519 onion pk. */
+ if (!node_get_curve25519_onion_key(node)) {
+ return 0;
+ }
+
return node_get_protover_summary_flags(node)->supports_v3_rendezvous_point;
}