mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 14:07:59 +00:00
When the client->recursionquota pointer was overloaded by different features, each of those features had to be aware of that fact and handle any updates of that pointer gracefully. Example: prefetch code initiates recursion, attaching to client->recursionquota, then query processing restarts due to a CNAME being encountered, then that CNAME is not found in the cache, so another recursion is triggered, but client->recursionquota is already attached to; even though it is not CNAME chaining code that attached to that pointer, that code still has to handle such a situation gracefully. However, all features that can initiate recursion have now been updated to use separate slots in the 'recursions' array, so keeping the old checks in place means masking future programming errors that could otherwise be caught - and should be caught because each feature needs to properly maintain its own quota reference. Remove outdated recursion quota pointer checks to enable the assertions in isc_quota_*() functions to detect programming errors in code paths that can start recursion. Remove an outdated comment to prevent confusion.