diff options
author | Robin Gareus <robin@gareus.org> | 2016-02-24 23:36:15 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-02-24 23:36:52 +0100 |
commit | a6af411af7ade161483ae688f5e1868d481a8fce (patch) | |
tree | ac2d17de2fc3689b80e7dd63f03e314904e1f287 /libs | |
parent | 8d81f121e5b68030eea5444c3ebad14d6a0bfa82 (diff) |
potential mem corruption at session close:
ARDOUR::Session::~Session()
ARDOUR::Route::~Route()
ARDOUR::InternalReturn::~InternalReturn()
ARDOUR::Return::~Return()
ARDOUR::Session::unmark_return_id(unsigned int)
boost::dynamic_bitset<unsigned int, std::allocator<unsigned int> >::reference::do_assign(bool)
-> Invalid write of size 4
-> 0 bytes inside a block of size 4 free'd
Thanks to The_CLA for valgrinding this.
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/session.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 3509ee19a5..d0fe74db21 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -5501,6 +5501,7 @@ Session::unmark_aux_send_id (uint32_t id) void Session::unmark_return_id (uint32_t id) { + if (_state_of_the_state & Deletion) { return; } if (id < return_bitset.size()) { return_bitset[id] = false; } |