[tor-bugs] #23790 [Core Tor/Tor]: rend_service_prune_list_impl_() doesn't copy over desc_is_dirty when copying intro points

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Oct 9 00:27:17 UTC 2017


#23790: rend_service_prune_list_impl_() doesn't copy over desc_is_dirty when
copying intro points
------------------------------+--------------------------
     Reporter:  jl            |      Owner:  (none)
         Type:  defect        |     Status:  new
     Priority:  Medium        |  Milestone:
    Component:  Core Tor/Tor  |    Version:  Tor: 0.3.1.7
     Severity:  Normal        |   Keywords:
Actual Points:                |  Parent ID:
       Points:                |   Reviewer:
      Sponsor:                |
------------------------------+--------------------------
 In `rend_service_prune_list_impl_(void)` (src/or/rendservice.c), the
 introduction points are copied over from the old to new `rend_service_t`:

 {{{#!c
 smartlist_add_all(new->intro_nodes, old->intro_nodes);
 }}}

 but, the `desc_is_dirty` field is not copied over.

 If a reload occurs between after a hidden service is added, but before its
 descriptor is published for the first time (triggered via
 `desc_is_dirty`), it will not publish its first descriptor until:
 {{{#!c
 rendinitialpostdelay + crypto_rand_int(2*rendpostperiod)
 }}}

 It looks like it's simply missing `new->desc_is_dirty =
 old->desc_is_dirty;` prior to copying of introduction points.

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


More information about the tor-bugs mailing list