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 50dc8f7d3c..24557a56fb 100644 --- a/src/feature/nodelist/nodelist.c +++ b/src/feature/nodelist/nodelist.c @@ -1141,6 +1141,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; }