diff options
Diffstat (limited to 'searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp')
-rw-r--r-- | searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp index eff6ac9f374..800311adfd6 100644 --- a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp +++ b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "tensor_buffer_store.h" +#include <vespa/document/util/serializableexceptions.h> #include <vespa/eval/eval/value_codec.h> #include <vespa/eval/streamed/streamed_value_builder_factory.h> #include <vespa/vespalib/datastore/array_store.hpp> @@ -10,6 +11,7 @@ #include <vespa/vespalib/datastore/datastore.hpp> #include <vespa/vespalib/util/size_literals.h> +using document::DeserializeException; using vespalib::alloc::MemoryAllocator; using vespalib::datastore::CompactionContext; using vespalib::datastore::CompactionStrategy; @@ -90,6 +92,9 @@ TensorBufferStore::store_encoded_tensor(vespalib::nbostream &encoded) { const auto &factory = StreamedValueBuilderFactory::get(); auto val = vespalib::eval::decode_value(encoded, factory); + if (!encoded.empty()) { + throw DeserializeException("Leftover bytes deserializing tensor attribute value.", VESPA_STRLOC); + } return store_tensor(*val); } |