[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [tor-bugs] #23577 [Core Tor/Tor]: Add rendezvous point IPv6 address to client introduce cells



#23577: Add rendezvous point IPv6 address to client introduce cells
-------------------------------------------------+-------------------------
 Reporter:  teor                                 |          Owner:  (none)
     Type:  enhancement                          |         Status:
                                                 |  reopened
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  0.3.3.x-final
Component:  Core Tor/Tor                         |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  prop224, tor-hs, single-onion,       |  Actual Points:  2
  ipv6, review-group-25                          |
Parent ID:  #23493                               |         Points:  1
 Reviewer:  dgoulet                              |        Sponsor:
                                                 |  SponsorV-can
-------------------------------------------------+-------------------------
Changes (by dgoulet):

 * status:  closed => reopened
 * resolution:  implemented =>


Comment:

 The patch to `get_lspecs_from_node()` for IPv6 support doesn't add the
 link specifier to the list so this it is just memleaking and the client is
 actually not sending it to the service as it is right now. This needs to
 be added:

 {{{
     if (node_has_ipv6_orport(node)) {
       [...]
       smartlist_add(lspecs, ls);
     }
 }}}

 Second thing I'm a little bit worried about is this:

 {{{
 -  setup_introduce1_data(ip, rend_circ->build_state->chosen_exit,
 -                        subcredential, &intro1_data);
 -  /* If we didn't get any link specifiers, it's because our extend info
 was
 +  const node_t *exit_node =
 build_state_get_exit_node(rend_circ->build_state);
 +  setup_introduce1_data(ip, exit_node, subcredential, &intro1_data);
 }}}

 A client rendezvous circuit is often cannibalized from an existing circuit
 so I *think* it could be possible that we pick the rend circuit and then
 from that point up to using it for rendezvous, the `node_t` could
 disappear from our state. Thus, I do think we should check `exit_node`
 here else it will lead to a strong `tor_assert()`.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/23577#comment:23>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs