mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
Fix unchecked return of isc_rwlock_lock and isc_rwlock_unlock
This commit is contained in:
@@ -124,7 +124,7 @@ struct signer_event {
|
|||||||
|
|
||||||
static dns_dnsseckeylist_t keylist;
|
static dns_dnsseckeylist_t keylist;
|
||||||
static unsigned int keycount = 0;
|
static unsigned int keycount = 0;
|
||||||
isc_rwlock_t keylist_lock;
|
static isc_rwlock_t keylist_lock;
|
||||||
static isc_stdtime_t starttime = 0, endtime = 0, dnskey_endtime = 0, now;
|
static isc_stdtime_t starttime = 0, endtime = 0, dnskey_endtime = 0, now;
|
||||||
static int cycle = -1;
|
static int cycle = -1;
|
||||||
static int jitter = 0;
|
static int jitter = 0;
|
||||||
@@ -383,9 +383,9 @@ keythatsigned(dns_rdata_rrsig_t *rrsig) {
|
|||||||
dst_key_t *pubkey = NULL, *privkey = NULL;
|
dst_key_t *pubkey = NULL, *privkey = NULL;
|
||||||
dns_dnsseckey_t *key = NULL;
|
dns_dnsseckey_t *key = NULL;
|
||||||
|
|
||||||
isc_rwlock_lock(&keylist_lock, isc_rwlocktype_read);
|
RWLOCK(&keylist_lock, isc_rwlocktype_read);
|
||||||
key = keythatsigned_unlocked(rrsig);
|
key = keythatsigned_unlocked(rrsig);
|
||||||
isc_rwlock_unlock(&keylist_lock, isc_rwlocktype_read);
|
RWUNLOCK(&keylist_lock, isc_rwlocktype_read);
|
||||||
if (key != NULL) {
|
if (key != NULL) {
|
||||||
return (key);
|
return (key);
|
||||||
}
|
}
|
||||||
|
@@ -113,9 +113,12 @@ isc_rwlock_tryupgrade(isc_rwlock_t *rwl) {
|
|||||||
|
|
||||||
void
|
void
|
||||||
isc_rwlock_downgrade(isc_rwlock_t *rwl) {
|
isc_rwlock_downgrade(isc_rwlock_t *rwl) {
|
||||||
|
isc_result_t result;
|
||||||
atomic_store_release(&rwl->downgrade, true);
|
atomic_store_release(&rwl->downgrade, true);
|
||||||
isc_rwlock_unlock(rwl, isc_rwlocktype_write);
|
result = isc_rwlock_unlock(rwl, isc_rwlocktype_write);
|
||||||
isc_rwlock_lock(rwl, isc_rwlocktype_read);
|
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
||||||
|
result = isc_rwlock_lock(rwl, isc_rwlocktype_read);
|
||||||
|
RUNTIME_CHECK(result == ISC_R_SUCCESS);
|
||||||
atomic_store_release(&rwl->downgrade, false);
|
atomic_store_release(&rwl->downgrade, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user