CID 442816: Concurrent data access violations in lib/dns/zone.c
Coverity Scan infers a missing lock in lib/dns/zone.c
on v9_18
from how we used it before.
The culprit seems to be !7620 (merged).
*** CID 442816: Concurrent data access violations (MISSING_LOCK)
/lib/dns/zone.c: 17886 in zone_loaddone()
17880 DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_THAW);
17881 if (inline_secure(zone)) {
17882 UNLOCK_ZONE(zone->raw);
17883 } else if (secure != NULL) {
17884 UNLOCK_ZONE(secure);
17885 }
>>> CID 442816: Concurrent data access violations (MISSING_LOCK)
>>> Accessing "zone->locked" without holding lock "dns_zone.lock". Elsewhere, "dns_zone.locked" is accessed with "dns_zone.lock" held 354 out of 371 times.
17886 UNLOCK_ZONE(zone);
17887
17888 (void)dns_db_endload(load->db, &load->callbacks);
17889
17890 LOCK_ZONE(zone);
17891 zone_idetach(&load->callbacks.zone);