Commit Graph

438 Commits

Author SHA1 Message Date
Philip.Hazel e3052af6fd Cut out the binary zero pcre2grep test on Solaris (SunOS) as it isn't possible
to check the output because sed won't handle binary zeros on Solaris.
2017-07-18 17:22:39 +00:00
Philip.Hazel a23715d7b1 Document experimental pattern conversion functions and remove unimplemented
features.
2017-07-12 16:34:49 +00:00
Philip.Hazel 4f7a608d56 Update grapheme breaking rules for Unicode 10.0.0. 2017-07-05 08:55:49 +00:00
Philip.Hazel 41bb787fb3 Update to Unicode 10.0.0 and add callout_no_where to pcre2test to aid testing. 2017-07-02 16:32:01 +00:00
Philip.Hazel b7d5cee61f Allow anchored patterns to use "first code unit" optimization. 2017-06-30 16:00:33 +00:00
Philip.Hazel 651ce3dea1 Update convert tests so they run on Windows. 2017-06-24 15:54:14 +00:00
Philip.Hazel 76a57bd839 Convert pcre2grep to use new pcre2_compile() options, thereby fixing two minor
(?) bugs.
2017-06-17 11:32:06 +00:00
Philip.Hazel a083420cac Implement PCRE2_EXTRA_MATCH_LINE and PCRE2_EXTRA_MATCH_WORD for the benefit
of pcre2grep.
2017-06-16 17:51:13 +00:00
Philip.Hazel c4fac10bad Implement PCRE2_LITERAL and REG_NOSPEC. 2017-06-15 16:41:44 +00:00
Philip.Hazel 6e30ed1b40 Add subject_literal and allow jitstack in pcre2test pattern modifiers, and add
another big pattern test.
2017-06-12 17:48:03 +00:00
Philip.Hazel bcba497c0b Implement REG_PEND (GNU extension) for the POSIX wrapper. 2017-06-05 18:25:47 +00:00
Philip.Hazel e4c86e2ced Fix matching offsets from regexec() in the POSIX wrapper when called with
REG_STARTEND and a starting offset greater than zero.
2017-06-03 16:42:58 +00:00
Philip.Hazel e3a0f22349 Implement PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL. 2017-06-01 18:10:15 +00:00
Philip.Hazel c0902e176f Make pcre2_dfa_match() take notice of the match limit, to catch patterns that
use too much resource. This should fix oss-fuzz 1761.
2017-05-30 10:42:57 +00:00
Zoltán Herczeg 3f831482ab Fix alnum parsing in glob conversion. 2017-05-28 04:05:58 +00:00
Philip.Hazel c34544b11f Update POSIX basic regex conversion code. 2017-05-27 17:08:28 +00:00
Philip.Hazel 3f96e07e6b Fix lookbehind with zero-length branch in DFA matching. Fixes oss-fuzz 1959. 2017-05-27 15:49:29 +00:00
Philip.Hazel 3d80fa4fc2 Implement PCRE2_NEWLINE_NUL. 2017-05-26 17:14:36 +00:00
Zoltán Herczeg bf6f53b089 Support invalid character classes in conversion. 2017-05-25 13:19:42 +00:00
Zoltán Herczeg 0b2052f714 Support the general case of starstar in glob conversion. 2017-05-24 15:22:03 +00:00
Zoltán Herczeg 9826db624e Rework character range parsing in glob conversion. 2017-05-24 10:14:43 +00:00
Philip.Hazel 231a800557 More experimental convert code evolution. 2017-05-23 16:08:48 +00:00
Zoltán Herczeg 51df11a591 Use atomic blocks after starstar during conversion. 2017-05-23 15:17:44 +00:00
Zoltán Herczeg e36e582af0 Implement flags in the glob convert functions. 2017-05-22 10:23:36 +00:00
Philip.Hazel 62564c08fd pcre2test can now handle lists of conversion options. 2017-05-20 11:40:12 +00:00
Philip.Hazel b704c0828f Tests update. 2017-05-19 16:41:10 +00:00
Zoltán Herczeg 095924ee65 Implement starstar in glob conversion. 2017-05-19 03:55:39 +00:00
Philip.Hazel e88ee34d6d Test update. 2017-05-18 14:21:55 +00:00
Zoltán Herczeg ac12e979b3 Support character classes in glob conversion. 2017-05-18 06:46:22 +00:00
Philip.Hazel dfc9712bcd Add additional compile options and PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES. 2017-05-17 17:55:11 +00:00
Zoltán Herczeg d9c33d0708 Reworking bash glob conversion. 2017-05-17 13:44:24 +00:00
Zoltán Herczeg dcbba52985 Initial version of bash glob conversion. 2017-05-16 07:14:11 +00:00
Philip.Hazel f8256af661 Experimental conversion: fix POSIX BRE starting ^*. 2017-05-14 12:04:13 +00:00
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