]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix CID 332468: Memory - illegal accesses (UNINIT)
authorMatthijs Mekking <matthijs@isc.org>
Thu, 1 Jul 2021 12:56:22 +0000 (14:56 +0200)
committerMatthijs Mekking <matthijs@isc.org>
Thu, 1 Jul 2021 13:49:43 +0000 (15:49 +0200)
*** CID 332468:  Memory - illegal accesses  (UNINIT)
/lib/dns/zone.c: 6613 in dns_zone_getdnsseckeys()
6607                 ISC_LIST_UNLINK(dnskeys, k1, link);
6608                 ISC_LIST_APPEND(*keys, k1, link);
6609             }
6610         }
6611     6612     failure:
>>>     CID 332468:  Memory - illegal accesses  (UNINIT)
>>>     Using uninitialized value "keyset.methods" when calling
>>>     "dns_rdataset_isassociated".
6613         if (dns_rdataset_isassociated(&keyset)) {
6614             dns_rdataset_disassociate(&keyset);
6615         }
6616         if (node != NULL) {
6617             dns_db_detachnode(db, &node);
6618         }

Fix by initializing the 'keyset' with 'dns_rdataset_init'.

lib/dns/zone.c

index ef52ac18f9bd6e865ce49df93ebd709d53898dc8..bbd2da00fda3d86ce1af2185431977ee369ce39b 100644 (file)
@@ -6638,6 +6638,8 @@ dns_zone_getdnsseckeys(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver,
 
        ISC_LIST_INIT(dnskeys);
 
+       dns_rdataset_init(&keyset);
+
        CHECK(dns_db_findnode(db, origin, false, &node));
 
        /* Get keys from private key files. */