mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
Defense in depth: fix the reachability bug a second way too.
Now if we establish a connection with the right digest, regardless of what the addr/port is, and we have pending create cells, use it. svn:r6614
This commit is contained in:
parent
a20a384b09
commit
279e86f3c8
@ -420,16 +420,8 @@ circuit_n_conn_done(connection_t *or_conn, int status)
|
||||
continue;
|
||||
tor_assert(circ->state == CIRCUIT_STATE_OR_WAIT);
|
||||
if (!circ->n_conn &&
|
||||
circ->n_addr == or_conn->addr &&
|
||||
circ->n_port == or_conn->port) {
|
||||
if (memcmp(or_conn->identity_digest, circ->n_conn_id_digest,
|
||||
DIGEST_LEN)) {
|
||||
log_fn(LOG_PROTOCOL_WARN, LD_CIRC,
|
||||
"Pending circuit to %s:%d is intended for different digest!",
|
||||
or_conn->address, or_conn->port);
|
||||
circuit_mark_for_close(circ, END_CIRC_REASON_OR_IDENTITY);
|
||||
continue;
|
||||
}
|
||||
!memcmp(or_conn->identity_digest, circ->n_conn_id_digest,
|
||||
DIGEST_LEN)) {
|
||||
if (!status) { /* or_conn failed; close circ */
|
||||
log_info(LD_CIRC,"or_conn failed. Closing circ.");
|
||||
circuit_mark_for_close(circ, END_CIRC_REASON_OR_CONN_CLOSED);
|
||||
|
Loading…
Reference in New Issue
Block a user