summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2007-04-16 13:24:37 +0000
committerph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2007-04-16 13:24:37 +0000
commitebe3a8b89cabe5b896b5e942e09211c96ceedde9 (patch)
tree4328c90e367042bae58a245a8ca19879ac7c812b
parenta7805cc251a2bf79bfd39753b09eb8bd9428a504 (diff)
downloadpcre-ebe3a8b89cabe5b896b5e942e09211c96ceedde9.tar.gz
Fix bad handling of data lines longer than 50K by pcretest.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@147 2f5784b3-3f2a-0410-8824-cb99058d5e15
-rw-r--r--ChangeLog4
-rw-r--r--pcretest.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 0929836..49dc7a7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -135,6 +135,10 @@ Version 7.1 12-Mar-07
was because its rules for how to advance for /g after matching an empty
string at the end of a line did not allow for this case. They now check for
it specially.
+
+20. pcretest is supposed to handle patterns and data of any length, by
+ extending its buffers when necessary. It was getting this wrong when the
+ buffer for a data line had to be extended.
Version 7.0 19-Dec-06
diff --git a/pcretest.c b/pcretest.c
index 9755fd6..14818e7 100644
--- a/pcretest.c
+++ b/pcretest.c
@@ -1594,7 +1594,7 @@ while (!done)
for (;;)
{
uschar *q;
- uschar *bptr = dbuffer;
+ uschar *bptr;
int *use_offsets = offsets;
int use_size_offsets = size_offsets;
int callout_data = 0;
@@ -1650,7 +1650,7 @@ while (!done)
p = buffer;
while (isspace(*p)) p++;
- q = dbuffer;
+ bptr = q = dbuffer;
while ((c = *p++) != 0)
{
int i = 0;