aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-05-02 19:44:28 +0200
committerGitHub <[email protected]>2023-05-02 19:44:28 +0200
commit66809d1c0b1ddf2fd1d4d465d7fdb3d6646663a4 (patch)
treeb611054abb8da4d717b3586e89611abc8d3e3208 /src
parentv0.2.8 (diff)
downloadzen-66809d1c0b1ddf2fd1d4d465d7fdb3d6646663a4.tar.xz
zen-66809d1c0b1ddf2fd1d4d465d7fdb3d6646663a4.zip
Treat reading outside of block store file as a not found error. We may encounter truncated blocks due to earlier abnormal termination of zenserver or disk failures. (#268)
Diffstat (limited to 'src')
-rw-r--r--src/zenstore/blockstore.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/zenstore/blockstore.cpp b/src/zenstore/blockstore.cpp
index 5dfa10c91..e19712c40 100644
--- a/src/zenstore/blockstore.cpp
+++ b/src/zenstore/blockstore.cpp
@@ -79,6 +79,10 @@ BlockStoreFile::MarkAsDeleteOnClose()
IoBuffer
BlockStoreFile::GetChunk(uint64_t Offset, uint64_t Size)
{
+ if ((Offset + Size) > m_IoBuffer.GetSize())
+ {
+ return IoBuffer();
+ }
return IoBuffer(m_IoBuffer, Offset, Size);
}