Fix: use the right list in find_expiring_intro_point()

The wrong list was used when looking up expired intro points in a rend
service object causing what we think could be reachability issues and
triggering a BUG log.

Fixes #16702

Signed-off-by: David Goulet <dgoulet@ev0ke.net>
This commit is contained in:
David Goulet 2015-11-23 09:02:54 -05:00
parent 18ee193ad1
commit 273b267fa2
2 changed files with 6 additions and 1 deletions

4
changes/bug16702 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (hidden service)
- The wrong list was used when looking up expired intro points in a rend
service object causing what we think could be reachability issues and
triggering a BUG log. Fixes 16702; bugfix on tor-0.2.7.2-alpha.

View File

@ -3038,7 +3038,8 @@ find_expiring_intro_point(rend_service_t *service, origin_circuit_t *circ)
tor_assert(TO_CIRCUIT(circ)->purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO || tor_assert(TO_CIRCUIT(circ)->purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO ||
TO_CIRCUIT(circ)->purpose == CIRCUIT_PURPOSE_S_INTRO); TO_CIRCUIT(circ)->purpose == CIRCUIT_PURPOSE_S_INTRO);
SMARTLIST_FOREACH(service->intro_nodes, rend_intro_point_t *, intro_point, SMARTLIST_FOREACH(service->expiring_nodes, rend_intro_point_t *,
intro_point,
if (crypto_pk_eq_keys(intro_point->intro_key, circ->intro_key)) { if (crypto_pk_eq_keys(intro_point->intro_key, circ->intro_key)) {
return intro_point; return intro_point;
}); });