Commit Graph

442 Commits

Author SHA1 Message Date
Philip.Hazel a122f42abf Fix NULL deference if pcre2_callout_enumerate() is called with a NULL pattern
when Unicode support is available (Bugzilla 2076).
2017-03-21 16:31:54 +00:00
Philip.Hazel e105a0f83f Fix memory leak when deserializing invalid data (Bugzilla 2075). 2017-03-21 16:25:01 +00:00
Philip.Hazel 8e4eb8dbc8 Close serialization file in pcre2test after any error. 2017-03-21 16:18:54 +00:00
Philip.Hazel ca75518017 Fix pcre2grep Windows problem for new output-colouring code when not under
mingw (Bugzilla 2067).
2017-03-21 16:09:57 +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 ae37c6e886 Add "framesize" to pcre2test to display pcre2_match() frame size, using the new
PCRE2_INFO_FRAMESIZE option for pcre2_pattern_info().
2017-03-16 17:55:55 +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 26e92bc554 Fix crash for pattern with very many captures. Fixes oss-fuzz issue 783. 2017-03-10 16:34:54 +00:00
Philip.Hazel 143c136ac6 Fix oss-fuzz issue 781: read from bad memory when fewer capturing parens than
space in the external ovector.
2017-03-10 15:53:49 +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 bea3a10a93 Final file updates for 10.23. 2017-02-14 10:40:33 +00:00
Philip.Hazel f19d6e1a35 Update Windows grep test script in line with the non-Windows version. 2017-02-14 10:29:00 +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 2f1e99e04f Don't use %td (use %lu instead) in pcre2test under MSVC. 2017-02-04 16:27:20 +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 ca1ecd41a1 File tidies for 10.23-RC1 2017-01-16 17:40:47 +00:00
Philip.Hazel 31c62034fe Minor tidies to pcre2grep. 2017-01-16 15:06:57 +00:00
Philip.Hazel 662a765bdf Update build system for changes in the JIT modules. 2017-01-12 16:35:43 +00:00
Philip.Hazel 224e707ab0 Ignore all JIT compile errors in pcre2grep. 2017-01-11 17:10:28 +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 15c30bf55a Detect overlong patterns earlier. 2017-01-03 11:35:26 +00:00
Philip.Hazel 396a7c7d29 Upgrade pcre2grep for Windows courtesy of Jason Hood. 2016-12-31 17:40:45 +00:00
Philip.Hazel 70daa788a5 Minor tidy. 2016-12-31 14:17:14 +00:00
Philip.Hazel 3efb5641ee Add RunGrepTest.bat (supplied by Jason Hood). 2016-12-31 14:12:53 +00:00
Philip.Hazel f18bfd1d93 Fix Windows test script. 2016-12-31 14:04:25 +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 a3cb2c761d Fix typo in ChangeLog. 2016-12-29 15:54:23 +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 482b6a1f0a Add the -ac option (auto_callout) to pcre2test. 2016-12-23 17:36:22 +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 f8dcb985ba Correct ChangeLog. 2016-12-11 16:47:39 +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 561dff70d0 Fix small memory leak in error code path. 2016-12-08 16:52: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 bc48f4709c Give some offset information for errors in pcre2test hex patterns. 2016-11-22 10:33:13 +00:00
Philip.Hazel 9afb978ae4 Correct libpcre2posix typos (should be libpcre2-posix). 2016-11-22 10:18:08 +00:00
Philip.Hazel 2c2b0febef Make idempotency guards more standards compliant. 2016-11-20 12:46:11 +00:00
Philip.Hazel 2ce680f2f5 Add PCRE2_CALL_CONVENTION into prototypes. 2016-11-19 12:46:24 +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 270eaa7615 Fix bad working space size calculation when PCRE2_AUTO_CALLOUT is set. 2016-11-04 16:35:47 +00:00
Philip.Hazel e533e0f774 Fix overrun for unterminated number after \g' 2016-11-04 11:05:21 +00:00
Philip.Hazel 10f4e45e68 Add use_length to pcre2test. 2016-11-04 10:53:43 +00:00
Philip.Hazel fb231d30fe List valgrind support when it is enabled. 2016-11-03 18:25:51 +00:00
Philip.Hazel 30cf6b6954 Add strerror() to pcre2test for failed file opening. 2016-11-03 18:18:53 +00:00
Philip.Hazel e8d564831f Remove all "register" declarations. 2016-11-03 17:35:59 +00:00
Philip.Hazel 6a15c1cbcc Fix callout string read overrun; do better with catching these when using
zero-terminated patterns under valgrind.
2016-11-01 17:45:54 +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 2aa482039a Add fuzzer support features. 2016-10-31 17:19:00 +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 bd9a70f14d Dmitry Cherniachenko's patch for colouring pcre2grep output in Windows. 2016-10-14 16:17:48 +00:00
Philip.Hazel 6c72b76a64 Added some "const" qualifiers to variables in pcre2grep. 2016-10-14 15:47:27 +00:00
Philip.Hazel b3afb24224 Make pcre2grep work (using the interpreter) if compiled with JIT support when
the main library does not have it.
2016-10-13 17:20:08 +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 ffd53c9223 Fix typo in CMakeLists.txt. 2016-10-05 17:03:52 +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 42d7c17a1d Tidy code to get rid of compiler warnings. 2016-07-27 18:00:12 +00:00
Zoltán Herczeg 063f45de11 Fix unaligned accesses on x86. Patch by Marc Mutz. 2016-07-15 10:02:19 +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
Zoltán Herczeg 83c67a8ece Fix register overwite in JIT when SSE2 acceleration is enabled. 2016-07-01 08:56:59 +00:00
Philip.Hazel 921636f6fc Documentation detrail and make HTML for 10.22-RC1. 2016-06-29 16:52:05 +00:00
Philip.Hazel 431d41cb2d File tidies for 10.22-RC1 2016-06-29 16:43:32 +00:00
Philip.Hazel f16f5395cd Add MSVC snprintf fix to pcre2posix.c, which no longer includes
pcre2_internal.h.
2016-06-26 16:21:23 +00:00
Philip.Hazel d6bec3e2a5 Update patch for MSVC static compilation (see Bugzilla #1681). 2016-06-24 09:07:15 +00:00
Philip.Hazel b7850e4fca Upgrade RunTest to try test 2 with a large stack if it fails with a smaller one
when running the interpreter.
2016-06-22 19:23:33 +00:00
Philip.Hazel 5f5e7f6fb2 Fix two compiler warnings from clang when only one code unit width is
supported.
2016-06-22 10:41:05 +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 4f238daf41 Exclude __INTEL_COMPILER in the test for __GNUC__. 2016-06-17 11:45:16 +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 16acce6555 Fix possible negative index possibility in pcre2test. 2016-06-14 16:14:52 +00:00
Philip.Hazel 4db9b51ce0 Fix comment describing returns from find_fixedlength(). 2016-06-14 15:12:07 +00:00
Philip.Hazel 42f9a5e9e7 Fix typo that gave compiler error when JIT not supported. 2016-06-14 09:19:24 +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 047695ac7c Make pcre2grep use JIT (it was omitted by mistake). 2016-05-31 11:06:53 +00:00
Philip.Hazel de605ef9a0 Fix typo in test program. 2016-05-25 08:42:31 +00:00
Philip.Hazel c014958f16 Add a bit more sanity checking to pcre2_serialize_decode(), and document. 2016-05-24 16:37:13 +00:00
Philip.Hazel 18018db697 Minor refactor to avoid "left shift of negative number" warning. 2016-05-21 13:41:24 +00:00
Philip.Hazel bf1587490b Minor code refactor to avoid compiler warning. 2016-05-20 10:47:42 +00:00
Zoltán Herczeg 7650161677 A racing condition is fixed in JIT reported by Mozilla. 2016-05-19 18:09:07 +00:00
Philip.Hazel 8f4e7c84b4 Refactor pcre2posix.c so as not to #include pcre2_internal.h. 2016-05-14 16:35:20 +00:00
Philip.Hazel 517cd43ff6 Fix bug for test 22. 2016-04-22 14:10:51 +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 dd76a5938d Apply supplied patch for MSVC static compilation. 2016-03-01 12:02:58 +00:00
Philip.Hazel 0cfea16397 Define snprintf as _snprintf for older MSVC compilers. 2016-02-29 18:31:30 +00:00
Philip.Hazel 5b543bf660 Fix typo in pcre2_study(). 2016-02-28 14:56:50 +00:00
Philip.Hazel 371bf87af6 Fix pcre2test bug when snprintf() in regerror() does not insert a binary zero. 2016-02-27 12:49:00 +00:00
Philip.Hazel 96926349bc Implemented pcre2_code_copy(). 2016-02-26 18:26:17 +00:00
Philip.Hazel c28ed7fd4a Fix some picky compiler warnings 2016-02-16 10:23:06 +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 26f610a1e5 Detect and warn when pcre2test is linked with an alien POSIX library. 2016-02-03 15:22:01 +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 4e67c0c9e9 Tidy pcre2demo.c 2016-02-02 16:25:47 +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 310cd4e0f3 Update maintenance script (easier test set selection). 2016-01-30 16:00:55 +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 bebd2d48bf Final file updates for 10.21 release. 2016-01-12 14:44:34 +00:00
Philip.Hazel dffd559601 File tidies, version updates, etc. for 10.21-RC1 2015-12-17 18:44:06 +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 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 4a4326638d Documentation clarification. 2015-12-03 17:19:13 +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