id summary reporter owner description type status milestone component version severity resolution keywords cc 9940 bad bug in intrusive list with safe_link (or auto_unlink) hooks Matei David Ion Gaztañaga "Looking at `class list_impl` inside `list.hpp`: - the header node is stored as a data **member** somewhere inside `list_impl::data_`; - however, the class **inherits** from `detail::clear_on_destructor_base`. This is really bad. During destruction, the header is deallocated first (as a data member), and after, the destructor of `clear_on_destructor_base` attempts to clear the list. To replicate the bug, use `safe_link` hooks, and have the node/value destructor clear the list pointers. The base class destructor calls `clear()`, which calls `clear_and_dispose()`, which forms iterator `it` by following the header pointer (which is zeroed by then). Incrementing `it` results in SEGV. The same probably happens with `auto_unlink` hooks which also trigger post-mortem destruction from the base class." Bugs closed To Be Determined intrusive Boost 1.55.0 Problem fixed intrusive list safe_link