Details
Description
RegularExpression::matches() calls context->fMatch->setEndPos()
with the wrong value when doing a fFixedStringOnly match and not
in XMLSCHEMA_MODE (i.e. a fixed string match using a Perl-like pattern).
The problem is this line of code (line 546 of RegularExpression.cpp in
the 2.3 src distro):
context->fMatch->setEndPos(0, ret + strLength);
strLength is the length of the "expression" parameter passed to matches().
I believe the value really should be the length of fFixedString. As it
currently exists, the call to setEndPos() generally sets a value that is
beyond the end of "expression".
This bug has no effect on XMLSCHEMA_MODE, which never uses this code.