2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 22:15:20 +00:00

Fix CID 352776: Concurrent data access violations

*** CID 352776:  Concurrent data access violations  (MISSING_LOCK)
/lib/dns/dst_api.c: 474 in dst_key_setmodified()
468     dst_key_isexternal(dst_key_t *key) {
469		return (key->external);
470     }
471
472     void
473     dst_key_setmodified(dst_key_t *key, bool value) {
>>>     CID 352776:  Concurrent data access violations  (MISSING_LOCK)
>>>     Accessing "key->modified" without holding lock
>>>	"dst_key.mdlock". Elsewhere, "dst_key.modified" is accessed with
>>>	"dst_key.mdlock" held 8 out of 11 times (8 of these accesses
>>>	strongly imply that it is necessary).
474		key->modified = value;
475     }
476
477     bool
478     dst_key_ismodified(dst_key_t *key) {
479		return (key->modified);
This commit is contained in:
Matthijs Mekking
2022-05-16 19:00:47 +02:00
parent 0a19bb3bf3
commit 1fa24d0afb
2 changed files with 11 additions and 3 deletions

View File

@@ -471,12 +471,20 @@ dst_key_isexternal(dst_key_t *key) {
void
dst_key_setmodified(dst_key_t *key, bool value) {
isc_mutex_lock(&key->mdlock);
key->modified = value;
isc_mutex_unlock(&key->mdlock);
}
bool
dst_key_ismodified(dst_key_t *key) {
return (key->modified);
dst_key_ismodified(const dst_key_t *key) {
bool modified;
isc_mutex_lock(&(((dst_key_t *)key)->mdlock));
modified = key->modified;
isc_mutex_unlock(&(((dst_key_t *)key)->mdlock));
return (modified);
}
isc_result_t

View File

@@ -1118,7 +1118,7 @@ dst_key_setmodified(dst_key_t *key, bool value);
*/
bool
dst_key_ismodified(dst_key_t *key);
dst_key_ismodified(const dst_key_t *key);
/*%<
* Check if the key file has been modified.
*