From c68c7b7cadcf0b161d9ca54f43c95c78e70b253e Mon Sep 17 00:00:00 2001 From: Igor Putovny Date: Wed, 11 Jun 2025 12:00:23 +0200 Subject: [PATCH] Hash: fix buffer overflow in unit test This bug manifested itself as segmentation fault of t_insert2_find test when TEST_ORDER was increased from 13 to 14. When checking the validity of filled table, the table is iterated from 0 to MAX_NUM. However, when order is an even number, the size of the table is lower than MAX_NUM (due to table resizing), which caused reading beyond the allocated memory. This bug does not apply to BIRD itself. --- lib/hash_test.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/hash_test.c b/lib/hash_test.c index 33b9ac857..b384503fe 100644 --- a/lib/hash_test.c +++ b/lib/hash_test.c @@ -40,10 +40,9 @@ struct test_node nodes[MAX_NUM]; static void print_rate_of_fulfilment(void) { - int i; int num_stacked_items = 0; - for (i = 0; i < MAX_NUM; i++) + for (size_t i = 0; i < HASH_SIZE(hash); i++) if (!hash.data[i]) num_stacked_items++; -- 2.47.3