summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2022-12-09 12:50:54 +0100
committerGitHub <noreply@github.com>2022-12-09 12:50:54 +0100
commitc5627039b761eb1c046ee5574a2d8d8e42950eac (patch)
tree06aa0f122b6e0065f3246869c85b0eb6d8c21d8f
parentc4fab523752309fb7d3ba67c599ff65785510d9d (diff)
parent90529734f00424d5ffe131fd2b1510af94f4b714 (diff)
Merge pull request #25183 from vespa-engine/toregge/avoid-nullptr-memcpy-argument-in-protocol-serialization
Avoid nullptr memcpy argument in protocol serialization.
-rw-r--r--storage/src/vespa/storageapi/mbusprot/protocolserialization7.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/storage/src/vespa/storageapi/mbusprot/protocolserialization7.cpp b/storage/src/vespa/storageapi/mbusprot/protocolserialization7.cpp
index 151facf36e6..2083dd2700d 100644
--- a/storage/src/vespa/storageapi/mbusprot/protocolserialization7.cpp
+++ b/storage/src/vespa/storageapi/mbusprot/protocolserialization7.cpp
@@ -970,9 +970,13 @@ void fill_api_apply_diff_vector(std::vector<api::ApplyBucketDiffCommand::Entry>&
dest._docName = proto_entry.document_id();
// TODO consider making buffers std::strings instead to avoid explicit zeroing-on-resize overhead
dest._headerBlob.resize(proto_entry.header_blob().size());
- memcpy(dest._headerBlob.data(), proto_entry.header_blob().data(), proto_entry.header_blob().size());
+ if (proto_entry.header_blob().size() > 0) {
+ memcpy(dest._headerBlob.data(), proto_entry.header_blob().data(), proto_entry.header_blob().size());
+ }
dest._bodyBlob.resize(proto_entry.body_blob().size());
- memcpy(dest._bodyBlob.data(), proto_entry.body_blob().data(), proto_entry.body_blob().size());
+ if (proto_entry.body_blob().size() > 0) {
+ memcpy(dest._bodyBlob.data(), proto_entry.body_blob().data(), proto_entry.body_blob().size());
+ }
}
}