mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-08 01:58:34 +08:00
fix: heap buffer overflow when unittest at index wrapper (#36838)
issue: #35852 --------- Signed-off-by: chyezh <chyezh@outlook.com>
This commit is contained in:
parent
5ec4163d0f
commit
f46c3acea9
@ -172,9 +172,9 @@ TEST_P(IndexWrapperTest, BuildAndQuery) {
|
|||||||
search_info.search_params_ = search_conf;
|
search_info.search_params_ = search_conf;
|
||||||
std::unique_ptr<SearchResult> result;
|
std::unique_ptr<SearchResult> result;
|
||||||
if (vec_field_data_type == DataType::VECTOR_FLOAT) {
|
if (vec_field_data_type == DataType::VECTOR_FLOAT) {
|
||||||
auto dataset = GenDataset(NB, metric_type, false);
|
auto nb_for_nq = NQ + query_offset;
|
||||||
|
auto dataset = GenDataset(nb_for_nq, metric_type, false);
|
||||||
auto xb_data = dataset.get_col<float>(milvus::FieldId(100));
|
auto xb_data = dataset.get_col<float>(milvus::FieldId(100));
|
||||||
auto xb_dataset = knowhere::GenDataSet(NB, DIM, xb_data.data());
|
|
||||||
auto xq_dataset =
|
auto xq_dataset =
|
||||||
knowhere::GenDataSet(NQ, DIM, xb_data.data() + DIM * query_offset);
|
knowhere::GenDataSet(NQ, DIM, xb_data.data() + DIM * query_offset);
|
||||||
result = vec_index->Query(xq_dataset, search_info, nullptr);
|
result = vec_index->Query(xq_dataset, search_info, nullptr);
|
||||||
@ -188,11 +188,12 @@ TEST_P(IndexWrapperTest, BuildAndQuery) {
|
|||||||
xq_dataset->SetIsSparse(true);
|
xq_dataset->SetIsSparse(true);
|
||||||
result = vec_index->Query(xq_dataset, search_info, nullptr);
|
result = vec_index->Query(xq_dataset, search_info, nullptr);
|
||||||
} else {
|
} else {
|
||||||
auto dataset = GenDataset(NB, metric_type, true);
|
auto nb_for_nq = NQ + query_offset;
|
||||||
|
auto dataset = GenDataset(nb_for_nq, metric_type, true);
|
||||||
auto xb_bin_data = dataset.get_col<uint8_t>(milvus::FieldId(100));
|
auto xb_bin_data = dataset.get_col<uint8_t>(milvus::FieldId(100));
|
||||||
auto xb_dataset = knowhere::GenDataSet(NB, DIM, xb_bin_data.data());
|
// offset of binary vector is 8-aligned bit-wise representation.
|
||||||
auto xq_dataset = knowhere::GenDataSet(
|
auto xq_dataset = knowhere::GenDataSet(
|
||||||
NQ, DIM, xb_bin_data.data() + DIM * query_offset);
|
NQ, DIM, xb_bin_data.data() + ((DIM + 7) / 8) * query_offset);
|
||||||
result = vec_index->Query(xq_dataset, search_info, nullptr);
|
result = vec_index->Query(xq_dataset, search_info, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user