diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-12-09 12:50:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-09 12:50:54 +0100 |
commit | c5627039b761eb1c046ee5574a2d8d8e42950eac (patch) | |
tree | 06aa0f122b6e0065f3246869c85b0eb6d8c21d8f | |
parent | c4fab523752309fb7d3ba67c599ff65785510d9d (diff) | |
parent | 90529734f00424d5ffe131fd2b1510af94f4b714 (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.cpp | 8 |
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()); + } } } |