Commit Graph

201 Commits

Author SHA1 Message Date
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
Philip.Hazel 098562db96 Fix [[:>:]] when followed by parenthesis buffer overflow. 2015-07-15 09:08:12 +00:00
Philip.Hazel 1d44822484 Fix empty string matching bug. 2015-06-09 17:41:45 +00:00
Philip.Hazel ff4553df08 Check for integer overflow in subroutine calls. 2015-06-08 17:51:54 +00:00
Philip.Hazel c9ac9e23ec Refactor named group handling by adding a pre-pass that generates a list of
named groups with their numbers before the rest of the compiling code is run. 
This has simplified the main compiling code and removed some sources of error.
2015-06-03 16:27:47 +00:00
Philip.Hazel 666b3c88cf Give error for empty subpattern name such as (?''). 2015-05-19 16:48:57 +00:00
Philip.Hazel 78735a5336 Fix buffer overflow for lookbehind with mutually recursive groups. 2015-05-18 17:31:29 +00:00
Philip.Hazel ba8f1d8002 Maintenance on test after running ManyConfigTests. 2015-05-17 17:44:21 +00:00
Philip.Hazel 56444e9978 Fix buffer overflow for recursive byname back reference when duplicate names
exist.
2015-05-15 17:09:01 +00:00
Philip.Hazel 92739ef5d8 Fix repeated condition check by duplicated name bug. 2015-05-08 16:32:28 +00:00
Philip.Hazel e653c5f142 Re-do previous patch and fix new forward-reference-with-quantification bugs. 2015-05-06 16:51:25 +00:00
Philip.Hazel c420d11041 Fix bug in previous fix. 2015-05-05 18:46:51 +00:00
Philip.Hazel d5191510db Fix recursive forward reference bug. 2015-05-03 16:46:56 +00:00
Philip.Hazel 4d35b44b43 Fix compatibility issues for \8 and \9. 2015-04-23 17:28:39 +00:00
Philip.Hazel d1a13b8e2e Implement PCRE2_ALT_CIRCUMFLEX. 2015-04-22 17:39:25 +00:00
Philip.Hazel fe2733263d Fix replication bug in pcre2test. 2015-04-21 08:34:10 +00:00
Philip.Hazel e47a6ebe87 Implement PCRE2_NEVER_BACKSLASH_C. 2015-04-13 17:29:05 +00:00
Philip.Hazel 3e1748390b Fix very slow find_minlength when mutual recursion is present. 2015-04-13 09:13:39 +00:00
Philip.Hazel 7105d249f6 Fix handling of global matching in pcre2test when a lookbehind assertion
contains \K.
2015-04-06 12:16:36 +00:00
Philip.Hazel ade67323e7 Fix stack overflow instead of error diagnosis for mutual recursion within
lookbehind assertion.
2015-04-01 15:37:54 +00:00
Philip.Hazel 6a2cb0d774 Fix diagnosis of negative relative references to non-existent groups. 2015-03-31 15:01:25 +00:00