Fix bug in VERSION conditional test in DFA matching.
This commit is contained in:
parent
f33fc9b85c
commit
86349f8814
|
@ -114,6 +114,10 @@ the option applies only to unrecognized or malformed escape sequences.
|
||||||
|
|
||||||
28. Fix word boundary in JIT compiler. Patch by Mike Munday.
|
28. Fix word boundary in JIT compiler. Patch by Mike Munday.
|
||||||
|
|
||||||
|
29. The pcre2_dfa_match() function was incorrectly handling conditional version
|
||||||
|
tests such as (?(VERSION>=0)...) when the version test was true. Incorrect
|
||||||
|
processing or a crash could result.
|
||||||
|
|
||||||
|
|
||||||
Version 10.32 10-September-2018
|
Version 10.32 10-September-2018
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
|
@ -2760,7 +2760,7 @@ for (;;)
|
||||||
/* There is also an always-true condition */
|
/* There is also an always-true condition */
|
||||||
|
|
||||||
else if (condcode == OP_TRUE)
|
else if (condcode == OP_TRUE)
|
||||||
{ ADD_ACTIVE(state_offset + LINK_SIZE + 2 + IMM2_SIZE, 0); }
|
{ ADD_ACTIVE(state_offset + LINK_SIZE + 2, 0); }
|
||||||
|
|
||||||
/* The only supported version of OP_RREF is for the value RREF_ANY,
|
/* The only supported version of OP_RREF is for the value RREF_ANY,
|
||||||
which means "test if in any recursion". We can't test for specifically
|
which means "test if in any recursion". We can't test for specifically
|
||||||
|
|
|
@ -4962,4 +4962,14 @@
|
||||||
/foobar/g
|
/foobar/g
|
||||||
the foobar thing foobar again\=copy_matched_subject
|
the foobar thing foobar again\=copy_matched_subject
|
||||||
|
|
||||||
|
/(?(VERSION>=0)^B0W)/
|
||||||
|
B0W-W0W
|
||||||
|
\= Expect no match
|
||||||
|
0
|
||||||
|
|
||||||
|
/(?(VERSION>=1000)^B0W|W0W)/
|
||||||
|
B0W-W0W
|
||||||
|
\= Expect no match
|
||||||
|
0
|
||||||
|
|
||||||
# End of testinput6
|
# End of testinput6
|
||||||
|
|
|
@ -7794,4 +7794,18 @@ No match
|
||||||
0: foobar
|
0: foobar
|
||||||
0: foobar
|
0: foobar
|
||||||
|
|
||||||
|
/(?(VERSION>=0)^B0W)/
|
||||||
|
B0W-W0W
|
||||||
|
0: B0W
|
||||||
|
\= Expect no match
|
||||||
|
0
|
||||||
|
No match
|
||||||
|
|
||||||
|
/(?(VERSION>=1000)^B0W|W0W)/
|
||||||
|
B0W-W0W
|
||||||
|
0: W0W
|
||||||
|
\= Expect no match
|
||||||
|
0
|
||||||
|
No match
|
||||||
|
|
||||||
# End of testinput6
|
# End of testinput6
|
||||||
|
|
Loading…
Reference in New Issue