Bug 220703: return either error or return to avoid crashes and leaks

r/sr=peterv


git-svn-id: svn://10.0.0.236/trunk@148221 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
sicking%bigfoot.com 2003-10-21 20:55:42 +00:00
parent 7abb8a983f
commit 4ae76db4ec
2 changed files with 2 additions and 6 deletions

View File

@ -125,9 +125,6 @@ txExprLexer::parse(const nsASingleFragmentString& aPattern)
iterator start, end;
start = aPattern.BeginReading(mPosition);
aPattern.EndReading(end);
if (start == end) {
return NS_OK;
}
//-- initialize previous token, this will automatically get
//-- deleted when it goes out of scope

View File

@ -179,9 +179,6 @@ txExprParser::createExpr(const nsASingleFragmentString& aExpression,
{
NS_ENSURE_ARG_POINTER(aExpr);
*aExpr = nsnull;
if (aExpression.IsEmpty()) {
return NS_OK;
}
txExprLexer lexer;
nsresult rv = lexer.parse(aExpression);
if (NS_FAILED(rv)) {
@ -192,6 +189,8 @@ txExprParser::createExpr(const nsASingleFragmentString& aExpression,
}
rv = createExpr(lexer, aContext, aExpr);
if (NS_SUCCEEDED(rv) && lexer.peek()->mType != Token::END) {
delete *aExpr;
*aExpr = nsnull;
rv = NS_ERROR_XPATH_BINARY_EXPECTED;
}
if (NS_FAILED(rv)) {