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:
@@ -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
|
||||
|
@@ -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.
|
||||
*
|
||||
|
Reference in New Issue
Block a user