[ http://issues.apache.org/jira/browse/XERCESC-976?page=history ] David Bertoni resolved XERCESC-976: -----------------------------------
Assign To: (was: Xerces-C Developers Mailing List) Resolution: Fixed Fix Version: 2.6.0 I'm not sure when this was fixed, but it's certainly fixed in 2.6.0. > ReaderMgr may delete fCurReader twice > ------------------------------------- > > Key: XERCESC-976 > URL: http://issues.apache.org/jira/browse/XERCESC-976 > Project: Xerces-C++ > Type: Bug > Components: SAX/SAX2 > Versions: 2.2.0 > Environment: Operating System: Other > Platform: Other > Reporter: Glen Knowles > Fix For: 2.6.0 > > In the function IGXMLScanner::scanDocument(const InputSource& src), if the > call: > // Reset the reader manager to close all files, sockets, etc... > fReaderMgr.reset(); > throws it goes to one of the catches which calls it again, such as: > catch(...) > { > // Flush the reader manager and rethrow user's error > fReaderMgr.reset(); > throw; > } > This is a problem in the reset function because if the "delete fCurReader" > line throws fCurReader is not set to 0, and the second call to reset attempts > to delete it again. > void ReaderMgr::reset() > { > // Reset all of the flags > fThrowEOE = false; > // Delete the current reader and flush the reader stack > delete fCurReader; // <--- derived class threw > fCurReader = 0; > It seems that fCurReader should be set to 0 before attempting the delete. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]