]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[master] fix possible assertion in save_nsec3param()
authorEvan Hunt <each@isc.org>
Wed, 26 Mar 2014 20:12:35 +0000 (13:12 -0700)
committerEvan Hunt <each@isc.org>
Wed, 26 Mar 2014 20:12:35 +0000 (13:12 -0700)
3793. [bug] zone.c:save_nsec3param() could assert when out of
memory. [RT #35621]

CHANGES
lib/dns/zone.c

diff --git a/CHANGES b/CHANGES
index c2cf25afe83a85b0a8d6e3c445885755ffe108b6..4336bbc198cae9e7986dc420ce176cb410628698 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3793.  [bug]           zone.c:save_nsec3param() could assert when out of
+                       memory. [RT #35621]
+
 3792.  [func]          Provide links to the alternate statistics views when
                        displaying in a browser.  [RT #35605]
 
index f0b66cb128b5e049d6f2131677cde500994aaa4e..c90488ed8a29ab9057eea80d29d6d7a46693c0a2 100644 (file)
@@ -13570,10 +13570,12 @@ save_nsec3param(dns_zone_t *zone, nsec3paramlist_t *nsec3list) {
        REQUIRE(nsec3list != NULL);
        REQUIRE(ISC_LIST_EMPTY(*nsec3list));
 
+       dns_rdataset_init(&rdataset);
+       dns_rdataset_init(&prdataset);
+
        dns_db_attach(zone->db, &db);
        CHECK(dns_db_getoriginnode(db, &node));
 
-       dns_rdataset_init(&rdataset);
        dns_db_currentversion(db, &version);
        result = dns_db_findrdataset(db, node, version,
                                     dns_rdatatype_nsec3param,
@@ -13616,7 +13618,6 @@ save_nsec3param(dns_zone_t *zone, nsec3paramlist_t *nsec3list) {
        }
 
  getprivate:
-       dns_rdataset_init(&prdataset);
        result = dns_db_findrdataset(db, node, version, zone->privatetype,
                                     dns_rdatatype_none, 0, &prdataset, NULL);
        if (result != ISC_R_SUCCESS)