From: Mukund Sivaraman Date: Wed, 19 Sep 2012 03:57:52 +0000 (+0530) Subject: [2218] Check for NULL covering_node X-Git-Tag: trac2351_base~37^2~1^2~13^2~22^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=436f507ae4e387f7fe5e242864500a6839bfc32b;p=thirdparty%2Fkea.git [2218] Check for NULL covering_node --- diff --git a/src/lib/datasrc/memory/zone_finder.cc b/src/lib/datasrc/memory/zone_finder.cc index 59987cffb0..c608beee55 100644 --- a/src/lib/datasrc/memory/zone_finder.cc +++ b/src/lib/datasrc/memory/zone_finder.cc @@ -687,7 +687,9 @@ InMemoryZoneFinder::findNSEC3(const isc::dns::Name& name, bool recursive) { set, getClass()); ConstRRsetPtr next = createTreeNodeRRset(covering_node, - covering_node->getData(), + (covering_node != NULL ? + covering_node->getData() : + NULL), getClass()); LOG_DEBUG(logger, DBG_TRACE_BASIC, @@ -719,12 +721,16 @@ InMemoryZoneFinder::findNSEC3(const isc::dns::Name& name, bool recursive) { if (!recursive) { // in non recursive mode, we are done. ConstRRsetPtr closest = createTreeNodeRRset(covering_node, - covering_node->getData(), + (covering_node != NULL ? + covering_node->getData() : + NULL), getClass()); - LOG_DEBUG(logger, DBG_TRACE_BASIC, - DATASRC_MEM_FINDNSEC3_COVER). - arg(name).arg(*closest); + if (closest) { + LOG_DEBUG(logger, DBG_TRACE_BASIC, + DATASRC_MEM_FINDNSEC3_COVER). + arg(name).arg(*closest); + } return (FindNSEC3Result(false, labels, closest, ConstRRsetPtr()));