aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/cache/cachedisklayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenstore/cache/cachedisklayer.cpp')
-rw-r--r--src/zenstore/cache/cachedisklayer.cpp12
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))