diff options
Diffstat (limited to 'src/zenstore/cache/cachedisklayer.cpp')
| -rw-r--r-- | src/zenstore/cache/cachedisklayer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/zenstore/cache/cachedisklayer.cpp b/src/zenstore/cache/cachedisklayer.cpp index 4f0d412ec..46dfbd912 100644 --- a/src/zenstore/cache/cachedisklayer.cpp +++ b/src/zenstore/cache/cachedisklayer.cpp @@ -648,6 +648,13 @@ BucketManifestSerializer::ReadSidecarFile(RwLock::ExclusiveLockScope& B while (RemainingEntryCount--) { const ManifestData* Entry = Sidecar.MakeView<ManifestData>(CurrentReadOffset); + if (Entry == nullptr) + { + ZEN_WARN("Failed to read sidecar file '{}'. Failed to read {} bytes at {}", + SidecarPath, + sizeof(ManifestData), + CurrentReadOffset); + } CurrentReadOffset += sizeof(ManifestData); if (auto It = Index.find(Entry->Key); It != Index.end()) @@ -1078,6 +1085,11 @@ ZenCacheDiskLayer::CacheBucket::ReadIndexFile(RwLock::ExclusiveLockScope&, const while (RemainingEntryCount--) { const DiskIndexEntry* Entry = FileBuffer.MakeView<DiskIndexEntry>(CurrentReadOffset); + if (Entry == nullptr) + { + ZEN_WARN("skipping invalid entry in '{}', failed to read {} bytes at {}", IndexPath, sizeof(DiskIndexEntry), CurrentReadOffset); + continue; + } CurrentReadOffset += sizeof(DiskIndexEntry); if (!cache::impl::ValidateCacheBucketIndexEntry(*Entry, InvalidEntryReason)) |