You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by jo...@apache.org on 2014/01/09 00:45:51 UTC
svn commit: r1556676 -
/incubator/log4cxx/trunk/src/main/cpp/domconfigurator.cpp
Author: joseph
Date: Wed Jan 8 23:45:50 2014
New Revision: 1556676
URL: http://svn.apache.org/r1556676
Log:
LOG4CXX-416: crash in domconfigure::configureAndWatch
Modified:
incubator/log4cxx/trunk/src/main/cpp/domconfigurator.cpp
Modified: incubator/log4cxx/trunk/src/main/cpp/domconfigurator.cpp
URL: http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/cpp/domconfigurator.cpp?rev=1556676&r1=1556675&r2=1556676&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/main/cpp/domconfigurator.cpp (original)
+++ incubator/log4cxx/trunk/src/main/cpp/domconfigurator.cpp Wed Jan 8 23:45:50 2014
@@ -723,8 +723,8 @@ void DOMConfigurator::doConfigure(const
msg2.append(LOG4CXX_STR("]."));
LogLog::error(msg2);
} else {
- apr_xml_parser *parser;
- apr_xml_doc *doc;
+ apr_xml_parser *parser = NULL;
+ apr_xml_doc *doc = NULL;
rv = apr_xml_parse_file(p.getAPRPool(), &parser, &doc, fd, 2000);
if (rv != APR_SUCCESS) {
char errbuf[2000];
@@ -734,10 +734,13 @@ void DOMConfigurator::doConfigure(const
msg2.append(LOG4CXX_STR("], "));
apr_strerror(rv, errbuf, sizeof(errbuf));
LOG4CXX_DECODE_CHAR(lerrbuf, std::string(errbuf));
- apr_xml_parser_geterror(parser, errbufXML, sizeof(errbufXML));
- LOG4CXX_DECODE_CHAR(lerrbufXML, std::string(errbufXML));
msg2.append(lerrbuf);
- msg2.append(lerrbufXML);
+ if(parser)
+ {
+ apr_xml_parser_geterror(parser, errbufXML, sizeof(errbufXML));
+ LOG4CXX_DECODE_CHAR(lerrbufXML, std::string(errbufXML));
+ msg2.append(lerrbufXML);
+ }
LogLog::error(msg2);
} else {
AppenderMap appenders;