Crash when Damaris calls VariableManager::DeleteAll()
If a Damaris Variable has not been sized correctly (perhaps using a Parameter) i.e. it's Layout is incorrect, in parrticular if more data is written that what the buffer is sized for then on call to freeing resources (VariableManager::DeleteAll()) the Damaris server process can/will crash
The case seen emits the following assertion fail in boost::interprocess:
boost/interprocess/mem_algo/rbtree_best_fit.hpp:1210: bool boost::interprocess::rbtree_best_fit<MutexFamily, VoidMutex, MemAlignment>::priv_is_prev_allocated(boost::interprocess::rbtree_best_fit<MutexFamily, VoidMutex, MemAlignment>::block_ctrl*)
[with MutexFamily = boost::interprocess::mutex_family; VoidPointer = boost::interprocess::offset_ptr<void>; long unsigned int MemAlignment = 0]:
Assertion `prev->m_size == block->m_prev_size' failed.
The Damaris log will show that the process fails: Environment::Finalize() calling: VariableManager::DeleteAll()
Edited by BOWDEN Joshua Charles