diff options
Diffstat (limited to 'libxerces-c/xercesc/dtd-decl-use-after-free.patch')
-rw-r--r-- | libxerces-c/xercesc/dtd-decl-use-after-free.patch | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libxerces-c/xercesc/dtd-decl-use-after-free.patch b/libxerces-c/xercesc/dtd-decl-use-after-free.patch new file mode 100644 index 0000000..4a48a96 --- /dev/null +++ b/libxerces-c/xercesc/dtd-decl-use-after-free.patch @@ -0,0 +1,20 @@ +diff --git a/libxerces-c/xercesc/internal/IGXMLScanner.cpp b/libxerces-c/xercesc/internal/IGXMLScanner.cpp +index 0062400..aa344be 100644 +--- a/libxerces-c/xercesc/internal/IGXMLScanner.cpp ++++ b/libxerces-c/xercesc/internal/IGXMLScanner.cpp +@@ -1532,7 +1532,6 @@ void IGXMLScanner::scanDocTypeDecl() + DTDEntityDecl* declDTD = new (fMemoryManager) DTDEntityDecl(gDTDStr, false, fMemoryManager); + declDTD->setSystemId(sysId); + declDTD->setIsExternal(true); +- Janitor<DTDEntityDecl> janDecl(declDTD); + + // Mark this one as a throw at end + reader->setThrowAtEnd(true); +@@ -3095,7 +3094,6 @@ Grammar* IGXMLScanner::loadDTDGrammar(const InputSource& src, + DTDEntityDecl* declDTD = new (fMemoryManager) DTDEntityDecl(gDTDStr, false, fMemoryManager); + declDTD->setSystemId(src.getSystemId()); + declDTD->setIsExternal(true); +- Janitor<DTDEntityDecl> janDecl(declDTD); + + // Mark this one as a throw at end + newReader->setThrowAtEnd(true); |