From 1e8ed7e5950a83791966cd5cd1ffda72705f779c Mon Sep 17 00:00:00 2001 From: Tinny Ng <tng@apache.org> Date: Thu, 16 Jan 2003 21:30:14 +0000 Subject: [PATCH] [Bug 16151] Memory leak in DTDScanner with ill-formed DTD declaration. Fix by David Bertoni. git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@174639 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/validators/DTD/DTDScanner.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/xercesc/validators/DTD/DTDScanner.cpp b/src/xercesc/validators/DTD/DTDScanner.cpp index 063169682..756b8f812 100644 --- a/src/xercesc/validators/DTD/DTDScanner.cpp +++ b/src/xercesc/validators/DTD/DTDScanner.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.21 2003/01/16 21:30:14 tng + * [Bug 16151] Memory leak in DTDScanner with ill-formed DTD declaration. Fix by David Bertoni. + * * Revision 1.20 2002/12/24 16:12:19 tng * For performance reason, move the character check to scancharref. * @@ -1268,8 +1271,8 @@ DTDScanner::scanChildren(const DTDElementDecl& elemDecl, XMLBuffer& bufToUse) && (opCh != chCloseParen)) { // Not a legal char, so delete our node and return failure - fScanner->emitError(XMLErrs::ExpectedSeqChoiceLeaf); delete curNode; + fScanner->emitError(XMLErrs::ExpectedSeqChoiceLeaf); return 0; } @@ -3303,8 +3306,8 @@ bool DTDScanner::scanMixed(DTDElementDecl& toFill) // Has to be the closing paren now. if (!fReaderMgr->skippedChar(chCloseParen)) { - fScanner->emitError(XMLErrs::UnterminatedContentModel); delete headNode; + fScanner->emitError(XMLErrs::UnterminatedContentModel); return false; } @@ -3344,8 +3347,8 @@ bool DTDScanner::scanMixed(DTDElementDecl& toFill) // Get a name token if (!fReaderMgr->getName(nameBuf)) { - fScanner->emitError(XMLErrs::ExpectedElementName); delete headNode; + fScanner->emitError(XMLErrs::ExpectedElementName); return false; } -- GitLab