From: Igor Putovny Date: Wed, 11 Jun 2025 10:00:23 +0000 (+0200) Subject: Hash: fix buffer overflow in unit test X-Git-Tag: v3.1.4~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c68c7b7cadcf0b161d9ca54f43c95c78e70b253e;p=thirdparty%2Fbird.git 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. --- 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++;