Commit Graph

564 Commits

Author SHA1 Message Date
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
Zoltán Herczeg 9669cd1218 Major JIT compiler update. 2017-02-15 07:27:08 +00:00
Philip.Hazel bea3a10a93 Final file updates for 10.23. 2017-02-14 10:40:33 +00:00
Philip.Hazel 388ffac596 Fix bug in most recent fix for pcre2grep. 2017-02-12 13:30:38 +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 8a3a452ea9 Small code tidy to make it more understandable. 2017-02-10 16:42:14 +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 56a8ada12d Fix warnings in 32-bit environments. 2017-01-17 15:21:11 +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
Zoltán Herczeg 88c0f14825 JIT compiler update. Patch insipred by Christian Persch. 2017-01-12 09:32:15 +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
Zoltán Herczeg 27eab0b836 JIT compiler update. 2017-01-05 10:01:29 +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
Zoltán Herczeg e22fadd1e4 JIT compiler update. 2017-01-02 13:01:42 +00:00
Philip.Hazel 5a15ad5c36 Fix very minor typo. 2017-01-01 12:13:17 +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 f42fb677b9 Limit the subject length in the fuzzer support function, to avoid wasting time
searching large trees.
2016-12-31 13:46:36 +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 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 dfff2fbc9f Limit the fuzzing function with match limit = recursion limit = 100. 2016-12-20 17:10:30 +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
Zoltán Herczeg 6f3deee62d JIT compiler update. 2016-12-09 14:22:11 +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 d3e36ba59e Minor wording tweak. 2016-11-25 10:38:38 +00:00
Philip.Hazel 7390ce13f6 Quantifiers following (*VERB)s were not being diagnosed. 2016-11-25 10:37:23 +00:00
Philip.Hazel 6962217441 Make fuzz support abort on internal errors. 2016-11-24 15:57:34 +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 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 336da0bf5d Update the pcre2grep patch for colouring on Windows so that "auto" is the same
as "always".
2016-11-03 17:01:17 +00:00
Philip.Hazel e5f1ac32c0 Correct out-of-date comments in the code. 2016-11-02 09:56:27 +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 a8e61163e0 Correct a couple of size_t that should be PCRE2_SIZE. 2016-10-15 09:21:12 +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 ff6bec1991 Note in config.h that SUPPORT_PCRE2GREP_JIT needs SUPPORT_JIT in order to be
effective.
2016-10-14 15:16:39 +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 bf6f0bb335 Implement buffer expansion in pcre2grep. 2016-10-11 16:40:09 +00:00
Philip.Hazel fe965353e6 Insert missing casts to reduce compiler warnings. 2016-10-06 16:47:56 +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 5b6c797a4d Final file tidies for 10.22. 2016-07-29 08:47:39 +00:00
Philip.Hazel 42d7c17a1d Tidy code to get rid of compiler warnings. 2016-07-27 18:00:12 +00:00
Philip.Hazel 36f06405b7 Update comments and correct name of memmove substitute function. 2016-07-27 17:58:38 +00:00
Zoltán Herczeg 41ebeb4290 Minor JIT compiler update. 2016-07-17 04:39:51 +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