diff --git a/htmlparser/src/nsHTMLTokens.cpp b/htmlparser/src/nsHTMLTokens.cpp index e4fce8c5adb4..0ee9b3e17e32 100644 --- a/htmlparser/src/nsHTMLTokens.cpp +++ b/htmlparser/src/nsHTMLTokens.cpp @@ -825,11 +825,12 @@ nsresult CCDATASectionToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt3 mTextValue.Append(aChar); result=aScanner.Peek(aChar); //then see what's next. if((NS_OK==result) && (kRightSquareBracket==aChar)) { - result=aScanner.GetChar(aChar); //strip off the second ] + result=aScanner.GetChar(aChar); //strip off the second ] mTextValue.Append(aChar); - result=aScanner.Peek(aChar); //then see what's next. } - if((NS_OK==result) && (kGreaterThan==aChar)) { + nsAutoString dummy; // skip any bad data + result=aScanner.ReadUntil(dummy,kGreaterThan,PR_FALSE); + if (NS_OK==result) { result=aScanner.GetChar(aChar); //strip off the > done=PR_TRUE; } diff --git a/parser/htmlparser/src/nsHTMLTokens.cpp b/parser/htmlparser/src/nsHTMLTokens.cpp index e4fce8c5adb4..0ee9b3e17e32 100644 --- a/parser/htmlparser/src/nsHTMLTokens.cpp +++ b/parser/htmlparser/src/nsHTMLTokens.cpp @@ -825,11 +825,12 @@ nsresult CCDATASectionToken::Consume(PRUnichar aChar, nsScanner& aScanner,PRInt3 mTextValue.Append(aChar); result=aScanner.Peek(aChar); //then see what's next. if((NS_OK==result) && (kRightSquareBracket==aChar)) { - result=aScanner.GetChar(aChar); //strip off the second ] + result=aScanner.GetChar(aChar); //strip off the second ] mTextValue.Append(aChar); - result=aScanner.Peek(aChar); //then see what's next. } - if((NS_OK==result) && (kGreaterThan==aChar)) { + nsAutoString dummy; // skip any bad data + result=aScanner.ReadUntil(dummy,kGreaterThan,PR_FALSE); + if (NS_OK==result) { result=aScanner.GetChar(aChar); //strip off the > done=PR_TRUE; }