mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
Merge remote-tracking branch 'tor-github/pr/1464' into maint-0.4.2
This commit is contained in:
commit
acd27f4b41
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…
Reference in New Issue
Block a user