Commit e0da64fd authored by George Kadianakis's avatar George Kadianakis
Browse files

Handle a failure edge-case when a client-side intro circ opens.

parent 9603d8af
o Minor bugfixes (onion services v3):
- Avoid a non-fatal assert log in an edge-case of opening an intro circuit
as a client. Fixes bug 34084; bugfix on
......@@ -704,8 +704,11 @@ send_introduce1(origin_circuit_t *intro_circ,
/** Using the introduction circuit circ, setup the authentication key of the
* intro point this circuit has extended to. */
static void
* intro point this circuit has extended to.
* Return 0 if everything went well, otherwise return -1 in the case of errors.
static int
setup_intro_circ_auth_key(origin_circuit_t *circ)
const hs_descriptor_t *desc;
......@@ -736,10 +739,12 @@ setup_intro_circ_auth_key(origin_circuit_t *circ)
/* Reaching this point means we didn't find any intro point for this circuit
* which is not supposed to happen. */
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_INTERNAL);
log_info(LD_REND, "Could not match opened intro circuit with intro point.");
return -1;
return 0;
/** Called when an introduction circuit has opened. */
......@@ -754,7 +759,9 @@ client_intro_circ_has_opened(origin_circuit_t *circ)
/* This is an introduction circuit so we'll attach the correct
* authentication key to the circuit identifier so it can be identified
* properly later on. */
if (setup_intro_circ_auth_key(circ) < 0) {
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment