[ http://nagoya.apache.org/jira/browse/XERCESC-976?page=history ]
Alberto Massari updated XERCESC-976:
------------------------------------
Priority: Major
> ReaderMgr may delete fCurReader twice
> -------------------------------------
>
> Key: XERCESC-976
> URL: http://nagoya.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
> Assignee: Xerces-C Developers Mailing List
>
> 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://nagoya.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]