• David Goulet's avatar
    hs-v3: Remove a BUG() caused by an acceptable race · ed57a04a
    David Goulet authored
    hs_client_purge_state() and hs_cache_clean_as_client() can remove a descriptor
    from the client cache with a NEWNYM or simply when the descriptor expires.
    Which means that for an INTRO circuit being established during that time, once
    it opens, we lookup the descriptor to get the IP object but hey surprised, no
    more descriptor.
    The approach here is minimalist that is accept the race and close the circuit
    since we can not continue. Before that, the circuit would stay opened and the
    client wait the SockTimeout.
    Fixers #28970.
    Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
hs_client.c 68.4 KB