#15618: Tried to establish rendezvous on non-OR circuit with purpose Acting as rendevous (pending) -------------------------------------------------+------------------------- Reporter: asn | Owner: dgoulet Type: defect | Status: | needs_information Priority: Medium | Milestone: Tor: | unspecified Component: Core Tor/Tor | Version: Severity: Normal | Resolution: Keywords: tor-hs needs-insight needs- | Actual Points: diagnosis | Parent ID: | Points: 1 Reviewer: | Sponsor: -------------------------------------------------+-------------------------
Comment (by asn): IIUC, the only way for a client to send two `ESTABLISH_REND` on the same circuit is to call `hs_client_circuit_has_opened()` twice, since that's the func that calls `client_rendezvous_circ_has_opened()` and `rend_client_rendcirc_has_opened()`. s7r seems to disprove this theory in comment:18 but I don't see another way. My suggestion would be to use the flag `circ->has_opened` that is set by `circuit_has_opened()`, and make sure that we don't call `hs_client_circuit_has_opened()` if the `has_opened` flag is already set to make sure we dont call the func twice. This will block the "double has_opened" theory. There might be other ways to cause this bug, or it might just be a custom client, so there is still work here... -- Ticket URL: <https://trac.torproject.org/projects/tor/ticket/15618#comment:51> Tor Bug Tracker & Wiki <https://trac.torproject.org/> The Tor Project: anonymity online
_______________________________________________ tor-bugs mailing list tor-bugs@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs