Skip to content
  • Nick Mathewson's avatar
    Track where microdescs are referenced to prevent free errs · 4ba9f3e3
    Nick Mathewson authored
    On IRC, wanoskarnet notes that if we ever do microdesc_free() on a
    microdesc that's in the nodelist, we're in trouble.  Also, we're in
    trouble if we free one that's still in the microdesc_cache map.
    
    This code adds a flag to microdesc_t to note where the microdesc is
    referenced from, and checks those flags from microdesc_free().  I
    don't believe we have any errors here now, but if we introduce some
    later, let's log and recover from them rather than introducing
    heisenbugs later on.
    
    Addresses bug 3153.
    4ba9f3e3