[tor-bugs] #20376 [Core Tor/Tor]: Do not mark circs for close again after relay_send_command_from_edge()
Tor Bug Tracker & Wiki
blackhole at torproject.org
Thu Oct 27 14:43:57 UTC 2016
#20376: Do not mark circs for close again after relay_send_command_from_edge()
-----------------------------+------------------------------------
Reporter: twim | Owner: twim
Type: defect | Status: needs_review
Priority: Medium | Milestone: Tor: 0.3.0.x-final
Component: Core Tor/Tor | Version:
Severity: Minor | Resolution:
Keywords: review-group-11 | Actual Points:
Parent ID: | Points: 0.2
Reviewer: | Sponsor:
-----------------------------+------------------------------------
Comment (by dgoulet):
Hey thanks for this twim! Good find!
So I had to think hard about this one as it has quite a bit of implication
especially when adding an assert like that. I've refactored your branch
slightly (and fixing couple things) in this branch: `bug20376_030_01`.
The main part you'll notice is the change to
`relay_send_command_from_edge_()` which I turned into a simple if/else (no
unknown else condition anymore) where we either have a origin circuit or
not and depending on that, we set the direction and assert on the
`cpath_layer` which MUST be present if we are outbound. As far as I
understand it, that function only does OP->OR or OR->OP meaning it can't
be a middle hop and thus if it's an origin circuit, it must be outbound
and have a cpath else we are using that function very wrong.
Plausible?
The branch passes `make test-network-all`.
--
Ticket URL: <https://troodi.torproject.org/projects/tor/ticket/20376#comment:8>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list