31 lines
1.1 KiB
Diff
31 lines
1.1 KiB
Diff
From 98fca774b62f35b0618c01430e424ca43c492e34 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= <ondrej@isc.org>
|
|
Date: Wed, 7 Dec 2022 16:45:33 +0100
|
|
Subject: [PATCH] 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 fb1acd6736609360f79a498d44dffcceb8ca0f54)
|
|
---
|
|
lib/dns/zone.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/dns/zone.c b/lib/dns/zone.c
|
|
index 2456cd23be..22ffc73b63 100644
|
|
--- a/lib/dns/zone.c
|
|
+++ b/lib/dns/zone.c
|
|
@@ -18656,7 +18656,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;
|
|
--
|
|
2.23.0
|