• Daniel Trebbien's avatar
    Introduce xmlpp::wrapped_exception · 12861530
    Daniel Trebbien authored
    This is an internal class which is used by SaxParser and Validator to
    save the exception object thrown by a handler method when the exception
    does not derive from xmlpp::exception (e.g. std::exception). The Raise()
    method of xmlpp::wrapped_exception calls std::rethrow_exception() to
    rethrow the exception object thrown by the handler method.
    
    Catching any exception object thrown by a handler method is important in
    ensuring that we are able to reset the internal state, and, in the case
    of SaxParser::parse(), that we restore the old _xmlSAXHandler pointer so
    that we do not double-free the _xmlSAXHandler object held by SaxParser.
    
    Fixes Bug 753570 - “double free or corruption” if a std::exception is thrown
    https://bugzilla.gnome.org/show_bug.cgi?id=753570
    12861530
Name
Last commit
Last update
MSVC_Net2005 Loading commit data...
MSVC_Net2008 Loading commit data...
MSVC_Net2010 Loading commit data...
docs Loading commit data...
examples Loading commit data...
libxml++ Loading commit data...
tests Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
ChangeLog Loading commit data...
ChangeLog.pre-2-36-0 Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
README Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
libxml++-2.6.pc.in Loading commit data...
libxml++.doap Loading commit data...
libxml++config.h.in Loading commit data...