aboutsummaryrefslogtreecommitdiff
path: root/modules/spanningtree/postcommand.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/spanningtree/postcommand.cpp')
-rw-r--r--modules/spanningtree/postcommand.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/spanningtree/postcommand.cpp b/modules/spanningtree/postcommand.cpp
index 41cdfa908..b42944b3d 100644
--- a/modules/spanningtree/postcommand.cpp
+++ b/modules/spanningtree/postcommand.cpp
@@ -69,8 +69,10 @@ void SpanningTreeUtilities::RouteCommand(TreeServer* origin, CommandBase* thiscm
}
else
{
- auto* srcmodule = thiscmd->service_creator.ptr();
- if (!(srcmodule->properties & (VF_COMMON | VF_CORE)) && srcmodule != Creator)
+ // The lock here should always succeed because we were called by routing
+ // a command from it.
+ const auto& srcmodule = thiscmd->service_creator.lock();
+ if (!(srcmodule->properties & (VF_COMMON | VF_CORE)) && !insp::same_ptr(srcmodule, CreatorPtr))
{
ServerInstance->Logs.Normal(MODNAME, "Routed command {} from non-VF_COMMON module {}",
command, srcmodule->ModuleFile);