[cpp-xmltooling] 01/02: CPPXT - Crash due to uncaught DOMException
Scott Cantor
cantor.2 at osu.edu
Wed Mar 6 21:15:48 EST 2019
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch master
in repository cpp-xmltooling.
View the commit online:
http://git.shibboleth.net/view/?p=cpp-xmltooling.git;a=commit;h=af27c422f551e16989ff6f1722d83614c8550eb5
commit af27c422f551e16989ff6f1722d83614c8550eb5
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Mar 6 21:14:13 2019 -0500
CPPXT - Crash due to uncaught DOMException
https://issues.shibboleth.net/jira/browse/CPPXT-143
---
xmltooling/util/ParserPool.cpp | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/xmltooling/util/ParserPool.cpp b/xmltooling/util/ParserPool.cpp
index 5d96b66..da23846 100644
--- a/xmltooling/util/ParserPool.cpp
+++ b/xmltooling/util/ParserPool.cpp
@@ -148,14 +148,28 @@ DOMDocument* ParserPool::parse(DOMLSInput& domsrc)
checkinBuilder(janitor.release());
return doc;
}
- catch (XMLException& ex) {
+ catch (const DOMException& ex) {
+ parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, (void*)nullptr);
+ parser->getDomConfig()->setParameter(XMLUni::fgXercesUserAdoptsDOMDocument, true);
+ checkinBuilder(janitor.release());
+ auto_ptr_char temp(ex.getMessage());
+ throw XMLParserException(string("DOM error during parsing: ") + (temp.get() ? temp.get() : "no message"));
+ }
+ catch (const SAXException& ex) {
+ parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, (void*)nullptr);
+ parser->getDomConfig()->setParameter(XMLUni::fgXercesUserAdoptsDOMDocument, true);
+ checkinBuilder(janitor.release());
+ auto_ptr_char temp(ex.getMessage());
+ throw XMLParserException(string("SAX error during parsing: ") + (temp.get() ? temp.get() : "no message"));
+ }
+ catch (const XMLException& ex) {
parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, (void*)nullptr);
parser->getDomConfig()->setParameter(XMLUni::fgXercesUserAdoptsDOMDocument, true);
checkinBuilder(janitor.release());
auto_ptr_char temp(ex.getMessage());
throw XMLParserException(string("Xerces error during parsing: ") + (temp.get() ? temp.get() : "no message"));
}
- catch (XMLToolingException&) {
+ catch (const XMLToolingException&) {
parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, (void*)nullptr);
parser->getDomConfig()->setParameter(XMLUni::fgXercesUserAdoptsDOMDocument, true);
checkinBuilder(janitor.release());
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list