diff options
| author | Stefan Boberg <[email protected]> | 2026-03-21 10:46:32 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2026-03-21 10:46:32 +0100 |
| commit | 079b537ed51ed14761545af178a1d47e3291f451 (patch) | |
| tree | e4a4717783bb84add40bb5fcd58a2d59ff285a55 /src/zenserver | |
| parent | auth fail no cache (#871) (diff) | |
| download | zen-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.cpp | 4 | ||||
| -rw-r--r-- | src/zenserver/storage/zenstorageserver.cpp | 5 |
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 |