]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Initialize adbname->client properly; check for loops
authorWitold Kręcicki <wpk@isc.org>
Fri, 17 Aug 2018 14:46:34 +0000 (16:46 +0200)
committerWitold Kręcicki <wpk@isc.org>
Tue, 23 Oct 2018 12:15:04 +0000 (12:15 +0000)
lib/dns/adb.c
lib/dns/resolver.c

index 06792041478ad7619e6e9094060de55a678ee3e7..6d11c815a5cb9476aa349f8f9bf37c97bee491f2 100644 (file)
@@ -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];
index d2c949c2277ca9bbe83f05cf02fdf8a48226a106..e6afc0aa45c452ba2c6296894a9230f01a3537f3 100644 (file)
@@ -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;