aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/projectstore
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-05-02 17:40:30 +0200
committerGitHub Enterprise <[email protected]>2024-05-02 17:40:30 +0200
commit1155ed2048a24f4dfcfa65d63243b77973f820d6 (patch)
tree49961435a57e3a516506bb6965d021c4864e3ecb /src/zenserver/projectstore
parentuse write and move in place for safer writing of files (#70) (diff)
downloadzen-1155ed2048a24f4dfcfa65d63243b77973f820d6.tar.xz
zen-1155ed2048a24f4dfcfa65d63243b77973f820d6.zip
fix zero size attachment replies (#69)
- Bugfix: Don't try to respond with zero size partial cache value when partial size is zero - Improvement: Added more validation of data read from cache / cas
Diffstat (limited to 'src/zenserver/projectstore')
-rw-r--r--src/zenserver/projectstore/projectstore.cpp13
-rw-r--r--src/zenserver/projectstore/zenremoteprojectstore.cpp1
2 files changed, 11 insertions, 3 deletions
diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp
index f5fecce24..45a96c60d 100644
--- a/src/zenserver/projectstore/projectstore.cpp
+++ b/src/zenserver/projectstore/projectstore.cpp
@@ -3431,9 +3431,16 @@ ProjectStore::Rpc(HttpServerRequest& HttpReq,
IoBuffer ChunkBuffer = m_CidStore.FindChunkByCid(RawHash);
if (ChunkBuffer)
{
- ResponseWriter.AddHash(RawHash);
- ResponsePackage.AddAttachment(
- CbAttachment(CompressedBuffer::FromCompressedNoValidate(std::move(ChunkBuffer)), RawHash));
+ CompressedBuffer Compressed = CompressedBuffer::FromCompressedNoValidate(std::move(ChunkBuffer));
+ if (Compressed)
+ {
+ ResponseWriter.AddHash(RawHash);
+ ResponsePackage.AddAttachment(CbAttachment(std::move(Compressed), RawHash));
+ }
+ else
+ {
+ ZEN_WARN("invalid compressed binary in cas store for {}", RawHash);
+ }
}
}
ResponseWriter.EndArray();
diff --git a/src/zenserver/projectstore/zenremoteprojectstore.cpp b/src/zenserver/projectstore/zenremoteprojectstore.cpp
index cec68111f..679c344c6 100644
--- a/src/zenserver/projectstore/zenremoteprojectstore.cpp
+++ b/src/zenserver/projectstore/zenremoteprojectstore.cpp
@@ -119,6 +119,7 @@ public:
IoHash RawHash;
uint64_t RawSize;
CompressedBuffer Compressed = CompressedBuffer::FromCompressed(Chunk, RawHash, RawSize);
+ ZEN_ASSERT(Compressed);
RequestWriter.AddHash(RawHash);
RequestPackage.AddAttachment(CbAttachment(Compressed, RawHash));
}