From: Scott Cantor Date: Fri, 30 Jan 2009 21:48:06 +0000 (+0000) Subject: Handle case where parser returns a null document. X-Git-Tag: 1.2.0~39 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-xmltooling.git;a=commitdiff_plain;h=1b21d1f5c426e7d8de02f510d9af543b00d28873 Handle case where parser returns a null document. --- diff --git a/xmltooling/util/ParserPool.cpp b/xmltooling/util/ParserPool.cpp index 1ac8ef8..9397978 100644 --- a/xmltooling/util/ParserPool.cpp +++ b/xmltooling/util/ParserPool.cpp @@ -122,7 +122,8 @@ DOMDocument* ParserPool::parse(DOMLSInput& domsrc) parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, dynamic_cast(&deh)); DOMDocument* doc=parser->parse(&domsrc); if (deh.errors) { - doc->release(); + if (doc) + doc->release(); throw XMLParserException("XML error(s) during parsing, check log for specifics"); } parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, (void*)NULL); @@ -156,7 +157,8 @@ DOMDocument* ParserPool::parse(DOMInputSource& domsrc) parser->setErrorHandler(&deh); DOMDocument* doc=parser->parse(domsrc); if (deh.errors) { - doc->release(); + if (doc) + doc->release(); throw XMLParserException("XML error(s) during parsing, check log for specifics"); } parser->setErrorHandler(NULL);