diff --git a/lib/dns/adb.c b/lib/dns/adb.c index 0679204147..6d11c815a5 100644 --- a/lib/dns/adb.c +++ b/lib/dns/adb.c @@ -1702,6 +1702,7 @@ new_adbname(dns_adb_t *adb, const dns_name_t *dnsname) { name->fetch6_err = FIND_ERR_UNEXPECTED; memset(&name->client, 0, sizeof(name->client)); name->id = 0; + name->client.length = 0; ISC_LIST_INIT(name->finds); ISC_LINK_INIT(name, plink); @@ -3032,6 +3033,7 @@ dns_adb_createfind(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, result = ISC_R_SHUTTINGDOWN; goto out; } + if (adbname != NULL && client != NULL && isc_sockaddr_equal(client, &adbname->client) && id == adbname->id) { char buf[DNS_NAME_FORMATSIZE + DNS_RDATATYPE_FORMATSIZE]; diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index d2c949c227..e6afc0aa45 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -561,10 +561,10 @@ struct dns_resolver { #define NEGATIVE(r) (((r)->attributes & DNS_RDATASETATTR_NEGATIVE) != 0) #define NXDOMAIN_RESULT(r) ((r) == DNS_R_NXDOMAIN || \ - (r) == DNS_R_NCACHENXDOMAIN) + (r) == DNS_R_NCACHENXDOMAIN) #define NXRRSET_RESULT(r) ((r) == DNS_R_NCACHENXRRSET || \ - (r) == DNS_R_NXRRSET || \ - (r) == DNS_R_HINTNXRRSET) + (r) == DNS_R_NXRRSET || \ + (r) == DNS_R_HINTNXRRSET) #ifdef ENABLE_AFL bool dns_fuzzing_resolver = false;