summaryrefslogtreecommitdiff
path: root/src/buffer_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2016-07-04 19:20:22 +0100
committerMaxime Coste <frrrwww@gmail.com>2016-07-04 19:20:22 +0100
commit469eb6ec440bf695c3a41080da1728792771d457 (patch)
tree79ed6e51e3d304a204a816fd5aa39dd3a03be7f9 /src/buffer_manager.cc
parentca7f647562ceb0d209def169b8743c24f202c2c6 (diff)
Avoid possible access to an invalid, being deleted buffer list.
Diffstat (limited to 'src/buffer_manager.cc')
-rw-r--r--src/buffer_manager.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/buffer_manager.cc b/src/buffer_manager.cc
index d6dc9ae0..e743bff0 100644
--- a/src/buffer_manager.cc
+++ b/src/buffer_manager.cc
@@ -18,6 +18,10 @@ struct name_not_unique : runtime_error
BufferManager::~BufferManager()
{
+ // Move buffers to m_buffer_trash to avoid running BufClose
+ // hook while clearing m_buffers
+ m_buffer_trash = std::move(m_buffers);
+
// Make sure not clients exists
ClientManager::instance().clear();
}