Unverified Commit acd27f4b authored by teor's avatar teor
Browse files

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

parents 570d1367 ed57a04a
Loading
Loading
Loading
Loading

changes/ticket28970

0 → 100644
+6 −0
Original line number Diff line number Diff line
  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
Original line number Diff line number Diff line
@@ -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;
  }