diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-12-09 12:29:15 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-12-09 12:29:15 +0100 |
commit | 90529734f00424d5ffe131fd2b1510af94f4b714 (patch) | |
tree | f0324014056a4c55db97cdad9ab313ee8528b5a0 /storage | |
parent | 63e0907c8e3f4775e43d0046f6ade647d32ce1ca (diff) |
Avoid nullptr memcpy argument in protocol serialization.
Diffstat (limited to 'storage')
-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()); + } } } |