bind9/lib/dns
Aram Sargsyan 6687de854f Use a read lock when iterating over a hashmap
The 'dns_tsigkeyring_t' structure has a read/write lock to protect
its 'keys' member, which is a 'isc_hashmap_t' pointer and needs to
be protected.

The dns_tsigkeyring_dump() function, however, doesn't use the lock,
which can introduce a race with another thread, if the other thread
tries to modify the hashmap.

Add a read lock around the code, which iterates over the hashmap.
2023-11-13 12:06:26 +00:00
..
include if GLUEOK is set, and glue is found in a zone DB, don't check the cache 2023-11-01 16:49:08 +01:00
rdata remove dns_name_totext2() and dns_name_toprincipal() 2023-08-31 12:53:32 -07:00
.gitignore Add support for User Statically Defined Tracing (USDT) probes 2023-08-21 18:39:53 +02:00
acl.c Convert rwlock in dns_acl to RCU 2023-10-13 14:44:40 +02:00
adb.c Also look for additional records in dns_adb_find 2023-11-01 16:49:08 +01:00
badcache.c Refactor dns_badcache to use cds_lfht lock-free hashtable 2023-07-31 15:51:15 +02:00
byaddr.c remove isc_task completely 2023-02-16 18:35:32 +01:00
cache.c restore isc_mem_setwater() call in the cache 2023-11-01 15:18:02 +00:00
callbacks.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
catz.c Fix shutdown races in catzs 2023-10-23 08:21:39 +00:00
client.c Replace the linked list of TCP dispatches with hash table 2023-09-16 07:32:18 +02:00
clientinfo.c refactor dns_clientinfo_init(); use separate function to set ECS 2023-02-07 23:48:22 -08:00
compress.c Cleanup the dns_name macros 2023-09-12 16:14:10 +02:00
db.c Use cds_lfht for updatenotify mechanism in dns_db unit 2023-07-31 18:11:34 +02:00
dbiterator.c Implement dns_db node tracing 2023-02-28 11:44:15 +01:00
diff.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
dispatch.c Add option to mark TCP dispatch as unshared 2023-10-24 13:07:03 +02:00
dlz.c Refactor dns_zone_create() to return void 2023-07-27 11:37:44 +02:00
dns64.c Add the ability to use DNS64 internally 2023-09-13 14:31:43 +10:00
dnsrps.c Give the rdataset->privateN fields more helpful names 2023-07-17 14:50:25 +02:00
dnssec.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
dnstap.c Change dns_message_create() function to accept memory pools 2023-09-24 18:07:40 +02:00
dnstap.proto Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
ds.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 08:33:43 +01:00
dst_api.c get_key_struct() can no longer fail 2023-06-14 08:14:38 +00:00
dst_internal.h Probe if ED448 and ED25519 are supported 2023-04-03 12:06:04 +10:00
dst_openssl.h Report file and line when converting OpenSSL errors 2023-04-03 12:06:04 +10:00
dst_parse.c Fix clang formatting 2023-08-09 23:48:17 +00:00
dst_parse.h Remove TKEY Mode 2 (Diffie-Hellman) 2023-03-08 08:36:25 +01:00
dyndb.c switch to using isc_loopmgr_pause() instead of task exclusive 2023-02-16 17:51:55 +01:00
ecs.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
fixedname.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
forward.c rename dns_qp_findname_ancestor() to dns_qp_lookup() 2023-09-28 00:32:44 -07:00
gen.c Remove unused support for fromwire(DNS_NAME_DOWNCASE) 2023-02-06 13:26:36 +00:00
geoip2.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
gssapi_link.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
gssapictx.c remove dns_name_totext2() and dns_name_toprincipal() 2023-08-31 12:53:32 -07:00
hmac_link.c Emit deprecated warning for K* file pairs 2023-06-29 08:28:48 +10:00
ipkeylist.c Remove ISC_MEM_ZERO and isc_mem_*x() API 2023-08-31 22:08:35 +02:00
iptable.c Convert manual dns_iptable_{attach,detach} to ISC_REFCOUNT_IMPL 2023-10-13 14:44:40 +02:00
journal.c Remove ISC_MEM_ZERO and isc_mem_*x() API 2023-08-31 22:08:35 +02:00
kasp.c Change default TTLsig to one week 2023-08-02 11:16:50 +02:00
key.c Apply the SET_IF_NOT_NULL() semantic patch 2023-08-15 12:21:41 +02:00
keydata.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
keymgr.c Ignore max-zone-ttl on dnssec-policy insecure 2023-08-01 08:56:52 +02:00
keytable.c rename dns_qp_findname_ancestor() to dns_qp_lookup() 2023-09-28 00:32:44 -07:00
log.c remove {root-}delegation-only 2023-03-23 12:57:01 -07:00
Makefile.am Fix build error related to USDT 2023-10-10 16:57:18 +02:00
master.c Update the source code formatting using clang-format-17 2023-10-17 17:47:46 +02:00
masterdump.c remove dns_name_totext2() and dns_name_toprincipal() 2023-08-31 12:53:32 -07:00
message.c Bump the mempool sizes in dns_message 2023-10-27 15:28:27 +02:00
name.c Cleanup the dns_name macros 2023-09-12 16:14:10 +02:00
nametree.c rename dns_qp_findname_ancestor() to dns_qp_lookup() 2023-09-28 00:32:44 -07:00
ncache.c Correctly set the value of covered in dns_ncache_current 2023-09-18 13:38:27 +10:00
nsec.c Remove TKEY Mode 2 (Diffie-Hellman) 2023-03-08 08:36:25 +01:00
nsec3.c Update the source code formatting using clang-format-17 2023-10-17 17:47:46 +02:00
nta.c Fix undefined behaviour occurrences 2023-10-13 09:57:28 +00:00
openssl_link.c Address potential memory leak in dst__openssl_fromlabel 2023-09-01 12:01:20 +10:00
openssl_shim.c Apply the SET_IF_NOT_NULL() semantic patch 2023-08-15 12:21:41 +02:00
openssl_shim.h Remove TKEY Mode 2 (Diffie-Hellman) 2023-03-08 08:36:25 +01:00
opensslecdsa_link.c Check that buf is large enough 2023-09-01 12:01:20 +10:00
openssleddsa_link.c Clear OpenSSL errors on context creation failures 2023-09-01 12:01:20 +10:00
opensslrsa_link.c Add missing "Design by Contract" REQUIREs 2023-09-01 12:01:20 +10:00
order.c Update sources to Clang 15 formatting 2022-11-29 08:54:34 +01:00
peer.c remove nonfunctional DSCP implementation 2023-01-09 12:15:21 -08:00
private.c Update the source code formatting using clang-format-17 2023-10-17 17:47:46 +02:00
probes.d Add a probe when the response rate limiting drops or slips query 2023-08-21 18:39:53 +02:00
qp.c Prevent a possible race in dns_qpmulti_query() and _snapshot() 2023-10-26 00:32:22 -07:00
qp_p.h rename QP-related types to use standard BIND nomenclature 2023-09-28 00:32:39 -07:00
rbt-cachedb.c split out cache-specific functions 2023-07-17 14:50:25 +02:00
rbt-zonedb.c Remove ISC_MEM_ZERO and isc_mem_*x() API 2023-08-31 22:08:35 +02:00
rbt.c Cleanup the dns_name macros 2023-09-12 16:14:10 +02:00
rbtdb.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
rbtdb_p.h split out cache-specific functions 2023-07-17 14:50:25 +02:00
rcode.c Remove TKEY Mode 2 (Diffie-Hellman) 2023-03-08 08:36:25 +01:00
rdata.c Clear OpenSSL errors on d2i_ASN1_OBJECT failures 2023-09-01 12:01:19 +10:00
rdatalist.c Give the rdataset->privateN fields more helpful names 2023-07-17 14:50:25 +02:00
rdataset.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
rdatasetiter.c Implement dns_db node tracing 2023-02-28 11:44:15 +01:00
rdataslab.c Remove ISC_MEM_ZERO and isc_mem_*x() API 2023-08-31 22:08:35 +02:00
remote.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
request.c Add option to mark TCP dispatch as unshared 2023-10-24 13:07:03 +02:00
resconf.c Properly process extra nameserver lines in resolv.conf 2023-05-16 02:04:55 +00:00
resolver.c Add option to mark TCP dispatch as unshared 2023-10-24 13:07:03 +02:00
result.c Refactor how we map isc_result_t <-> dns_rcode_t 2023-06-15 15:32:04 +02:00
rootns.c Suppress reporting upcoming changes in root hints 2023-10-20 14:05:56 +11:00
rpz.c reduce search_lock coverage 2023-10-09 13:29:02 -07:00
rriterator.c Apply the SET_IF_NOT_NULL() semantic patch 2023-08-15 12:21:41 +02:00
rrl.c Remove ISC_MEM_ZERO and isc_mem_*x() API 2023-08-31 22:08:35 +02:00
sdlz.c remove dns_name_totext2() and dns_name_toprincipal() 2023-08-31 12:53:32 -07:00
soa.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
ssu.c Convert rwlock in dns_acl to RCU 2023-10-13 14:44:40 +02:00
ssu_external.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
stats.c Refactor isc_stats_create() and its downstream users to return void 2023-07-27 11:37:44 +02:00
tests Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
time.c Remove isc_stdtime_get() macro 2023-03-31 13:33:16 +02:00
tkey.c Return REFUSED if GSSAPI is not configured 2023-07-28 14:37:32 +10:00
transport.c dns_transport: use const arguments in getters when possible 2023-09-22 08:51:45 +00:00
tsig.c Use a read lock when iterating over a hashmap 2023-11-13 12:06:26 +00:00
tsig_p.h remove dns__tsig_algallocated() 2023-06-14 08:14:38 +00:00
ttl.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
update.c Apply the SET_IF_NOT_NULL() semantic patch 2023-08-15 12:21:41 +02:00
validator.c use a qp-trie for the keytable 2023-08-15 14:25:24 +02:00
view.c if GLUEOK is set, and glue is found in a zone DB, don't check the cache 2023-11-01 16:49:08 +01:00
xfrin.c Add option to mark TCP dispatch as unshared 2023-10-24 13:07:03 +02:00
zone.c Adjust UDP timeouts used in zone maintenance 2023-10-18 13:06:28 +11:00
zone_p.h Obsolete dnssec-dnskey-kskonly update-check-ksk 2023-07-20 12:40:54 +02:00
zonekey.c Update sources to Clang 15 formatting 2022-11-29 08:54:34 +01:00
zoneverify.c Remove ISC_MEM_ZERO and isc_mem_*x() API 2023-08-31 22:08:35 +02:00
zt.c rename dns_qp_findname_ancestor() to dns_qp_lookup() 2023-09-28 00:32:44 -07:00