bind9/lib/dns
Evan Hunt 60a33ae6bb fix another dns_qp_lookup() iterator bug
there was another edge case in which an iterator could be positioned at
the wrong node after dns_qp_lookup().  when searching for a key, it's
possible to reach a dead-end branch that doesn't match, because the
branch offset point is *after* the point where the search key differs
from the branch's contents.

for example, if searching for the key "mop", we could reach a branch
containing "moon" and "moor". the branch offset point - i.e., the
point after which the branch's leaves differ from each other - is the
fourth character ("n" or "r"). however, both leaves differ from the
search key at position *three* ("o" or "p"). the old code failed to
detect this condition, and would have incorrectly left the iterator
pointing at some lower value and not at "moor".

this has been fixed and the unit test now includes this scenario.
2023-12-06 11:03:30 -08:00
..
include add an iterator argument to dns_qp_lookup() 2023-12-06 11:03:30 -08: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 Refactor the handling of isc_mem overmem condition 2023-11-29 14:16:20 +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 Refactor the handling of isc_mem overmem condition 2023-11-29 14:16:20 +01:00
callbacks.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
catz.c Fix catz db update callback registration logic error (take two) 2023-11-14 08:59:48 +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 Stream DNS: add PROXY over TLS support 2023-12-06 15:15:25 +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 Recognize escapes when reading the public key 2023-11-20 08:31:39 +01: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 Check that buffer length in dns_message_renderbegin 2023-11-16 11:15:49 +11: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 fix another dns_qp_lookup() iterator bug 2023-12-06 11:03:30 -08: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 Ineffective DbC protections 2023-11-21 14:48:43 +11: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 Fix TLS certs store deletion on concurrent access 2023-12-06 16:01:20 +02: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 Destroy the message before detaching the view 2023-12-04 22:00:25 +00:00
view.c BIND: Add 'allow-proxy' and 'allow-proxy-on' options 2023-12-06 15:15:25 +02:00
xfrin.c Add option to mark TCP dispatch as unshared 2023-10-24 13:07:03 +02:00
zone.c set loadtime during initial transfer of a secondary zone 2023-11-15 17:23:25 -08: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