summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-12-09 12:29:15 +0100
committerTor Egge <Tor.Egge@online.no>2022-12-09 12:29:15 +0100
commit90529734f00424d5ffe131fd2b1510af94f4b714 (patch)
treef0324014056a4c55db97cdad9ab313ee8528b5a0 /storage
parent63e0907c8e3f4775e43d0046f6ade647d32ce1ca (diff)
Avoid nullptr memcpy argument in protocol serialization.
Diffstat (limited to 'storage')
-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());
+ }
}
}