Commit Graph

554 Commits

Author SHA1 Message Date
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
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 acc29ed05a Add missing #ifdef SUPPORT_UNICODE to avoid "unused variable" warning. 2016-06-28 16:19:47 +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 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 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
Zoltán Herczeg c8938f7a23 Style updates in JIT. 2016-04-12 11:27:41 +00:00
Philip.Hazel a65b0997e0 Tidy up patch for Windows binary stdout in pcre2grep. 2016-04-06 08:26:24 +00:00
Zoltán Herczeg 992322039d Support Android ARM64 cacheflush in JIT. Patch by Tavian Barnes. 2016-04-06 07:18:42 +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
Zoltán Herczeg 3e486da3de JIT compiler update. 2016-03-04 08:51:53 +00:00
Philip.Hazel 0cfea16397 Define snprintf as _snprintf for older MSVC compilers. 2016-02-29 18:31:30 +00:00
Philip.Hazel 0440a8e72a Avoid "const-correct" warning from MSVC. 2016-02-29 17:43:01 +00:00
Zoltán Herczeg 9d52a9d973 JIT compiler update. 2016-02-29 09:09:40 +00:00
Philip.Hazel 5b543bf660 Fix typo in pcre2_study(). 2016-02-28 14:56:50 +00:00
Philip.Hazel 21ca32717f Further small fix to regerror() overflow handling, to ensure identical output
whether or not there is a zero at the end of the buffer.
2016-02-28 13:33:55 +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
Zoltán Herczeg 80d7d825e1 JIT style fixes. 2016-02-24 10:17:10 +00:00
Philip.Hazel c28ed7fd4a Fix some picky compiler warnings 2016-02-16 10:23:06 +00:00
Zoltán Herczeg 88027b4625 Minor JIT style fixes. 2016-02-15 09:15:49 +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 112d5b77cc Ensure all _free() functions do nothing for NULL, and document this. 2016-02-06 12:45:56 +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 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 68940c7304 Final file tidies for 8.21-RC1. 2015-12-18 10:35:03 +00:00
Philip.Hazel dffd559601 File tidies, version updates, etc. for 10.21-RC1 2015-12-17 18:44:06 +00:00
Philip.Hazel 293da188aa Cast needed for 32-bit environments. 2015-12-17 17:15:19 +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 215e2185e4 Update overflow checks in pcre2test to allow for ULONG_MAX==UINT32_MAX. 2015-12-09 17:33:07 +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 addec0d2ae Tidy comment 2015-12-03 17:08:23 +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 1b38451847 Allow for up to 32-bit numbers in the ordin() function in pcre2grep. 2015-11-29 17:45:27 +00:00
Philip.Hazel e0764cd5fd Give error for regexec with pmatch=NULL and REG_STARTEND set. 2015-11-29 17:38:12 +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 291ececa58 Fix negated POSIX class bug. 2015-11-27 17:03:58 +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
Zoltán Herczeg 3485b14a18 Hotfix for [:punct:] in JIT. 2015-11-18 08:01:33 +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 7cc0597baa Re-arrange valgrind code. 2015-11-15 18:55:20 +00:00
Zoltán Herczeg 9006c26361 Support offset limit in JIT. 2015-11-15 05:05:53 +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 c8ed1e8feb Paranoid check in regcomp() for bad error code from pcre2_compile(). 2015-11-13 17:26:42 +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 2f8febd4b1 Give match data memory failur in regcomp() instead of regexec() 2015-11-12 18:35:49 +00:00
Philip.Hazel 8d70b1d368 Tidy another out-of-bounds pointer issue. 2015-11-12 17:24:58 +00:00
Philip.Hazel 9c5958fbe6 Check for too many replacements (more than INT_MAX) in pcre2_substitute() 2015-11-11 18:35:14 +00:00
Philip.Hazel ccfd31cda2 Check errorcode > 0 in regerror(). 2015-11-11 17:52:11 +00:00
Philip.Hazel ab48e8bb73 Lock out configuring for EBCDIC with non-8-bit libraries. 2015-11-11 17:43:37 +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 1bd3658bd9 Allow for the possibility of the size of the nest_save structure not being
a factor of the size of the compiling workspace.
2015-11-09 17:39:43 +00:00
Philip.Hazel ddf5f0532b Correct comments. 2015-11-09 17:09:00 +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 efc135b261 Fix out-of-date comment. 2015-11-06 17:52:41 +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 aaa23388c7 Fix dodgy code for UTF-32 checking. 2015-11-01 16:54:17 +00:00
Philip.Hazel a0d04b9fa3 Fix off-by-one bug in pcre2_substitute(). 2015-11-01 16:36:20 +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 890250535b Use PCRE2_NO_UTF_CHECK for the second and subsequent matches in
pcre2_substitute().
2015-10-30 17:41:56 +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