mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-26 03:12:16 -04:00
dns_adb_flushname() calls dns_name_hash() to determine the ADB bucket number to search for the given name. Meanwhile, all other functions in lib/dns/adb.c call dns_name_fullhash() for determining the bucket number instead. This discrepancy causes dns_adb_flushname() to have virtually no chances of actually removing the given name from the ADB if the name is longer than 16 bytes (since dns_name_hash() only hashes the first 16 bytes of the name provided to it) - more specifically, the probability of success for names longer than 16 bytes is inversely proportional to the number of ADB buckets in use, i.e. 1:1021 at best. Fix by using dns_name_fullhash() instead of dns_name_hash() in dns_adb_flushname(), so that the logic for determining the bucket number that a given name belongs to is consistent throughout lib/dns/adb.c. |
||
|---|---|---|
| .. | ||
| ns1 | ||
| ns2 | ||
| dig.batch | ||
| knowngood.dig.out | ||
| setup.sh | ||
| tests.sh | ||
| tests_sh_cacheclean.py | ||