Zoltán Herczeg
|
b55ef12cc1
|
Reworked the recursive pattern matching in the JIT compiler to follow the interpreter changes.
|
2017-03-19 03:35:27 +00:00 |
Philip.Hazel
|
d7da2dcb37
|
Fix crash for forward reference in lookbehind with PCRE2_ANCHORED. Fixes
oss-fuzz issue 865.
|
2017-03-16 17:17:47 +00:00 |
Philip.Hazel
|
04da0725f3
|
Remove obsolete OP_ONCE_NC internal opcode.
|
2017-03-11 17:59:23 +00:00 |
Philip.Hazel
|
26e92bc554
|
Fix crash for pattern with very many captures. Fixes oss-fuzz issue 783.
|
2017-03-10 16:34:54 +00:00 |
Philip.Hazel
|
20804215a8
|
Code for new interpreter (build system and documentation still to be done).
|
2017-03-09 16:23:28 +00:00 |
Philip.Hazel
|
f6f7c9148f
|
Check malloc returns in pcre2test.
|
2017-02-23 17:05:43 +00:00 |
Philip.Hazel
|
3fb194afa4
|
Cache group minima to speed up studying of pathological patterns. Fixes
oss-fuzz #557.
|
2017-02-10 16:33:15 +00:00 |
Philip.Hazel
|
4311f49d0e
|
Fix \g+ bug when the number that follows is too big.
|
2017-01-31 17:15:30 +00:00 |
Philip.Hazel
|
62659dd2f3
|
Add callout_error to pcre2test and stop the fuzzer after 100 callouts.
|
2016-12-28 15:05:48 +00:00 |
Philip.Hazel
|
f676362977
|
Fix issue with \Q\E after a callout before an assertion condition.
|
2016-12-28 12:26:12 +00:00 |
Philip.Hazel
|
fdf7946ee0
|
Fail hyphen after POSIX character class.
|
2016-12-27 11:50:28 +00:00 |
Philip.Hazel
|
6c48775955
|
Fix mis-parsing of a conditional group with callout but a question mark where
the assertion should start.
|
2016-12-23 18:34:10 +00:00 |
Philip.Hazel
|
d15aab4d17
|
More refactoring: keep track of empty branches during compiling, replacing a
post-compile scan.
|
2016-12-23 17:09:37 +00:00 |
Philip.Hazel
|
a984029d80
|
Fix incorrect internal error for very complicated back reference handling.
|
2016-12-20 16:47:41 +00:00 |
Philip.Hazel
|
f77339a3ca
|
Fix \Q\E quantification bug.
|
2016-12-11 16:42:29 +00:00 |
Philip.Hazel
|
7914fa82a9
|
Fix OOB error in substitute with start offset longer than length.
|
2016-12-09 18:19:38 +00:00 |
Philip.Hazel
|
bcad1aa4f6
|
Fix NULL defer in extended substition for \p, \P, or \X.
|
2016-12-09 16:57:51 +00:00 |
Philip.Hazel
|
0e04c156a4
|
Fix buffer overflow in partial match test for CRLF in empty buffer.
|
2016-12-08 17:55:26 +00:00 |
Philip.Hazel
|
14f6b9fb03
|
Fix \Q...\E bug in (*VERB) name when PCRE2_ALT_VERBNAMES and PCRE2_AUTO_CALLOUT
were both specified.
|
2016-11-27 16:14:33 +00:00 |
Philip.Hazel
|
7390ce13f6
|
Quantifiers following (*VERB)s were not being diagnosed.
|
2016-11-25 10:37:23 +00:00 |
Philip.Hazel
|
4c69f50e69
|
Fix bad behaviour for subroutine call in lookbehind when the called subroutine
contained an option setting such as (?s) and PCRE2_ANCHORED was set.
|
2016-11-23 17:17:57 +00:00 |
Philip.Hazel
|
43e541adda
|
Update test for previous pcre2test update (overlooked).
|
2016-11-22 12:31:03 +00:00 |
Philip.Hazel
|
e0cccdd028
|
Fix overrun bug caused by conditional with assertion using too much memory.
|
2016-11-18 18:59:37 +00:00 |
Philip.Hazel
|
21c084125c
|
Fix global overflow bug for get/copy names in pcre2test.
|
2016-11-10 17:08:27 +00:00 |
Philip.Hazel
|
02e8b83bed
|
Test update.
|
2016-11-04 16:40:08 +00:00 |
Philip.Hazel
|
e533e0f774
|
Fix overrun for unterminated number after \g'
|
2016-11-04 11:05:21 +00:00 |
Philip.Hazel
|
12a6d697fe
|
Fix read beyond unterminated quantifier at end of pattern.
|
2016-11-01 12:12:45 +00:00 |
Philip.Hazel
|
24ab24fde0
|
Fix bad memory calculation when the first branch of a lookbehind is of zero
length.
|
2016-10-28 16:09:08 +00:00 |
Philip.Hazel
|
2821076981
|
Diagnose an overall recursion (?0) inside a lookbehind as an error.
|
2016-10-23 17:05:09 +00:00 |
Philip.Hazel
|
a22c5e4204
|
Fix optimization bugs when pattern starts with lookahead.
|
2016-10-18 11:22:40 +00:00 |
Philip.Hazel
|
bc3e331efd
|
Add test for bug already fixed by the refactoring.
|
2016-10-13 16:08:08 +00:00 |
Philip.Hazel
|
99264dfc23
|
Major refactoring of pcre2_compile.c; see ChangeLog and HACKING.
|
2016-10-02 16:01:01 +00:00 |
Philip.Hazel
|
9b741ad59d
|
Detect overflow in pcre2test pattern and subject repetition counts.
|
2016-07-06 08:42:50 +00:00 |
Philip.Hazel
|
0a29ecbe02
|
Return an error code when pcre2_get_error_message() does not recognize an error
code, and add a pcre2test facility for testing this.
|
2016-06-17 11:30:27 +00:00 |
Philip.Hazel
|
94e07de498
|
Detect missing closing parentheses during the pre-pass.
|
2016-02-13 15:30:29 +00:00 |
Philip.Hazel
|
78aff8c80f
|
Fix pcre2test loop when a callout is in an initial lookbehind.
|
2016-02-06 16:40:59 +00:00 |
Philip.Hazel
|
9f75a0f92a
|
Detect unmatched closing parentheses in the pre-scan to avoid giving incorrect
error messages.
|
2016-02-02 17:22:55 +00:00 |
Philip.Hazel
|
8febd27344
|
Two pcre2test extensions: quoted literal substrings in hex patterns and
detection of unsupported binary zeros in file input.
|
2016-01-29 18:16:59 +00:00 |
Philip.Hazel
|
57c44eec15
|
Fix printing of *MARK names containing binary zeroes in pcre2test.
|
2015-12-16 18:44:24 +00:00 |
Philip.Hazel
|
255974ed28
|
Some tests were in the wrong files.
|
2015-12-15 18:21:49 +00:00 |
Philip.Hazel
|
35e0f55783
|
Implement PCRE2_SUBSTITUTE_{OVERFLOW_LENGTH,UNKNOWN_UNSET}.
|
2015-12-12 18:45:40 +00:00 |
Philip.Hazel
|
b34dbecb75
|
Harden pcre2test against ridiculously large values in modifiers and command
line arguments.
|
2015-12-05 18:17:41 +00:00 |
Philip.Hazel
|
2f684a60ed
|
Implement PCRE2_SUBSTITUTE_UNSET_EMPTY.
|
2015-12-04 18:39:08 +00:00 |
Philip.Hazel
|
a7c9027ae6
|
Fix \) in (*verb) "name" bug.
|
2015-12-03 18:36:36 +00:00 |
Philip.Hazel
|
1f9b2a2e4b
|
Fix /x bug when pattern starts with whitespace followed by (?-x).
|
2015-12-03 16:58:31 +00:00 |
Philip.Hazel
|
d71b70cdf7
|
Fix issues with NULL characters in patterns.
|
2015-12-02 17:39:26 +00:00 |
Philip.Hazel
|
7b1d9549c6
|
Fix extended *verb name ignored terminating whitespace bug.
|
2015-12-01 17:41:24 +00:00 |
Philip.Hazel
|
12fc152074
|
Fix empty \Q\E between an item and a qualifier in auto-callout mode.
|
2015-11-30 17:31:16 +00:00 |
Philip.Hazel
|
de6603d294
|
Fix bad behaviour for isolated \E before qualifier with auto-callout.
|
2015-11-27 17:34:36 +00:00 |
Philip.Hazel
|
2eb24e2dac
|
Fix auto-callout with (?# comment bug.
|
2015-11-25 18:46:35 +00:00 |
Philip.Hazel
|
c7e9887a65
|
Make startoffset a synonym of offset in pcre2test.
|
2015-11-21 16:10:24 +00:00 |
Philip.Hazel
|
6650a2fd9a
|
Fix single-character POSIX class bug in UCP mode.
|
2015-11-17 17:13:43 +00:00 |
Zoltán Herczeg
|
c0d0f2f65e
|
Fix two offset_limit bug in JIT.
|
2015-11-16 08:30:48 +00:00 |
Philip.Hazel
|
5ced14bf24
|
Implement PCRE2_INFO_HASBACKSLASHC.
|
2015-11-14 17:28:19 +00:00 |
Philip.Hazel
|
5dce5b3727
|
Add a new test.
|
2015-11-13 17:16:28 +00:00 |
Philip.Hazel
|
299e587f9b
|
Don't split CRLF in pcre2_substitute() when it's a valid newline sequence.
|
2015-11-13 16:52:26 +00:00 |
Philip.Hazel
|
7bf5d9efd0
|
Small optimizations in pcre2_study.c
|
2015-11-11 09:42:26 +00:00 |
Philip.Hazel
|
e7727c36be
|
Don't use group caching when (?| is involved; instead use a counter to cap too
much computation.
|
2015-11-10 14:33:28 +00:00 |
Philip.Hazel
|
a710d3b37b
|
Cap minimum length at 65535 and check for integer overflow.
|
2015-11-09 18:45:15 +00:00 |
Philip.Hazel
|
89b1ae1c98
|
Use caching to improve could_be_empty() and find_fixed_length() compile times,
especially when recursion/subroutine calls are present.
|
2015-11-08 14:20:09 +00:00 |
Philip.Hazel
|
2909e2411c
|
Fix (*NO_AUTO_POSSESS)
|
2015-11-05 18:03:16 +00:00 |
Philip.Hazel
|
b7ee0684e3
|
Implement pcre2_set_max_pattern_length()
|
2015-11-05 17:33:39 +00:00 |
Philip.Hazel
|
b02bb996af
|
Check subpattern name lengths dynamically.
|
2015-11-03 20:04:23 +00:00 |
Philip.Hazel
|
2caf22dc61
|
Forbid \K patterns that end before they start in pcre2_substitute().
|
2015-11-03 17:38:00 +00:00 |
Philip.Hazel
|
75181cca2e
|
Give error for overlong lookbehind assertion.
|
2015-11-03 10:39:27 +00:00 |
Philip.Hazel
|
f72b753f73
|
Fix VERSION condition bug.
|
2015-11-01 16:28:13 +00:00 |
Philip.Hazel
|
284d42fa7e
|
Avoid the need for an integer overflow check in pcre2_substitute() by adding a
check for a number greater than the largest capturing group.
|
2015-10-30 18:25:19 +00:00 |
Philip.Hazel
|
766fbc81d0
|
Fix PCRE2_NO_AUTO_CAPTURE bug.
|
2015-10-25 17:35:34 +00:00 |
Philip.Hazel
|
3263d44b97
|
Implement --never-backslash-C
|
2015-10-17 13:50:56 +00:00 |
Philip.Hazel
|
5923caf05e
|
Fix integer overflow for patterns whose minimum matching length is very, very
large.
|
2015-10-09 16:54:29 +00:00 |
Philip.Hazel
|
6ae5c36e83
|
Implement PCRE2_SUBSTITUTE_EXTENDED.
|
2015-10-07 17:32:48 +00:00 |
Philip.Hazel
|
0c70fb3013
|
Add null_context to pcre2test for testing NULL contexts.
|
2015-09-23 11:49:03 +00:00 |
Philip.Hazel
|
69d61e2fdb
|
Implement PCRE2_USE_OFFSET_LIMIT and pcre2_set_offset_limit(). No documentation
yet.
|
2015-09-22 11:24:28 +00:00 |
Philip.Hazel
|
be7366f6f0
|
Tidied up a lot of comments in the test files.
|
2015-09-16 16:49:48 +00:00 |
Philip.Hazel
|
bb68c64c40
|
Implement #newline_default and adjust testdata and scripts to use it.
|
2015-09-08 17:01:17 +00:00 |
Philip.Hazel
|
cdf07ab585
|
Complete escape processing for PCRE2_ALT_VERBNAMES
|
2015-09-01 17:32:42 +00:00 |
Philip.Hazel
|
d2e87a75af
|
Implemented PCRE2_ALT_VERBNAMES
|
2015-08-30 17:47:36 +00:00 |
Philip.Hazel
|
fd08e11c1e
|
Fix pcre2test splitting modifier lists at white space.
|
2015-08-30 14:11:15 +00:00 |
Philip.Hazel
|
170644eca3
|
Add ${*MARK} feature to pcre2_substitute().
|
2015-08-29 17:13:09 +00:00 |
Zoltán Herczeg
|
d210396121
|
The JIT compiler should restore the control chain for empty possessive repeats.
|
2015-08-11 13:20:37 +00:00 |
Zoltán Herczeg
|
3ec328fe1b
|
The JIT compiler should not check repeats after a {0,1} repeat byte code.
|
2015-08-11 05:30:10 +00:00 |
Philip.Hazel
|
f86d8d35fa
|
Make (*LIMIT_MATCH=) give an error and correct offsets for limit syntax errors.
|
2015-08-10 16:34:17 +00:00 |
Philip.Hazel
|
8e37b0b3c6
|
Fix missing non-existent reference test and bad error offsets for bad \g and \k
items.
|
2015-08-09 17:46:35 +00:00 |
Philip.Hazel
|
e3d62b0ff8
|
Re-write recursion handling to fix another compiler bug and make it all less
error-prone.
|
2015-08-09 16:29:35 +00:00 |
Zoltán Herczeg
|
c214c54ca0
|
The JIT compiler did not restore the control verb head in case of *THEN control verbs.
|
2015-08-08 05:45:17 +00:00 |
Philip.Hazel
|
b89a448d8d
|
Add missing integer overflow checks.
|
2015-08-04 09:13:11 +00:00 |
Philip.Hazel
|
76a2e62669
|
Maintenance on tests for Perl compatibility
|
2015-08-03 17:25:55 +00:00 |
Philip.Hazel
|
3e12e15fe1
|
Fix incorrect minimum matching length when pattern contains (?| groups.
|
2015-08-03 13:18:49 +00:00 |
Philip.Hazel
|
8269696f57
|
Fix issues with minimum length finding.
|
2015-08-01 09:11:28 +00:00 |
Philip.Hazel
|
83c7c24b92
|
Fix bugs for patterns with conditional groups starting with assertions.
|
2015-07-22 14:34:31 +00:00 |
Philip.Hazel
|
e4d630c4af
|
Fix (?R- not being correctly diagnosed.
|
2015-07-22 09:29:09 +00:00 |
Philip.Hazel
|
0046526d0e
|
Fix incorrect compilation for repeated conditionals with only one branch.
|
2015-07-22 09:01:50 +00:00 |
Philip.Hazel
|
01c4647b02
|
Fix "running for ever" bug for deeply nested [: sequences.
|
2015-07-21 13:42:14 +00:00 |
Philip.Hazel
|
31241914a5
|
Fix another fuzzer bug.
|
2015-07-20 10:17:23 +00:00 |
Philip.Hazel
|
21b15d96f2
|
Fix empty comment (?#) bug
|
2015-07-17 16:25:21 +00:00 |
Philip.Hazel
|
7b4b853b81
|
Correct test for previous bugfix.
|
2015-07-17 15:18:17 +00:00 |
Philip.Hazel
|
c1f8a7dfb3
|
Fix bad compilation of a possessively repeated conditional that could match an
empty string.
|
2015-07-17 15:11:45 +00:00 |
Philip.Hazel
|
54f59d3c05
|
Ignore {1} quantifiers.
|
2015-07-17 13:41:09 +00:00 |
Philip.Hazel
|
5cd731f314
|
Fix crash due to incorrect pre-pass handling of callouts with string arguments,
and tighten up the callout handling.
|
2015-07-16 17:47:20 +00:00 |
Philip.Hazel
|
328c7920cc
|
Fix bad processing of (?x)(*MARK) within another group.
|
2015-07-15 09:34:04 +00:00 |