summaryrefslogtreecommitdiff
path: root/packages/regexpr
diff options
context:
space:
mode:
authorjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-12-10 15:32:34 +0000
committerjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-12-10 15:32:34 +0000
commitb76df34d44984318d1f61cde3f79a57abe29a4a5 (patch)
tree7b3b01d4d02f0ba9cab72cafb79e66e4bc13bb8f /packages/regexpr
parentd29a376615c56324ce29dde82d30661eac5717a0 (diff)
downloadfpc-b76df34d44984318d1f61cde3f79a57abe29a4a5.tar.gz
* Avoid possible AV when the string-index is larger then the string-length
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16536 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/regexpr')
-rw-r--r--packages/regexpr/src/regex.pp7
1 files changed, 7 insertions, 0 deletions
diff --git a/packages/regexpr/src/regex.pp b/packages/regexpr/src/regex.pp
index 1f63ce6809..62dcace75a 100644
--- a/packages/regexpr/src/regex.pp
+++ b/packages/regexpr/src/regex.pp
@@ -254,6 +254,13 @@ var
pc : pchar;
x:integer;
begin
+ if Offset>length(S) then
+ begin
+ Result := False;
+ MatchPos := 0;
+ Exit;
+ end;
+
{if the regex string hasn't been parsed yet, do so}
if (FStateCount = 0) then begin
if not Parse(ErrorPos, ErrorCode) then