Commit Graph

505 Commits

Author SHA1 Message Date
Philip.Hazel 7927ac0ee3 Updates to experimental conversion code. 2017-05-13 17:46:27 +00:00
Philip.Hazel 3813b518ce Correct fix for experimental POSIX pattern translation. 2017-05-10 15:42:13 +00:00
Philip.Hazel 7ca875b1db Fix bug in experimental conversion code. 2017-05-09 10:44:50 +00:00
Philip.Hazel 382b64b01c Fix crash when more than one kind of "push" was set in pcre2test. 2017-05-06 16:56:07 +00:00
Philip.Hazel 6e943e5f47 Experimental pattern conversion code (no public documentation yet). 2017-05-06 16:19:39 +00:00
Philip.Hazel 05a8186117 Add a fancy test for multiple named subpatterns. 2017-04-22 14:35:14 +00:00
Philip.Hazel 369d82e03a Implement Perl's /n option, which is the same as PCRE2_NO_AUTO_CAPTURE. 2017-04-18 16:21:50 +00:00
Philip.Hazel 3dca43fdff Implement PCRE2_EXTENDED_MORE and friends. 2017-04-18 12:32:52 +00:00
Philip.Hazel e21268b367 Update 16-bit and 32-bit tests. 2017-04-16 13:04:57 +00:00
Philip.Hazel 202cb2cf41 Improve testing coverage with updates to pcre2test and test files; also get rid
of redundant code in pcre2_match().
2017-04-16 13:03:30 +00:00
Zoltán Herczeg 1379a48d94 Support end anchored in JIT. 2017-04-13 11:52:36 +00:00
Philip.Hazel 0cb5a91218 Update test output. 2017-04-12 13:26:23 +00:00
Philip.Hazel 3b8672bf49 Fix ACCEPT issue with ENDANCHORED. 2017-04-11 14:53:26 +00:00
Philip.Hazel 14989bd454 Add explicit heap limiting options to pcre2_match(), with associated features
for listing, configuring, etc.
2017-04-11 11:47:25 +00:00
Philip.Hazel 09f87cbfce Extend auto-anchoring to ignore "never-obeyed" groups at the start. 2017-04-07 08:46:29 +00:00
Philip.Hazel 88abc14e42 Jason Hood's pcre2grep patches (modified a bit) to add --output to pcre2grep,
and also an inbuilt callout echo.
2017-04-06 18:02:40 +00:00
Philip.Hazel 59c461817e Add endanchored tests for DFA matching. 2017-04-05 15:32:07 +00:00
Philip.Hazel a3275d1e0f Implement PCRE2_ENDANCHORED. 2017-04-04 17:09:33 +00:00
Philip.Hazel 0757041114 Fix non-passing of mark values out of recursions. 2017-04-04 11:37:21 +00:00
Philip.Hazel fcd0c39b26 Fix capturing in conditional negative assertions ended with (*ACCEPT). 2017-04-03 18:02:07 +00:00
Zoltán Herczeg bdac9df4cf Fix character type detection when 32-bit and UCP are enabled but UTF is not in JIT. 2017-03-31 05:40:37 +00:00
Zoltán Herczeg 25cec7a966 Support full ovector data for JIT callouts. 2017-03-25 06:33:41 +00:00
Philip.Hazel 39d9294d14 Move some tests back into test 1 now that JIT has been updated. 2017-03-24 18:40:15 +00:00
Philip.Hazel 5c1984d94a Make \=find_limits apply to DFA matching, to find the minimum depth limit. 2017-03-24 18:20:34 +00:00
Philip.Hazel 45ddeb70cf Fix issues with (*VERB)s inside recursive subroutine calls. 2017-03-23 17:54:58 +00:00
Philip.Hazel d5ca2dee9d Fix misbehaving DFA match for possessively repeated character class (Bugzilla
2086).
2017-03-22 15:12:06 +00:00
Philip.Hazel cde5f12cee Fix 32-bit error buffer size bug in pcre2test (Bugzilla 2079). 2017-03-21 17:46:21 +00:00
Zoltán Herczeg 131209e22d Capture control verbs inside the conditional assertion of a conditional block. 2017-03-20 10:41:13 +00:00
Philip.Hazel d6faa55b91 Fix pcre2test bug for global match with zero terminated subject. 2017-03-19 18:34:27 +00:00
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 88db1be123 Change "limit recursion" to "limit depth" in code and build systems because the
old name, which is retained as a synonym for the moment, is no longer 
appropriate.
2017-03-12 13:47:01 +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 53bf29d689 Fix 32-bit non-UTF property test crash. 2017-02-24 18:25:32 +00:00
Philip.Hazel f6f7c9148f Check malloc returns in pcre2test. 2017-02-23 17:05:43 +00:00
Philip.Hazel 0299bba9d9 Fix previously broken fix for pcre2grep with -Mo matching strings that cross
line boundaries.
2017-02-10 17:39:29 +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 7ab91fdfb2 Reduce recursion limit for auto-possessify to reduce stack usage at compile
time. Fixes oss-fuzz issue 553.
2017-02-08 17:03:30 +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 6332aa1101 Fix pcre2test mishandling "end before start" return with POSIX interface. 2017-01-11 17:02:27 +00:00
Philip.Hazel 1226e2e0d0 Fix hyphen after \E after POSIX class causing an error. 2017-01-11 16:40:35 +00:00
Philip.Hazel 255bc030d9 Improve class handling for \H and \V by ignoring caseless. 2017-01-03 18:17:31 +00:00
Philip.Hazel 84601d910b Reduce stack requirements for test 6. 2017-01-02 16:15:11 +00:00
Philip.Hazel 396a7c7d29 Upgrade pcre2grep for Windows courtesy of Jason Hood. 2016-12-31 17:40:45 +00:00
Philip.Hazel 18dd19eae0 Make the test for over-complication while auto-possessifying bite sooner. 2016-12-31 13:35:31 +00:00
Philip.Hazel 25dbe146bd Very minor tidy to pcre2grep, plus fix typos in comments. 2016-12-29 16:29:05 +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 8933d999d8 Fix class bug when UCP but not UTF was set and all wide characters need to be
included.
2016-12-26 17:11:18 +00:00
Philip.Hazel a7a25ed91d Fix bug when a character > 0xffff appears in a lookbehind within a lookbehind. 2016-12-24 16:25:11 +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 1f87b60f01 Make the recursion limit apply to DFA matching. 2016-12-23 11:04:51 +00:00
Philip.Hazel 3df9674c4e Fix name table sort buffer overflow. 2016-12-21 17:09:11 +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 a98121a212 Fix caseless minimizing back reference bug when heap in use for recursion. 2016-12-10 14:59:24 +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 156a5c4e5f Fix crash in pcre2test when displaying a wide character with a locale set. 2016-12-08 18:56:24 +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 2aec84e37e Add pcre2_code_copy_with_tables(). 2016-11-22 15:37:02 +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 4fd8feaa50 Fix auto-anchor bug when .* is inside an assertion. 2016-11-01 15:58:28 +00:00
Philip.Hazel 12a6d697fe Fix read beyond unterminated quantifier at end of pattern. 2016-11-01 12:12:45 +00:00
Philip.Hazel 0ea3274a53 Fix pattern overrun in utf extended mode for a # comment that hit the end. 2016-10-31 17:46:56 +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 8eae402315 Fix bad lookup in global table for wide characters in extended mode and in
*VERB names.
2016-10-27 17:42:14 +00:00
Philip.Hazel 56084cc922 Fix *MARK length check in UTF mode (it was checking characters, not code
units).
2016-10-26 16:59:22 +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 d117300a1d The "offset" modifier in pcre2test was not being ignored (as documented) for
POSIX.
2016-10-23 16:18:15 +00:00
Philip.Hazel a22c5e4204 Fix optimization bugs when pattern starts with lookahead. 2016-10-18 11:22:40 +00:00
Philip.Hazel 1828179ef9 Add -t to pcre2grep. 2016-10-16 16:48:14 +00:00
Philip.Hazel bc3e331efd Add test for bug already fixed by the refactoring. 2016-10-13 16:08:08 +00:00
Philip.Hazel bf6f0bb335 Implement buffer expansion in pcre2grep. 2016-10-11 16:40:09 +00:00
Philip.Hazel b451e9f3b5 Fix new test in testinput5 when LF is not a default newline. 2016-10-07 15:50:39 +00:00
Philip.Hazel 1d28e047f3 Fix callout display bug in pcre2test. 2016-10-05 16:53:34 +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 dda1e79060 Fix bug that caused chars > 255 not to be matched by classes like [\W\pL] when
PCRE2_UCP was not set.
2016-08-03 17:22:59 +00:00
Philip.Hazel 69c9d81e43 Update pcre2test with the /utf8_input option, for generating wide characters in
non-UTF 16-bit and 32-bit modes.
2016-08-03 09:01:02 +00:00
Philip.Hazel 22c4999971 Fix new tests when newline is not LF. 2016-07-06 17:39:15 +00:00
Philip.Hazel 6a5acedf08 Ignore "allcaptures" after DFA matching. 2016-07-06 15:02:24 +00:00
Philip.Hazel 9b741ad59d Detect overflow in pcre2test pattern and subject repetition counts. 2016-07-06 08:42:50 +00:00
Philip.Hazel 37e02cfb21 Additional test for recent JIT bugfix. 2016-07-02 15:52:30 +00:00
Philip.Hazel 149456dce0 Support \C in lookbehinds and DFA matching in UTF-32 mode. 2016-06-20 18:14:51 +00:00
Philip.Hazel b002f44061 Fix bad interaction between -o and -M in pcre2grep. 2016-06-17 17:37:26 +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 d243224a60 Implement PCRE2_NO_JIT, update HTML docs as well. 2016-06-05 16:05:34 +00:00
Philip.Hazel 784b3d2409 Update valgrind parameters in RunGrepTest and arrange for the suppressions file
to be used when JIT is supported.
2016-05-31 11:36:10 +00:00
Philip.Hazel c332eaf4f2 Add callout support to pcre2grep 2016-04-01 15:52:08 +00:00
Philip.Hazel ddcedf0338 pcre2grep: fix \r\r\n problem for Windows, and give buffer size in error
message.
2016-04-01 09:15:38 +00:00
Philip.Hazel 96926349bc Implemented pcre2_code_copy(). 2016-02-26 18:26:17 +00:00
Philip.Hazel 94e07de498 Detect missing closing parentheses during the pre-pass. 2016-02-13 15:30:29 +00:00
Philip.Hazel 6bb132265b Fix workspace overflow for deep nested parentheses with (*ACCEPT). 2016-02-10 18:24:02 +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 6c1c817438 Don't set PCRE2_NO_AUTO_CAPTURE when REG_NOSUB is passed to regcomp(). 2016-01-31 19:14:15 +00:00
Philip.Hazel f345e7dd9a Update valgrind parameters. 2016-01-30 15:19:48 +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 fd008957d5 Patches to fix tests under Windows. 2016-01-29 15:01:17 +00:00
Philip.Hazel 858ef4e2f9 Remove unwanted trailing space in test data. 2016-01-07 16:08:44 +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 38caadff03 Fix typo introduced by ChangeLog 107. 2015-12-04 14:34:35 +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 65b6fd366e Updated tests for previous patch. 2015-11-27 17:14:51 +00:00
Philip.Hazel aec5c96cf5 Fix bad offset value in invalid UTF pattern error. 2015-11-27 15:58:44 +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 11e0001b14 Fix wide character problem with negated POSIX ascii and xdigit class items. 2015-11-20 16:55:36 +00:00
Philip.Hazel c4b8531a8f Fix [:punct:] bug in UCP mode (matching chars in the range 128-255) 2015-11-17 17:59:35 +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 7a233130ad Document JIT compile size limit and give more info in pcre2test. 2015-11-14 16:48:32 +00:00
Philip.Hazel 860b6f228a Run test 8 (sizes and offsets and mode-specific things) for link size 3 and 4
as well as for link size 2, with different output files in each case.
2015-11-14 13:22:34 +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 8dcd23238a Adjust tests for workspace overflow and relevant comments in pcre2_compile.c 2015-11-08 14:41:34 +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 37e9ea2331 Fix buglet in recent name length patch. 2015-11-03 20:09:33 +00:00
Philip.Hazel b02bb996af Check subpattern name lengths dynamically. 2015-11-03 20:04:23 +00:00
Philip.Hazel 4ad83f7103 Dynamic check of (*MARK) etc name length to avoid the possibility of overflow. 2015-11-03 19:14:31 +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 7d7a92edef Bad max lookbehind length was calculated when a back reference contained a
recursion.
2015-11-01 17:31:48 +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 efccea98f1 Fix pcre2_substitute(): set zero-terminated length before UTF validity check. 2015-10-30 17:30:03 +00:00
Philip.Hazel 4b242c4c78 Fix regerror() small buffer issues. 2015-10-30 17:17:40 +00:00
Philip.Hazel 4ce7652a0e Add replication feature for patterns to pcre2test. 2015-10-30 15:20:07 +00:00
Philip.Hazel d1b4d99bc5 Improve error message for overly-complicated patterns. 2015-10-28 09:59:53 +00:00
Philip.Hazel 9577d9e165 Fix overlong (*MARK) or (*THEN) names bug. 2015-10-28 09:25:31 +00:00
Philip.Hazel 766fbc81d0 Fix PCRE2_NO_AUTO_CAPTURE bug. 2015-10-25 17:35:34 +00:00
Philip.Hazel 94eda7669a Fix UCP with [[:<]] and [[:>:]] bad compile bug. 2015-10-21 11:29:07 +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 093412143d Fix compiler bug for classes such as [\W\p{Any}]. 2015-10-09 16:06:53 +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 297024d65b Create a suppressions file for valgrind with JIT. 2015-09-11 16:56:47 +00:00
Philip.Hazel bb68c64c40 Implement #newline_default and adjust testdata and scripts to use it. 2015-09-08 17:01:17 +00:00
Zoltán Herczeg 357dfb7964 Fix two issues in JIT. 2015-09-02 08:35:50 +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 67764372eb Fix two assertion fails in JIT found by Karl Skomski. 2015-08-24 09:25:04 +00:00
Philip.Hazel ee41aa906f Runtime UTF checks now take not of the starting offset. 2015-08-18 10:34:05 +00:00
Zoltán Herczeg d98800a946 A bug which was introduced by the single character repetition optimization was fixed. 2015-08-13 11:35:38 +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 537f8b1a3d Make -q override -l and -q in pcre2grep for compatibility with other greps. 2015-08-05 17:35:36 +00:00
Zoltán Herczeg 4003ae5911 Fixed an issue when \p{Any} inside an xclass did not read the current character. 2015-08-05 09:04:01 +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 688151205d Fix not diagnosis of missing ) for callout with string argument. 2015-07-21 14:03:08 +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
Zoltán Herczeg f957e7bfa8 Fix infinite recursion in the JIT compiler when certain patterns when certain patterns are analysed. 2015-07-20 07:38:06 +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
Zoltán Herczeg c5f27e1c18 JIT should return with error when the compiled pattern requires more stack space than the maximum. 2015-06-28 13:31:24 +00:00
Philip.Hazel bac822ba58 Fix EBCDIC 0x41 omission and give error for \p and \P in a class when not
supported.
2015-06-19 16:41:22 +00:00
Philip.Hazel c146059c22 Make \c operate like Perl in EBCDIC environments. 2015-06-13 16:10:14 +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 4c0414c813 Re-organize tests that didn't work with LINK_SIZE=3. 2015-06-03 17:18:06 +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 6f94ece67d Fix forward reference by name to duplicate group number bug. 2015-05-16 11:01:48 +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 f123833bdb Fix other cases where backtracking after \C could cause a crash. 2015-04-08 16:53:22 +00:00
Philip.Hazel aa8ee3ded5 Fix backtracking bug for \C\X* in UTF mode. 2015-04-08 16:33:58 +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 cda8384a95 Fix pcre2grep loop provoked by \K in a lookbehind assertion in a non-anchored
pattern.
2015-04-03 11:14:19 +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
Philip.Hazel 2327a5860b Fix bad compile for possessive quantifier on group containing a subroutine
reference.
2015-03-29 17:34:04 +00:00
Philip.Hazel 63cab0dba9 Fix non-diagnosis of syntax error for (?(?< when not followed by ! or =. 2015-03-29 15:40:45 +00:00
Philip.Hazel 99bb61e903 Fix comment between recursion and quantifier bug. 2015-03-29 11:15:32 +00:00
Philip.Hazel 6b6e611b39 Fix mutual recursion inside other parentheses stack overflow bug. 2015-03-27 17:45:02 +00:00
Philip.Hazel cd85fae3c6 Fix bad memory computation for "(*UTF)[\S\V\H]" (a pattern with a negative
class (\S) and explicit wide characters).
2015-03-25 19:26:27 +00:00
Philip.Hazel a066d12022 Add recursion limit to auto-possessification code. 2015-03-25 17:01:04 +00:00
Philip.Hazel a4ceadbf47 Fix bugs when (?!) is used as a condition. 2015-03-24 10:21:34 +00:00
Philip.Hazel 4e61019ffe Implement pcre2_callout_enumerate(). 2015-03-23 15:52:08 +00:00
Philip.Hazel b15698b077 Fix data overrun for /(?(?C)/ 2015-03-20 12:37:28 +00:00
Philip.Hazel aa8d7342da Test binary zero in callout strings; change offset to PCRE2_SIZE; some
documentation tidies.
2015-03-16 15:38:26 +00:00
Philip.Hazel 15e034c9c2 Add string offset within the pattern to the data passed to a callout with a
string argument.
2015-03-14 12:20:18 +00:00
Philip.Hazel b2c67082bd Fix crash in pcre2test for some callouts with string arguments. 2015-03-14 10:47:43 +00:00
Philip.Hazel baf08a3d37 Support manual callout with string argument at start of condition. 2015-03-12 17:00:18 +00:00
Zoltán Herczeg e43b3d435b Adding more callout with string tests. 2015-03-12 11:49:29 +00:00
Philip.Hazel d0cf279d87 Code for callouts with string arguments. Documentation not yet updated. 2015-03-11 17:44:16 +00:00
Philip.Hazel 54396a364d Fix bad compile of patterns like /[A-`]/i,utf where the range contains
characters with multiple other cases and the ranges adjoin.
2015-03-06 11:57:06 +00:00
Zoltán Herczeg 94802eb0d9 Remove computing the JIT read-only data size in advance and use on-demand memory allocation. 2015-03-06 07:41:36 +00:00
Philip.Hazel c372df5dce Fix compile error for forward reference subroutine call within a group that
also contained a recursive back reference.
2015-03-01 18:34:05 +00:00
Philip.Hazel ea03932668 Fix "internal error" bug caused by patterns like "((?2){0,1999}())?". 2015-02-28 11:31:51 +00:00
Philip.Hazel 20c75b2f42 Add RunTest.bat for testing under Windows, with appropriate test files. 2015-02-25 17:19:28 +00:00
Philip.Hazel 3d9cc76a52 Fix bug for groups like (a)*+ (possessive, zero minimum) when the ovector was
too small to capture.
2015-02-11 10:06:09 +00:00
Philip.Hazel 154bc83cb5 Fix replacement bug in pcre2_substitute(). 2015-02-10 12:48:45 +00:00