diff options
author | zherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2015-09-02 08:50:31 +0000 |
---|---|---|
committer | zherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2015-09-02 08:50:31 +0000 |
commit | d98a87182509eb50a5277f0d6e5465dc6bfeea3b (patch) | |
tree | f4be7c889e16245ddc898d408793465685566bcc | |
parent | ef392aca5d02cf8bcf198c9946c2bb171d012c77 (diff) | |
download | pcre-d98a87182509eb50a5277f0d6e5465dc6bfeea3b.tar.gz |
A match limit issue is fixed in JIT.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1599 2f5784b3-3f2a-0410-8824-cb99058d5e15
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | pcre_jit_compile.c | 3 | ||||
-rw-r--r-- | testdata/testinput12 | 3 | ||||
-rw-r--r-- | testdata/testoutput12 | 4 |
4 files changed, 11 insertions, 2 deletions
@@ -150,6 +150,9 @@ Version 8.38 xx-xxx-xxxx into the workspace safety margin. The next one would have expanded the workspace. The test for overflow was not including the safety margin. +40. A match limit issue is fixed in JIT which was found by Karl Skomski + with a custom LLVM fuzzer. + Version 8.37 28-April-2015 -------------------------- diff --git a/pcre_jit_compile.c b/pcre_jit_compile.c index aa1b6cb..f85912d 100644 --- a/pcre_jit_compile.c +++ b/pcre_jit_compile.c @@ -8483,8 +8483,7 @@ while (cc < ccend) OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), STR_PTR, 0); } BACKTRACK_AS(braminzero_backtrack)->matchingpath = LABEL(); - if (cc[1] > OP_ASSERTBACK_NOT) - count_match(common); + count_match(common); break; case OP_ONCE: diff --git a/testdata/testinput12 b/testdata/testinput12 index e109de7..944be69 100644 --- a/testdata/testinput12 +++ b/testdata/testinput12 @@ -101,4 +101,7 @@ and a couple of things that are different with JIT. --/ /(x(?1)){4}/S++ +/(.|.)*?bx/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabax + /-- End of testinput12 --/ diff --git a/testdata/testoutput12 b/testdata/testoutput12 index 4fe0417..8791108 100644 --- a/testdata/testoutput12 +++ b/testdata/testoutput12 @@ -197,4 +197,8 @@ No match, mark = m (JIT) /(x(?1)){4}/S++ +/(.|.)*?bx/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabax +Error -8 (match limit exceeded) + /-- End of testinput12 --/ |