Merge remote-tracking branch 'tor-github/pr/1464' into maint-0.4.2

This commit is contained in:
teor 2019-10-25 09:41:48 +10:00
commit acd27f4b41
No known key found for this signature in database
GPG Key ID: 10FEAA0E7075672A
2 changed files with 12 additions and 2 deletions

6
changes/ticket28970 Normal file
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.

View File

@ -682,8 +682,12 @@ setup_intro_circ_auth_key(origin_circuit_t *circ)
tor_assert(circ); tor_assert(circ);
desc = hs_cache_lookup_as_client(&circ->hs_ident->identity_pk); desc = hs_cache_lookup_as_client(&circ->hs_ident->identity_pk);
if (BUG(desc == NULL)) { if (desc == NULL) {
/* Opening intro circuit without the descriptor is no good... */ /* 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; goto end;
} }