Commit Graph

367 Commits

Author SHA1 Message Date
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
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
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
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 860b6f228a Run test 8 (sizes and offsets and mode-specific things) for link size 3 and 4
as well as for link size 2, with different output files in each case.
2015-11-14 13:22:34 +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 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 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 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
Philip.Hazel 4ce7652a0e Add replication feature for patterns to pcre2test. 2015-10-30 15:20:07 +00:00
Philip.Hazel d1b4d99bc5 Improve error message for overly-complicated patterns. 2015-10-28 09:59:53 +00:00
Philip.Hazel 9577d9e165 Fix overlong (*MARK) or (*THEN) names bug. 2015-10-28 09:25:31 +00:00
Philip.Hazel 766fbc81d0 Fix PCRE2_NO_AUTO_CAPTURE bug. 2015-10-25 17:35:34 +00:00
Philip.Hazel 8a8d0ced69 Fix spurious error in pcre2test when single-letter modifiers at the end of a line have trailing spaces. 2015-10-22 15:49:54 +00:00
Philip.Hazel 2f542eb1c5 Add attribution for last bug. 2015-10-21 15:59:45 +00:00
Philip.Hazel 94eda7669a Fix UCP with [[:<]] and [[:>:]] bad compile bug. 2015-10-21 11:29:07 +00:00
Philip.Hazel 836fbb1148 Fix erroneous "\ at end of pattern" errors, introduced by
PCRE2_SUBSTITUTE_EXTENDED patch.
2015-10-17 18:29:01 +00:00
Philip.Hazel 3263d44b97 Implement --never-backslash-C 2015-10-17 13:50:56 +00:00
Philip.Hazel 5923caf05e Fix integer overflow for patterns whose minimum matching length is very, very
large.
2015-10-09 16:54:29 +00:00
Philip.Hazel 093412143d Fix compiler bug for classes such as [\W\p{Any}]. 2015-10-09 16:06:53 +00:00
Philip.Hazel 6ae5c36e83 Implement PCRE2_SUBSTITUTE_EXTENDED. 2015-10-07 17:32:48 +00:00
Philip.Hazel 0c70fb3013 Add null_context to pcre2test for testing NULL contexts. 2015-09-23 11:49:03 +00:00
Philip.Hazel 69d61e2fdb Implement PCRE2_USE_OFFSET_LIMIT and pcre2_set_offset_limit(). No documentation
yet.
2015-09-22 11:24:28 +00:00
Philip.Hazel 36db5a4d5f Implement comment lines in subject strings in pcre2test (and perltest.sh) input files. 2015-09-14 15:10:19 +00:00
Philip.Hazel 297024d65b Create a suppressions file for valgrind with JIT. 2015-09-11 16:56:47 +00:00
Philip.Hazel bb68c64c40 Implement #newline_default and adjust testdata and scripts to use it. 2015-09-08 17:01:17 +00:00
Zoltán Herczeg 357dfb7964 Fix two issues in JIT. 2015-09-02 08:35:50 +00:00
Philip.Hazel d2e87a75af Implemented PCRE2_ALT_VERBNAMES 2015-08-30 17:47:36 +00:00
Philip.Hazel fd08e11c1e Fix pcre2test splitting modifier lists at white space. 2015-08-30 14:11:15 +00:00
Philip.Hazel 170644eca3 Add ${*MARK} feature to pcre2_substitute(). 2015-08-29 17:13:09 +00:00
Zoltán Herczeg e40bc47ae2 Fixed a corner case of range optimization in JIT. 2015-08-26 13:35:58 +00:00
Philip.Hazel 69af3b39a6 Update for added test 14. 2015-08-24 16:31:30 +00:00
Philip.Hazel 3c8164817e Fix bug in RunTest.bat for new test. 2015-08-24 16:09:39 +00:00
Philip.Hazel 4facdb9613 Fix CMAKE_C_FLAGS setting 2015-08-24 16:04:32 +00:00
Zoltán Herczeg 67764372eb Fix two assertion fails in JIT found by Karl Skomski. 2015-08-24 09:25:04 +00:00
Zoltán Herczeg 81af149870 Improve first character match in JIT with SSE2 on x86. 2015-08-23 01:54:04 +00:00
Philip.Hazel ee41aa906f Runtime UTF checks now take not of the starting offset. 2015-08-18 10:34:05 +00:00
Zoltán Herczeg 1370a49dfe Match limit check added to recursion. 2015-08-14 09:36:04 +00:00
Zoltán Herczeg d98800a946 A bug which was introduced by the single character repetition optimization was fixed. 2015-08-13 11:35:38 +00:00
Zoltán Herczeg d210396121 The JIT compiler should restore the control chain for empty possessive repeats. 2015-08-11 13:20:37 +00:00
Zoltán Herczeg 3ec328fe1b The JIT compiler should not check repeats after a {0,1} repeat byte code. 2015-08-11 05:30:10 +00:00