From a1dac6dc544dbaeec014e4f2b0c1ae49ea117330 Mon Sep 17 00:00:00 2001 From: Light-V <826254726@qq.com> Date: Sat, 21 Mar 2026 02:05:09 +0800 Subject: [PATCH] Fix memory out-of-bounds access when ex_bits is 0 in HNSW search --- include/rabitqlib/index/hnsw/hnsw.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/rabitqlib/index/hnsw/hnsw.hpp b/include/rabitqlib/index/hnsw/hnsw.hpp index 3fef418..e8e71e9 100644 --- a/include/rabitqlib/index/hnsw/hnsw.hpp +++ b/include/rabitqlib/index/hnsw/hnsw.hpp @@ -1197,7 +1197,11 @@ void HierarchicalNSW::searchBaseLayerST_AdaptiveRerankOpt( float distk = 1e10; EstimateRecord start_estimate_record; - get_full_est(q_to_centroids, query_wrapper, ep_id, start_estimate_record); + if (ex_bits_ == 0) { + get_bin_est(q_to_centroids, query_wrapper, ep_id, start_estimate_record); + } else { + get_full_est(q_to_centroids, query_wrapper, ep_id, start_estimate_record); + } float est_dist = start_estimate_record.est_dist; float low_dist = start_estimate_record.low_dist;