Skip to content
  • Matthijs Mekking's avatar
    named crashes on shutdown after load rpz failed · a490c091
    Matthijs Mekking authored
    This may happen when loading an RPZ failed and the code path skips
    calling dns_db_endload().  The dns_rpz_zone_t object is still kept
    marked as having registered db.  So when this object is finally
    destroyed in rpz_detach(), this code will incorrectly call
    `dns_db_updatenotify_unregister()`:
    
       if (rpz->db_registered)
         dns_db_updatenotify_unregister(rpz->db,
                                        dns_rpz_dbupdate_callback, rpz);
    
    and trigger this assertion failure:
    
       REQUIRE(db != NULL);
    
    To fix this, only call `dns_db_updatenotify_unregister()` when
    `rpz->db` is not NULL.
    a490c091