mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-28 09:37:10 -04:00
Add more zone locks
Add more zone locks around code that touches zone timer setting
in failure modes.
(cherry picked from commit 143d1c9767)
This commit is contained in:
parent
f67202587f
commit
8b34aeb874
1 changed files with 7 additions and 2 deletions
|
|
@ -7131,12 +7131,12 @@ failure:
|
|||
} else if (db != NULL) {
|
||||
dns_db_detach(&db);
|
||||
}
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
LOCK_ZONE(zone);
|
||||
set_resigntime(zone);
|
||||
zone_needdump(zone, DNS_DUMP_DELAY);
|
||||
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NEEDNOTIFY);
|
||||
UNLOCK_ZONE(zone);
|
||||
} else {
|
||||
/*
|
||||
* Something failed. Retry in 5 minutes.
|
||||
|
|
@ -7145,6 +7145,7 @@ failure:
|
|||
isc_interval_set(&ival, 300, 0);
|
||||
isc_time_nowplusinterval(&zone->resigntime, &ival);
|
||||
}
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
INSIST(version == NULL);
|
||||
}
|
||||
|
|
@ -9643,6 +9644,7 @@ cleanup:
|
|||
dns_db_detach(&db);
|
||||
}
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
if (ISC_LIST_HEAD(zone->signing) != NULL) {
|
||||
isc_interval_t interval;
|
||||
if (zone->update_disabled || result != ISC_R_SUCCESS) {
|
||||
|
|
@ -9654,6 +9656,7 @@ cleanup:
|
|||
} else {
|
||||
isc_time_settoepoch(&zone->signingtime);
|
||||
}
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
INSIST(version == NULL);
|
||||
}
|
||||
|
|
@ -19656,6 +19659,7 @@ zone_rekey(dns_zone_t *zone) {
|
|||
result = ISC_R_SUCCESS;
|
||||
|
||||
failure:
|
||||
LOCK_ZONE(zone);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
/*
|
||||
* Something went wrong; try again in ten minutes or
|
||||
|
|
@ -19665,6 +19669,7 @@ failure:
|
|||
0);
|
||||
isc_time_nowplusinterval(&zone->refreshkeytime, &ival);
|
||||
}
|
||||
UNLOCK_ZONE(zone);
|
||||
|
||||
dns_diff_clear(&diff);
|
||||
dns_diff_clear(&_sig_diff);
|
||||
|
|
|
|||
Loading…
Reference in a new issue