]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Lock zone before reading DNS_ZONEFLG_REFRESH
authorMark Andrews <marka@isc.org>
Thu, 27 Aug 2020 09:41:47 +0000 (19:41 +1000)
committerMark Andrews <marka@isc.org>
Mon, 7 Sep 2020 23:25:43 +0000 (09:25 +1000)
lib/dns/zone.c

index 97e24c7e7fdf02158b974a47b71d7740349a0abf..4af5606d1e52ee750a954ad22aa36382cd4a6164 100644 (file)
@@ -17528,9 +17528,13 @@ dns_zonemgr_getcount(dns_zonemgr_t *zmgr, int state) {
        case DNS_ZONESTATE_SOAQUERY:
                for (zone = ISC_LIST_HEAD(zmgr->zones);
                     zone != NULL;
-                    zone = ISC_LIST_NEXT(zone, link))
-                       if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_REFRESH))
+                    zone = ISC_LIST_NEXT(zone, link)) {
+                       LOCK_ZONE(zone);
+                       if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_REFRESH)) {
                                count++;
+                       }
+                       UNLOCK_ZONE(zone);
+               }
                break;
        case DNS_ZONESTATE_ANY:
                for (zone = ISC_LIST_HEAD(zmgr->zones);