From 12640be3e48fc952265a12fbdadd71ce06c02331 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Sun, 28 Jun 2020 17:17:43 +0200 Subject: [PATCH] [#1282] Fixed a corner case race --- src/lib/hooks/hooks_manager.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/hooks/hooks_manager.cc b/src/lib/hooks/hooks_manager.cc index 868f48192c..c19bfcac60 100644 --- a/src/lib/hooks/hooks_manager.cc +++ b/src/lib/hooks/hooks_manager.cc @@ -152,8 +152,14 @@ HooksManager::unloadLibrariesInternal() { // was not destroyed and libraries not closed. if (!weak_lmc.expired()) { // Restore the library manager collection. - lm_collection_ = weak_lmc.lock(); - return (false); + boost::shared_ptr restored_lmc = weak_lmc.lock(); + if (restored_lmc) { + lm_collection_ = restored_lmc; + return (false); + } + // The library manager collection was destroyed between calls to + // expired and lock. + // assert(weak_lmc.expired()); } // Load the empty set of libraries. -- 2.47.2