Release unused key file IO lock objects

Due to off-by-one error in zonemgr_keymgmt_delete, unused key file IO
lock objects were never freed and they were kept until the server
shutdown.  Adjust the returned value by -1 to accomodate the fact that
the atomic_fetch_*() functions return the value before the operation and
not current value after the operation.

(cherry picked from commit fb1acd6736)
This commit is contained in:
Ondřej Surý 2022-12-07 16:45:33 +01:00
parent b5d53e75b7
commit 85f5071a6d
No known key found for this signature in database
GPG key ID: 2820F37E873DEA41

View file

@ -18959,7 +18959,7 @@ zonemgr_keymgmt_delete(dns_zonemgr_t *zmgr, dns_zone_t *zone) {
if (dns_name_equal(kfio->name, &zone->origin)) {
unsigned int count;
count = atomic_fetch_sub_relaxed(&kfio->count, 1);
count = atomic_fetch_sub_relaxed(&kfio->count, 1) - 1;
if (count > 0) {
/* Keep the entry. */
break;