diff --git a/ChangeLog b/ChangeLog index 37913a3..6c2548a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -102,6 +102,9 @@ be computed. (?(R). This omission was discovered by Karl Skomski with the LLVM fuzzer. +27. Fixed an issue when \p{Any} inside an xclass did not read the current +character. + Version 10.20 30-June-2015 -------------------------- diff --git a/src/pcre2_jit_compile.c b/src/pcre2_jit_compile.c index e013106..9a1e4fd 100644 --- a/src/pcre2_jit_compile.c +++ b/src/pcre2_jit_compile.c @@ -4970,9 +4970,8 @@ while (*cc != XCL_END) /* Any either accepts everything or ignored. */ if (cc[-1] == XCL_PROP) { - if (list != backtracks) - compile_char1_matchingpath(common, OP_ALLANY, cc, backtracks, FALSE); - else + compile_char1_matchingpath(common, OP_ALLANY, cc, backtracks, FALSE); + if (list == backtracks) add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); return; } diff --git a/testdata/testinput4 b/testdata/testinput4 index c50169d..1210272 100644 --- a/testdata/testinput4 +++ b/testdata/testinput4 @@ -2221,4 +2221,7 @@ "[\S\V\H]"utf +/[^\p{Any}]*+x/utf + x + # End of testinput4 diff --git a/testdata/testoutput4 b/testdata/testoutput4 index 8364515..d9e3053 100644 --- a/testdata/testoutput4 +++ b/testdata/testoutput4 @@ -3741,4 +3741,8 @@ No match "[\S\V\H]"utf +/[^\p{Any}]*+x/utf + x + 0: x + # End of testinput4