[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