Commit Graph

199 Commits

Author SHA1 Message Date
Philip.Hazel e3d62b0ff8 Re-write recursion handling to fix another compiler bug and make it all less
error-prone.
2015-08-09 16:29:35 +00:00
Philip.Hazel b89a448d8d Add missing integer overflow checks. 2015-08-04 09:13:11 +00:00
Philip.Hazel 3e12e15fe1 Fix incorrect minimum matching length when pattern contains (?| groups. 2015-08-03 13:18:49 +00:00
Philip.Hazel fe0a16fe8f Make EBCDIC [a-z] type ranges Perl compatible. 2015-07-24 18:18:05 +00:00
Philip.Hazel 1bcfb856f5 Fix pedantic infelicities shown up by clang and a UTF-8 checking overflow bug. 2015-07-24 13:30:50 +00:00
Philip.Hazel 83c7c24b92 Fix bugs for patterns with conditional groups starting with assertions. 2015-07-22 14:34:31 +00:00
Philip.Hazel e4d630c4af Fix (?R- not being correctly diagnosed. 2015-07-22 09:29:09 +00:00
Philip.Hazel 0046526d0e Fix incorrect compilation for repeated conditionals with only one branch. 2015-07-22 09:01:50 +00:00
Philip.Hazel 688151205d Fix not diagnosis of missing ) for callout with string argument. 2015-07-21 14:03:08 +00:00
Philip.Hazel 01c4647b02 Fix "running for ever" bug for deeply nested [: sequences. 2015-07-21 13:42:14 +00:00
Philip.Hazel 31241914a5 Fix another fuzzer bug. 2015-07-20 10:17:23 +00:00
Philip.Hazel 21b15d96f2 Fix empty comment (?#) bug 2015-07-17 16:25:21 +00:00
Philip.Hazel c1f8a7dfb3 Fix bad compilation of a possessively repeated conditional that could match an
empty string.
2015-07-17 15:11:45 +00:00
Philip.Hazel 54f59d3c05 Ignore {1} quantifiers. 2015-07-17 13:41:09 +00:00
Philip.Hazel 5cd731f314 Fix crash due to incorrect pre-pass handling of callouts with string arguments,
and tighten up the callout handling.
2015-07-16 17:47:20 +00:00
Philip.Hazel 3326a72f6d Move pcre2_find_bracket() into its own module to avoid circular dependency. 2015-07-16 16:11:52 +00:00
Philip.Hazel 328c7920cc Fix bad processing of (?x)(*MARK) within another group. 2015-07-15 09:34:04 +00:00
Philip.Hazel 098562db96 Fix [[:>:]] when followed by parenthesis buffer overflow. 2015-07-15 09:08:12 +00:00
Philip.Hazel 865b2d5f6e Final file tidies for 10.20. 2015-07-02 13:18:14 +00:00
Philip.Hazel bac822ba58 Fix EBCDIC 0x41 omission and give error for \p and \P in a class when not
supported.
2015-06-19 16:41:22 +00:00
Philip.Hazel c146059c22 Make \c operate like Perl in EBCDIC environments. 2015-06-13 16:10:14 +00:00
Philip.Hazel 149aa29209 Fix \a and \e in pcre2test, and \a in pcre2_compile, on EBCDIC platforms. 2015-06-12 16:25:23 +00:00
Philip.Hazel 1d44822484 Fix empty string matching bug. 2015-06-09 17:41:45 +00:00
Philip.Hazel 1e6edd2e33 Fix table entry for \l in EBCDIC environments. 2015-06-09 16:33:44 +00:00
Philip.Hazel ff4553df08 Check for integer overflow in subroutine calls. 2015-06-08 17:51:54 +00:00
Philip.Hazel c9ac9e23ec Refactor named group handling by adding a pre-pass that generates a list of
named groups with their numbers before the rest of the compiling code is run. 
This has simplified the main compiling code and removed some sources of error.
2015-06-03 16:27:47 +00:00
Philip.Hazel 9ce0207f5c Make pcre2test give an error for \P, \p, and \X after #forbid_utf. 2015-05-20 17:44:17 +00:00
Philip.Hazel 666b3c88cf Give error for empty subpattern name such as (?''). 2015-05-19 16:48:57 +00:00
Philip.Hazel 78735a5336 Fix buffer overflow for lookbehind with mutually recursive groups. 2015-05-18 17:31:29 +00:00
Philip.Hazel 472d1c4e62 Fix sanitize=undefined warnings for left shifts of 31. 2015-05-16 16:02:46 +00:00
Philip.Hazel 6f94ece67d Fix forward reference by name to duplicate group number bug. 2015-05-16 11:01:48 +00:00
Philip.Hazel 56444e9978 Fix buffer overflow for recursive byname back reference when duplicate names
exist.
2015-05-15 17:09:01 +00:00
Philip.Hazel 92739ef5d8 Fix repeated condition check by duplicated name bug. 2015-05-08 16:32:28 +00:00
Philip.Hazel e653c5f142 Re-do previous patch and fix new forward-reference-with-quantification bugs. 2015-05-06 16:51:25 +00:00
Philip.Hazel c420d11041 Fix bug in previous fix. 2015-05-05 18:46:51 +00:00
Philip.Hazel d5191510db Fix recursive forward reference bug. 2015-05-03 16:46:56 +00:00
Philip.Hazel 4d35b44b43 Fix compatibility issues for \8 and \9. 2015-04-23 17:28:39 +00:00
Philip.Hazel d1a13b8e2e Implement PCRE2_ALT_CIRCUMFLEX. 2015-04-22 17:39:25 +00:00
Philip.Hazel e47a6ebe87 Implement PCRE2_NEVER_BACKSLASH_C. 2015-04-13 17:29:05 +00:00
Philip.Hazel 3e1748390b Fix very slow find_minlength when mutual recursion is present. 2015-04-13 09:13:39 +00:00
Philip.Hazel ade67323e7 Fix stack overflow instead of error diagnosis for mutual recursion within
lookbehind assertion.
2015-04-01 15:37:54 +00:00
Philip.Hazel 2f265daed0 Tidy the types of some integer variables. 2015-03-31 16:10:01 +00:00
Philip.Hazel 6a2cb0d774 Fix diagnosis of negative relative references to non-existent groups. 2015-03-31 15:01:25 +00:00
Philip.Hazel 2327a5860b Fix bad compile for possessive quantifier on group containing a subroutine
reference.
2015-03-29 17:34:04 +00:00
Philip.Hazel 63cab0dba9 Fix non-diagnosis of syntax error for (?(?< when not followed by ! or =. 2015-03-29 15:40:45 +00:00
Philip.Hazel 99bb61e903 Fix comment between recursion and quantifier bug. 2015-03-29 11:15:32 +00:00
Philip.Hazel 6b6e611b39 Fix mutual recursion inside other parentheses stack overflow bug. 2015-03-27 17:45:02 +00:00
Philip.Hazel cd85fae3c6 Fix bad memory computation for "(*UTF)[\S\V\H]" (a pattern with a negative
class (\S) and explicit wide characters).
2015-03-25 19:26:27 +00:00
Philip.Hazel a4ceadbf47 Fix bugs when (?!) is used as a condition. 2015-03-24 10:21:34 +00:00
Philip.Hazel b15698b077 Fix data overrun for /(?(?C)/ 2015-03-20 12:37:28 +00:00
Philip.Hazel 15e034c9c2 Add string offset within the pattern to the data passed to a callout with a
string argument.
2015-03-14 12:20:18 +00:00
Philip.Hazel baf08a3d37 Support manual callout with string argument at start of condition. 2015-03-12 17:00:18 +00:00
Philip.Hazel d0cf279d87 Code for callouts with string arguments. Documentation not yet updated. 2015-03-11 17:44:16 +00:00
Philip.Hazel 54396a364d Fix bad compile of patterns like /[A-`]/i,utf where the range contains
characters with multiple other cases and the ranges adjoin.
2015-03-06 11:57:06 +00:00
Philip.Hazel c372df5dce Fix compile error for forward reference subroutine call within a group that
also contained a recursive back reference.
2015-03-01 18:34:05 +00:00
Philip.Hazel ea03932668 Fix "internal error" bug caused by patterns like "((?2){0,1999}())?". 2015-02-28 11:31:51 +00:00
Philip.Hazel 49a7eada2d Final source file tidies for 10.10-RC1 2015-02-20 11:20:40 +00:00
Philip.Hazel 2e36497404 Fix compile loop for subroutine reference after class such as [^\ff]. 2015-02-06 17:51:55 +00:00
Philip.Hazel ad452f4036 Give an internal error for a bad opcode during auto-possessification. This can
stop a loop when compiling an invalid UTF string with PCRE2_NO_UTF_CHECK.
2015-02-06 16:47:15 +00:00
Philip.Hazel 0011aaa712 Disallow quantification of assertion conditions, for Perl compatibility (and in
any case it didn't always work).
2015-01-28 17:31:11 +00:00
Philip.Hazel 911b800984 Fix incorrect size calculation when a reference to a duplicate name occurs
in a part of the pattern where PCRE2_DUPNAMES is not set.
2015-01-27 17:21:32 +00:00
Philip.Hazel ca77bdd5c4 Implement (*NO_JIT) 2015-01-26 14:57:27 +00:00
Philip.Hazel 5438fc8a6a Add serialization functions and tests with updated pcre2test. Fix
PCRE2_INFO_SIZE issues.
2015-01-23 16:51:47 +00:00
Philip.Hazel d4daaf966d Fix conditional group backreference bug. 2015-01-13 16:01:24 +00:00
Philip.Hazel 5a18651441 Add PCRE2_NO_DOTSTAR_ANCHOR and revise documentation for .* optimizing. 2015-01-02 17:09:16 +00:00
Philip.Hazel 9fcdf2cc6f Add user data to recursion guard; get ready for RC1 (again) 2014-11-26 16:51:53 +00:00
Philip.Hazel adc7be2d3a Get rid of remaining FIXMEs in the code; implement JIT compile timing. 2014-11-12 17:46:02 +00:00
Philip.Hazel 08e3107cbe Changed jit_stack_alloc to jit_stack_create. 2014-11-03 17:13:00 +00:00
Philip.Hazel 8aa511a98b Improve test coverage; minor typo in JIT test and other minor buglets fixed. 2014-10-31 12:34:34 +00:00
Philip.Hazel 3989f00461 Convert the special "EBCDIC on an ASCII system" test. 2014-10-26 18:00:19 +00:00
Philip.Hazel 56805a1246 Remove some unused code and a spurious comment and reword one message. 2014-10-25 14:28:43 +00:00
Philip.Hazel c3799e750f Tidy a lot of files (remove trailing spaces) 2014-10-20 17:28:49 +00:00
Philip.Hazel 0ec351e95e Create default compile and match contexts as constant static data. 2014-10-11 17:05:18 +00:00
Philip.Hazel 623b497851 Fix "first code unit" bug. 2014-10-10 16:16:44 +00:00
Zoltán Herczeg 0907fc6e92 Support for JIT code free and small partial match optimization. 2014-10-09 10:06:19 +00:00
Philip.Hazel cc463c76a3 Call _pcre2_jit_free from pcre2_code_free. 2014-10-07 13:07:20 +00:00
Philip.Hazel ccd5ac9014 Save compile-time work when PCRE2_NO_START_OPTIMIZE is set. 2014-10-03 09:47:59 +00:00
Philip.Hazel eee8530add API documentation and a lot of little related changes to the code. 2014-09-19 07:43:39 +00:00
Philip.Hazel 7b2707fcf7 Make /()a/ set the "first character must be" data. 2014-08-30 16:21:17 +00:00
Philip.Hazel 7858fa702d Implement (*NOTEMPTY) and (?(VERSION= features. 2014-08-26 11:46:21 +00:00
Philip.Hazel 7efba85b56 Change lengths to PCRE2_SIZE and revise OP_RECURSE processing. 2014-08-16 09:46:58 +00:00
Philip.Hazel b6b9087081 Multi-config tests (without JIT) now work. 2014-08-10 16:09:24 +00:00
Philip.Hazel b7c5d02b3d Fix stack overflow bug, copying fix from PCRE1. 2014-08-08 15:36:18 +00:00
Philip.Hazel f40fba5dc8 Adjust tests for PCRE/Perl anomalies in character properties & fix one bug. 2014-08-06 17:33:14 +00:00
Philip.Hazel e022475d54 All tests except JIT and save/reload are implemented. 2014-08-05 16:51:32 +00:00
Philip.Hazel 8792477279 Add more tests. 2014-08-03 17:50:08 +00:00
Philip.Hazel 2addfec25d Test 4 installed (combines old tests 4 and 6) 2014-07-25 16:35:51 +00:00
Philip.Hazel 017b6a1624 Tests 1 and 2 are converted (but without save/restore). 2014-07-24 16:32:38 +00:00
Philip.Hazel 7854bf34b3 Implement pcre2grep and its test. 2014-07-15 08:46:12 +00:00
Philip.Hazel 0188214a63 Compiling with --disalbe-stack-for-recursion is working. Introduce PCRE2_OFFSET
for offset values.
2014-07-04 16:26:09 +00:00
Philip.Hazel 38b570f99d The pcre2_match() function's basic facilities are working (though hardly
tested).
2014-06-28 14:23:18 +00:00
Philip.Hazel 06aa11b428 Miscellanous name tidies. 2014-06-24 15:47:33 +00:00
Philip.Hazel 5008860489 Auto-possession and studying added; compile-time errors refactored. 2014-06-21 12:39:48 +00:00
Philip.Hazel 1abd5a7f8d Basic pcre2_compile() is working (no study, no auto-possess yet). 2014-06-14 18:29:51 +00:00
Philip.Hazel 8e5a5acf51 As far as pcre2test can usefully go without a real library. 2014-05-13 15:58:29 +00:00
Philip.Hazel 225992aa3a Further work on pcre2test (can now display compiled code). 2014-05-13 11:20:03 +00:00
Philip.Hazel 9812ca8b0a More groundwork for pcre2test: POSIX support. 2014-04-30 16:55:24 +00:00
Philip.Hazel 06ba06c763 Refactor the framework for revised API. 2014-04-18 15:37:56 +00:00
Philip.Hazel f4174bab90 Create dummy framework for all functions and programs. 2014-03-07 17:28:52 +00:00