From eedec0b38b330327b2ccf6ed6758bc8fbdc89dc2 Mon Sep 17 00:00:00 2001 From: Fruitchan5 Date: Thu, 10 Jul 2025 12:20:54 +0800 Subject: [PATCH] fix: add bounds check to prevent out-of-range access in sparse table --- range_queries/sparse_table_range_queries.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/range_queries/sparse_table_range_queries.cpp b/range_queries/sparse_table_range_queries.cpp index 4f13945ba1c..68de91db2e9 100644 --- a/range_queries/sparse_table_range_queries.cpp +++ b/range_queries/sparse_table_range_queries.cpp @@ -83,10 +83,19 @@ std::vector > buildTable(const std::vector& A, template int getMinimum(int beg, int end, const std::vector& logs, const std::vector >& table) { + if(beg<0||end<=(int)table[0].size()){ + cout<<"Error:querry range ["<= (int)table.size() || beg >= (int)table[p].size() || (end - pLen + 1) >= (int)table[p].size()) { + std::cerr << "Error: index out of bounds when accessing sparse table." << std::endl; + return -1; + } return std::min(table[p][beg], table[p][end - pLen + 1]); } + } // namespace sparse_table } // namespace range_queries