From: Evan Hunt Date: Wed, 26 Mar 2014 20:12:35 +0000 (-0700) Subject: [master] fix possible assertion in save_nsec3param() X-Git-Tag: v9.10.0rc1~39 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=bbd5c0ab33b7c76058a4b17bd1f9ce443aa90c7f;p=thirdparty%2Fbind9.git [master] fix possible assertion in save_nsec3param() 3793. [bug] zone.c:save_nsec3param() could assert when out of memory. [RT #35621] --- diff --git a/CHANGES b/CHANGES index c2cf25afe83..4336bbc198c 100644 --- 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] diff --git a/lib/dns/zone.c b/lib/dns/zone.c index f0b66cb128b..c90488ed8a2 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -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)