summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2015-02-03 17:08:54 +0000
committerph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2015-02-03 17:08:54 +0000
commit31f00f0d66343cd8540a6fb336e25d505a98c4f1 (patch)
treee5b15822e08d09587d79f38b86d1b510118c75bf
parent68282df90da8c8eb011f27cb2d6cd74b1058e9bf (diff)
downloadpcre-31f00f0d66343cd8540a6fb336e25d505a98c4f1.tar.gz
Fix pcretest crash with /g and zero-length ovector.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1515 2f5784b3-3f2a-0410-8824-cb99058d5e15
-rw-r--r--ChangeLog3
-rw-r--r--pcretest.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 72bb80a..d962488 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,6 +16,9 @@ Version 8.37 xx-xxx-201x
3. If a pattern in pcretest input had the P (POSIX) modifier followed by an
unrecognized modifier, a crash could occur.
+
+4. An attempt to do global matching in pcretest with a zero-length ovector
+ caused a crash.
diff --git a/pcretest.c b/pcretest.c
index 2dc2061..e28f897 100644
--- a/pcretest.c
+++ b/pcretest.c
@@ -5603,6 +5603,12 @@ while (!done)
/* If not /g or /G we are done */
if (!do_g && !do_G) break;
+
+ if (use_offsets == NULL)
+ {
+ fprintf(outfile, "Cannot do global matching without an ovector\n");
+ break;
+ }
/* If we have matched an empty string, first check to see if we are at
the end of the subject. If so, the /g loop is over. Otherwise, mimic what