Commit Graph

558 Commits

Author SHA1 Message Date
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
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