[tor-bugs] #25914 [Core Tor/Tor]: dirserv: Remove dead code

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Apr 25 13:32:57 UTC 2018


#25914: dirserv: Remove dead code
-------------------------+-------------------------------------------------
     Reporter:  dgoulet  |      Owner:  dgoulet
         Type:  defect   |     Status:  assigned
     Priority:  Medium   |  Milestone:  Tor: 0.3.4.x-final
    Component:  Core     |    Version:
  Tor/Tor                |   Keywords:  tor-dirauth, deadcode, easy, 034
     Severity:  Normal   |  -roadmap-subtask
Actual Points:           |  Parent ID:  #25610
       Points:           |   Reviewer:
      Sponsor:           |
-------------------------+-------------------------------------------------
 While working on #25610, I've noticed dead code that uses
 `dirserv_get_consensus()`.

 In `networkstatus.c`, function `networkstatus_set_current_consensus()`:

 We parse the flavor and if it is unknown, we bail early with:

 {{{
   if (flav < 0) {
     /* XXXX we don't handle unrecognized flavors yet. */
     log_warn(LD_BUG, "Unrecognized consensus flavor %s", flavor);
     return -2;
   }
 }}}

 But later in the function we have this if/else on the flavor name with a
 `else {}` statement that uses `dirserv_get_consensus()`. But we can't get
 into that else case since the first conditions are the only two flavors we
 can handle.

 In between the first checks above and this if/else ^, the flavor can
 change as in we take the one from the given consensus but again, there is
 a check on if we can handle that flavor:

 {{{
   if (flav != usable_consensus_flavor() &&
       !we_want_to_fetch_flavor(options, flav)) {
 }}}

 Bottom line, I think the `else {}` code is dead code. This simplifies the
 callgraph into the dirauth subsystem.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25914>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list