summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-12-09 10:46:55 +0100
committerTor Egge <Tor.Egge@online.no>2022-12-09 10:46:55 +0100
commit70fdb815d692531d78e94d78e26938de2065c30b (patch)
tree19c2a82142a8dfaf58599527e961dc119c6600a0 /searchlib
parent0f15b405cad738460a8126bf9ef689ec3edfd094 (diff)
Avoid nullptr memcpy argument.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/tensor/small_subspaces_buffer_type.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/tensor/tensor_buffer_operations.cpp4
2 files changed, 6 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/small_subspaces_buffer_type.cpp b/searchlib/src/vespa/searchlib/tensor/small_subspaces_buffer_type.cpp
index ba27f017022..6a71388a3b9 100644
--- a/searchlib/src/vespa/searchlib/tensor/small_subspaces_buffer_type.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/small_subspaces_buffer_type.cpp
@@ -43,7 +43,9 @@ SmallSubspacesBufferType::destroyElements(void *buffer, ElemCount numElems)
void
SmallSubspacesBufferType::fallbackCopy(void *newBuffer, const void *oldBuffer, ElemCount numElems)
{
- memcpy(newBuffer, oldBuffer, numElems);
+ if (numElems > 0) {
+ memcpy(newBuffer, oldBuffer, numElems);
+ }
const char *elem = static_cast<const char *>(oldBuffer);
while (numElems >= getArraySize()) {
_ops.copied_labels(unconstify(vespalib::ConstArrayRef<char>(elem, getArraySize())));
diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_operations.cpp b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_operations.cpp
index 4f0db54ac2a..3a42b47ace3 100644
--- a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_operations.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_operations.cpp
@@ -134,7 +134,9 @@ TensorBufferOperations::store_tensor(ArrayRef<char> buf, const vespalib::eval::V
}
auto cells = tensor.cells();
assert(cells_size == cells.size);
- memcpy(buf.data() + cells_start_offset, cells.data, cells_mem_size);
+ if (cells_mem_size > 0) {
+ memcpy(buf.data() + cells_start_offset, cells.data, cells_mem_size);
+ }
if (cells_end_offset != store_end) {
memset(buf.data() + cells_end_offset, 0, store_end - cells_end_offset);
}