aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-03-21 10:46:32 +0100
committerGitHub Enterprise <[email protected]>2026-03-21 10:46:32 +0100
commit079b537ed51ed14761545af178a1d47e3291f451 (patch)
treee4a4717783bb84add40bb5fcd58a2d59ff285a55 /src/zenserver
parentauth fail no cache (#871) (diff)
downloadzen-079b537ed51ed14761545af178a1d47e3291f451.tar.xz
zen-079b537ed51ed14761545af178a1d47e3291f451.zip
fix null stats provider crash when build store is not configured (#875)v5.7.25-pre0
- When build store is not configured, `m_BuildCidStore` is null but was unconditionally added as a stats provider, causing a null pointer dereference crash in `StatsReporter::ReportStats` - Added a null guard in `AddProvider` to reject null pointers defensively - Added a conditional check at the call site in `InitializeStructuredCache`
Diffstat (limited to 'src/zenserver')
-rw-r--r--src/zenserver/stats/statsreporter.cpp4
-rw-r--r--src/zenserver/storage/zenstorageserver.cpp5
2 files changed, 8 insertions, 1 deletions
diff --git a/src/zenserver/stats/statsreporter.cpp b/src/zenserver/stats/statsreporter.cpp
index a1926eba4..ff055cf18 100644
--- a/src/zenserver/stats/statsreporter.cpp
+++ b/src/zenserver/stats/statsreporter.cpp
@@ -40,6 +40,10 @@ StatsReporter::Shutdown()
void
StatsReporter::AddProvider(StatsProvider* Provider)
{
+ if (!Provider)
+ {
+ return;
+ }
RwLock::ExclusiveLockScope _(m_Lock);
m_Providers.push_back(Provider);
}
diff --git a/src/zenserver/storage/zenstorageserver.cpp b/src/zenserver/storage/zenstorageserver.cpp
index f5ede5692..d51a425a9 100644
--- a/src/zenserver/storage/zenstorageserver.cpp
+++ b/src/zenserver/storage/zenstorageserver.cpp
@@ -697,7 +697,10 @@ ZenStorageServer::InitializeStructuredCache(const ZenStorageServerConfig& Server
m_StatsReporter.AddProvider(m_CacheStore.Get());
m_StatsReporter.AddProvider(m_CidStore.get());
- m_StatsReporter.AddProvider(m_BuildCidStore.get());
+ if (m_BuildCidStore)
+ {
+ m_StatsReporter.AddProvider(m_BuildCidStore.get());
+ }
}
void