aboutsummaryrefslogtreecommitdiff
path: root/modules/spanningtree/postcommand.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2026-03-28 21:32:23 +0000
committerGravatar Sadie Powell2026-03-29 00:42:15 +0000
commitcbc5431d62e3fe9166f18395dce3ddf2af0906d3 (patch)
tree48a87fc27dc4826ce0caf4071e2060a9ff9e24c5 /modules/spanningtree/postcommand.cpp
parentMove service code from base to its own header. (diff)
Switch modules from reference<> to shared_ptr<> and weak_ptr<>.
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);