[ http://issues.apache.org/jira/browse/XERCESC-1348?page=comments#action_12312561 ]
cargilld commented on XERCESC-1348: ----------------------------------- Hi Dave, I reviewed the patch and it looks good. Please commit. David > IGXMLScanner allocates from wrong memory manager > ------------------------------------------------ > > Key: XERCESC-1348 > URL: http://issues.apache.org/jira/browse/XERCESC-1348 > Project: Xerces-C++ > Type: Bug > Components: SAX/SAX2, Validating Parser (DTD) > Versions: 2.6.0 > Environment: Found on solaris, but no a solaris issue. > Reporter: Mark Weissman > Assignee: David Bertoni > Attachments: patch.txt > > IGXMLScanner.c allocates from fGrammarPoolMemoryManager instead of > fMemoryManager. > This causes a memory leak and thread safety issues when sharing > an unsynchronized grammar pool across multiple threads. I included diffs > that affect my application but I suspect this problem exists for other > scanners too. It would be good if somebody could check all uses of > fGrammarPoolMemoryManager to verify the immutability of cached grammars > and thread safety for the GrammarPool. When not parsing grammars, the > pool should not change. > > > > diff IGXMLScanner.cpp IGXMLScanner.cpp.orig > 1256,1257c1256 > < MemoryManager *rootDeclMgr = /*MDW*/fUseCachedGrammar ? fMemoryManager > : fGrammarPoolMemoryManager; > < DTDElementDecl* rootDecl = new (/*MDW*/rootDeclMgr) DTDElementDecl > --- > > DTDElementDecl* rootDecl = new (fGrammarPoolMemoryManager) > > DTDElementDecl > 1262c1261 > < , /*MDW*/rootDeclMgr > --- > > , fGrammarPoolMemoryManager > 1497c1496 > < DTDEntityDecl* declDTD = new (fMemoryManager/*MDW*/) > DTDEntityDecl(gDTDStr, false, fMemoryManager/*MDW*/); > --- > > DTDEntityDecl* declDTD = new (fGrammarPoolMemoryManager) > > DTDEntityDecl(gDTDStr, false, fGrammarPoolMemoryManager); -- 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 - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]