From: Mukund Sivaraman Date: Fri, 21 Sep 2012 03:45:16 +0000 (+0530) Subject: [2218] Assert that ZoneNodes in NSEC3 tree contain NSEC3 RRType X-Git-Tag: trac2351_base~37^2~1^2~3^2~58 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=950c72ccede294b7692bb7bdb20ef1bc28c3cc76;p=thirdparty%2Fkea.git [2218] Assert that ZoneNodes in NSEC3 tree contain NSEC3 RRType --- diff --git a/src/lib/datasrc/memory/zone_finder.cc b/src/lib/datasrc/memory/zone_finder.cc index cdbdb07d9f..a91ffe5258 100644 --- a/src/lib/datasrc/memory/zone_finder.cc +++ b/src/lib/datasrc/memory/zone_finder.cc @@ -686,13 +686,21 @@ InMemoryZoneFinder::findNSEC3(const isc::dns::Name& name, bool recursive) { if (result == ZoneTree::EXACTMATCH) { // We found an exact match. - RdataSet* rdataset = node->getData(); + const RdataSet* rdataset = node->getData(); + assert(rdataset != NULL); + assert(rdataset->type == RRType::NSEC3()); + ConstRRsetPtr closest = createTreeNodeRRset(node, rdataset, getClass()); - ConstRRsetPtr next = (covering_node == NULL) ? - ConstRRsetPtr() : - createTreeNodeRRset(covering_node, covering_node->getData(), - getClass()); + ConstRRsetPtr next; + if (covering_node != NULL) { + rdataset = covering_node->getData(); + assert(rdataset != NULL); + assert(rdataset->type == RRType::NSEC3()); + + next = createTreeNodeRRset(covering_node, rdataset, + getClass()); + } LOG_DEBUG(logger, DBG_TRACE_BASIC, DATASRC_MEM_FINDNSEC3_MATCH).arg(name).arg(labels). @@ -724,10 +732,15 @@ InMemoryZoneFinder::findNSEC3(const isc::dns::Name& name, bool recursive) { } if (!recursive) { // in non recursive mode, we are done. - ConstRRsetPtr closest = (covering_node == NULL) ? - ConstRRsetPtr() : - createTreeNodeRRset(covering_node, covering_node->getData(), - getClass()); + ConstRRsetPtr closest; + if (covering_node != NULL) { + const RdataSet* rdataset = covering_node->getData(); + assert(rdataset != NULL); + assert(rdataset->type == RRType::NSEC3()); + + closest = createTreeNodeRRset(covering_node, rdataset, + getClass()); + } if (closest) { LOG_DEBUG(logger, DBG_TRACE_BASIC,