]> 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 12:59:00 +0000 (14:59 +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 b66e40a6b29b4a172c28376d9471b67d8b0afd9f..f19c508782c890e61268ba79de85cb579c73ca58 100644 (file)
@@ -6566,6 +6566,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. */