Merge branch 'maint-0.4.2' into release-0.4.2

This commit is contained in:
teor
2019-10-25 09:42:10 +10:00
2 changed files with 12 additions and 2 deletions
+6
View File
@@ -0,0 +1,6 @@
o Minor bugfixes (clietn, hidden service v3):
- Fix a BUG() assertion that occurs within a very small race window between
a client intro circuit opens and its descriptor that gets cleaned up from
the cache. The circuit is now closed which will trigger a re-fetch of the
descriptor and continue the HS connection. Fixes bug 28970; bugfix on
0.3.2.1-alpha.
+6 -2
View File
@@ -682,8 +682,12 @@ setup_intro_circ_auth_key(origin_circuit_t *circ)
tor_assert(circ);
desc = hs_cache_lookup_as_client(&circ->hs_ident->identity_pk);
if (BUG(desc == NULL)) {
/* Opening intro circuit without the descriptor is no good... */
if (desc == NULL) {
/* There is a very small race window between the opening of this circuit
* and the client descriptor cache that gets purged (NEWNYM) or the
* cleaned up because it expired. Mark the circuit for close so a new
* descriptor fetch can occur. */
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_INTERNAL);
goto end;
}