INSIST that active quota is 0 in destroy_adbentry()

This should catch ADB quota management errors in the resolver.

(cherry picked from commit c7ba26c3d6)
This commit is contained in:
Aram Sargsyan
2022-12-22 13:43:47 +00:00
committed by Arаm Sаrgsyаn
parent 02f775a447
commit 650f3098e1

View File

@@ -1874,11 +1874,14 @@ static void
free_adbentry(dns_adb_t *adb, dns_adbentry_t **entry) {
dns_adbentry_t *e;
dns_adblameinfo_t *li;
uint_fast32_t active;
INSIST(entry != NULL && DNS_ADBENTRY_VALID(*entry));
e = *entry;
*entry = NULL;
active = atomic_load_acquire(&e->active);
INSIST(active == 0);
INSIST(e->lock_bucket == DNS_ADB_INVALIDBUCKET);
INSIST(e->refcnt == 0);
INSIST(!ISC_LINK_LINKED(e, plink));