mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 14:51:11 +01:00
Merge branch 'maint-0.4.2'
This commit is contained in:
commit
c00602cc34
2 changed files with 12 additions and 2 deletions
6
changes/ticket28970
Normal file
6
changes/ticket28970
Normal 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.
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue