diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2021-02-11 14:48:04 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2021-02-11 14:48:04 +0100 |
commit | 441466a5010a7e580e6e81e541244fb7bc6e75c9 (patch) | |
tree | c42ac913c99b48662e6cc0624893eed99e7245a8 /searchlib | |
parent | 74d80502ec269488f6058cb8c00eb4bae84e8a25 (diff) |
Reenable boundary checks when mapping lid to lid for referenced document type.
Diffstat (limited to 'searchlib')
3 files changed, 5 insertions, 3 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector_read_guard.h b/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector_read_guard.h index b31b11b8c74..ebcf3b821b7 100644 --- a/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector_read_guard.h +++ b/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector_read_guard.h @@ -41,7 +41,7 @@ protected: protected: uint32_t getTargetLid(uint32_t lid) const { - return _targetLids[lid]; + return lid < _targetLids.size() ? _targetLids[lid] : 0u; } public: diff --git a/searchlib/src/vespa/searchlib/attribute/imported_search_context.h b/searchlib/src/vespa/searchlib/attribute/imported_search_context.h index 4c3b6a89a14..a37774476e0 100644 --- a/searchlib/src/vespa/searchlib/attribute/imported_search_context.h +++ b/searchlib/src/vespa/searchlib/attribute/imported_search_context.h @@ -40,7 +40,7 @@ class ImportedSearchContext : public ISearchContext { SearchContextParams _params; uint32_t getTargetLid(uint32_t lid) const { - return _targetLids[lid]; + return lid < _targetLids.size() ? _targetLids[lid] : 0u; } void makeMergedPostings(bool isFilter); diff --git a/searchlib/src/vespa/searchlib/attribute/reference_mappings.h b/searchlib/src/vespa/searchlib/attribute/reference_mappings.h index 9923747577f..971ef1eaf93 100644 --- a/searchlib/src/vespa/searchlib/attribute/reference_mappings.h +++ b/searchlib/src/vespa/searchlib/attribute/reference_mappings.h @@ -86,7 +86,9 @@ public: std::atomic_thread_fence(std::memory_order_acquire); return TargetLids(&_targetLids[0], committedDocIdLimit); } - uint32_t getTargetLid(uint32_t doc) const { return _targetLids[doc]; } + uint32_t getTargetLid(uint32_t doc) const { + return doc < _committedDocIdLimit ? _targetLids[doc] : 0u; + } ReverseMappingRefs getReverseMappingRefs() const { uint32_t targetLidLimit = _targetLidLimit; std::atomic_thread_fence(std::memory_order_acquire); |