Crash with regular expression
-----------------------------
Key: XERCESC-1866
URL: https://issues.apache.org/jira/browse/XERCESC-1866
Project: Xerces-C++
Issue Type: Bug
Components: Utilities
Environment: Windows XP, Visual Studio 2005
Reporter: Alexander Hartmann
when I run the following test code my application crashes on the second
regEx.matches call:
{
XMLBuffer optionsBuf;
optionsBuf.append('i');
optionsBuf.append('H');
RegularExpression regEx(L"^\\W*Excel\\W*$", optionsBuf.getRawBuffer());
regEx.matches("Excel");
}
{
XMLBuffer optionsBuf;
optionsBuf.append('i');
optionsBuf.append('H');
RegularExpression regEx(L"^\\W*Excel\\W*$", optionsBuf.getRawBuffer());
regEx.matches("Excel");
}
some details I found during debugging:
- there is an instance of RangeToken where I have no idea where this is
created. I've set a breakpoint in the constructor but the debugger does not
stop.
- when RangeToken::getCaseInsensitiveToken is called a new RangeToken is
created and stored in fCaseIToken
- when parsing is finished the newly created RangeToken is deleted (through
~RegularExpression -> ~TokenFactory), but the original RangeToken (where I
don't know where it is created) still exists and references the deleted
RangeToken in fCaseIToken
- the next time RangeToken::getCaseInsensitiveToken is called the invalid
reference fCaseIToken is returned and this leads to a crash when it is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]