summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2021-02-11 14:48:04 +0100
committerTor Egge <Tor.Egge@broadpark.no>2021-02-11 14:48:04 +0100
commit441466a5010a7e580e6e81e541244fb7bc6e75c9 (patch)
treec42ac913c99b48662e6cc0624893eed99e7245a8 /searchlib
parent74d80502ec269488f6058cb8c00eb4bae84e8a25 (diff)
Reenable boundary checks when mapping lid to lid for referenced document type.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/attribute/imported_attribute_vector_read_guard.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/imported_search_context.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/reference_mappings.h4
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);