[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #32880 [Core Tor/Tor]: V3 handshaking state change doesn't use "connection_or_change_state()"
#32880: V3 handshaking state change doesn't use "connection_or_change_state()"
--------------------------+------------------------------------
Reporter: opara | Owner: dgoulet
Type: defect | Status: accepted
Priority: Medium | Milestone: Tor: 0.4.3.x-final
Component: Core Tor/Tor | Version:
Severity: Minor | Resolution:
Keywords: tor-chan | Actual Points:
Parent ID: | Points: 0.1
Reviewer: | Sponsor:
--------------------------+------------------------------------
Changes (by dgoulet):
* status: new => accepted
* priority: Low => Medium
* keywords: => tor-chan
* points: => 0.1
* milestone: => Tor: 0.4.3.x-final
* owner: (none) => dgoulet
Comment:
Wow, this is a good catch!
I believe indeed this is a bug. The part that sucks is that
`connection_or_change_state()` is static to `connection_or.c` so we'll
have to make it visible.
Apart from pubsub not seeing it, I think this is harmless fortunately.
Reason is that `enter_v3_handshake_with_cell()` seems to be reachable only
if the connection is currently handshaking or "possibly waiting for
renegotiation" the handshake for which these two states can never be set
from an open channel.
So, within `channel_tls_handle_state_change_on_orconn()`, we in theory
never hit `channel_change_state(base_chan, CHANNEL_STATE_MAINT);`.
Nevertheless, this is a bug since the code assumption is that every OR
conn state change need to go through _one_ specific callsite.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/32880#comment:2>
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