소스 검색

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>
David Goulet 8 년 전
부모
커밋
273b267fa2
2개의 변경된 파일6개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 0
      changes/bug16702
  2. 2 1
      src/or/rendservice.c

+ 4 - 0
changes/bug16702

@@ -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.

+ 2 - 1
src/or/rendservice.c

@@ -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 ||
              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)) {
       return intro_point;
   });