]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add missing invocations of pthreads destructors
authorMichał Kępień <michal@isc.org>
Mon, 4 Jul 2022 14:02:12 +0000 (16:02 +0200)
committerMichał Kępień <michal@isc.org>
Mon, 4 Jul 2022 14:02:12 +0000 (16:02 +0200)
Add isc_mutex_destroy() and isc_rwlock_destroy() calls missing from the
commits that introduced the relevant isc_mutex_init() and
isc_rwlock_init() calls:

  - 76bcb4d16b776e25cc67937f7d1a2fe6e365cfd7
  - 15953043124416ab1dbc857f6885ecdb167401bb
  - 857f3bede37ccb419dac3816a0f96fa490af7d92

None of these omissions affect any hot paths, so they are not expected
to cause operational issues; correctness is the only concern here.

lib/dns/adb.c
lib/dns/resolver.c

index cb9539a778ba382b2a5954a3cd40ceb51a654b75..95ca2d407094a8f6f1e61fec25fd63b94ec8c776 100644 (file)
@@ -2055,6 +2055,7 @@ destroy(dns_adb_t *adb) {
                dns_adbnamebucket_t *nbucket = NULL;
                isc_ht_iter_current(it, (void **)&nbucket);
                cleanup_names(nbucket, INT_MAX);
+               isc_mutex_destroy(&nbucket->lock);
                isc_mem_put(adb->mctx, nbucket, sizeof(*nbucket));
        }
        isc_ht_iter_destroy(&it);
@@ -2070,6 +2071,7 @@ destroy(dns_adb_t *adb) {
                dns_adbentrybucket_t *ebucket = NULL;
                isc_ht_iter_current(it, (void **)&ebucket);
                cleanup_entries(ebucket, INT_MAX);
+               isc_mutex_destroy(&ebucket->lock);
                isc_mem_put(adb->mctx, ebucket, sizeof(*ebucket));
        }
        isc_ht_iter_destroy(&it);
index cd8ccd5f83606a825cca11860d798970a0e01130..f6e976d37fa170e188158a1e7f44a23984936367 100644 (file)
@@ -10094,6 +10094,7 @@ destroy(dns_resolver_t *res) {
        }
        isc_ht_iter_destroy(&it);
        isc_ht_destroy(&res->buckets);
+       isc_rwlock_destroy(&res->hash_lock);
 
        isc_ht_iter_create(res->zonebuckets, &it);
        for (result = isc_ht_iter_first(it); result == ISC_R_SUCCESS;
@@ -10109,10 +10110,12 @@ destroy(dns_resolver_t *res) {
                        ISC_LIST_UNLINK(bucket->list, fc, link);
                        isc_mem_put(res->mctx, fc, sizeof(*fc));
                }
+               isc_mutex_destroy(&bucket->lock);
                isc_mem_put(res->mctx, bucket, sizeof(*bucket));
        }
        isc_ht_iter_destroy(&it);
        isc_ht_destroy(&res->zonebuckets);
+       isc_rwlock_destroy(&res->zonehash_lock);
 
        if (res->dispatches4 != NULL) {
                dns_dispatchset_destroy(&res->dispatches4);