jzmaddock
1480e33dc6
Regex: Fix recursive algorithm builds.
2017-11-09 18:13:16 +00:00
jzmaddock
6246f5ec51
Regex: Set a limit on how many recursions we allow.
2017-11-09 11:23:54 +00:00
jzmaddock
3693a5de10
Regex: previous fix could go into infinite loop when a comment was followed by a "(", fix that.
2017-10-26 13:05:33 +01:00
jzmaddock
f251a98662
Regex: When matching an (*ACCEPT) and skipping forwards, we have to be careful not to stop skipping prematurely if we're inside a lookahead.
...
Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3493#c2
2017-10-24 19:06:53 +01:00
jzmaddock
50453e319a
Regex: Repeating a repeat is not allowed, even if there is a comment block in between the two.
...
Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3479#c2
2017-10-24 17:56:02 +01:00
jzmaddock
544e20a339
Regex: Backup and restore internal match_results when saving recursion backtracking info, as well as the state required to restore the recursion stack. Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3478#c1
2017-10-23 18:49:08 +01:00
jzmaddock
7de023237f
Regex: Add a hard limit on the number of nested parenthesis allowed.
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3471#c2 .
2017-10-19 18:23:43 +01:00
jzmaddock
f343cab680
Regex: Fix handling of repeats when mod_x is in effect.
...
See https://oss-fuzz.com/v2/testcase-detail/6420486177161216?noredirect=1
2017-10-08 11:52:54 +01:00
jzmaddock
f592693c9b
Regex: Fix potential negation of INT_MIN,
...
see https://oss-fuzz.com/v2/testcase-detail/6646578892767232?noredirect=1 .
2017-10-07 17:23:59 +01:00
jzmaddock
881a157243
Regex: Fix integer overflow in expression parsing.
...
See: https://oss-fuzz.com/v2/testcase-detail/6189682419302400?noredirect=1
2017-10-07 09:47:19 +01:00
jzmaddock
289ce86488
Regex: move boost headers to top of list to work around clang issue which requires workarounds present in config.hpp.
2017-09-21 17:15:51 +01:00
jzmaddock
a32e0cc9d3
Fix pattern escaping in regex used for \R so it works when the x-modifier is in effect.
...
Fixes: https://svn.boost.org/trac10/ticket/12960
2017-08-03 18:04:41 +01:00
jzmaddock
bc9b25b5d3
Fix potential overflow in max_state_count calculation.
...
Fixes: https://svn.boost.org/trac10/ticket/13036 .
2017-07-31 19:18:10 +01:00
jzmaddock
d97bcfb5dd
Fix integer types and signedness:
...
Fixes https://svn.boost.org/trac10/ticket/13034
2017-07-31 18:51:25 +01:00
Andrey Semashev
f89c75f7b0
Silence MSVC 14.1 warnings of narrowing conversion
...
In debug mode the compiler is not able to see that the int constant can fit in the character type without loss.
2017-03-25 20:34:56 +03:00
John Maddock
22aedd996c
Fix iterator comparisons so legacy compilers (sun and VC6) can handle them
2017-03-01 11:33:28 +00:00
jzmaddock
93926479e3
de-fuzz: suppress a couple of warnings introduced by de-fuzzing fixes.
2017-02-22 18:46:34 +00:00
jzmaddock
c8044ffca0
de-fuzz: more recursive calls that require proper stack unwinding to prevent memory leaks if matching throws.
2017-02-23 09:43:22 +00:00
jzmaddock
982f3bbe45
de-fuzz: need to fail when a named recursive subexpression refers to an invalid name.
2017-02-23 09:30:49 +00:00
jzmaddock
2e7e73aecf
de-fuzz: Prevent excessive left shifts
2017-02-22 12:52:53 +00:00
jzmaddock
3d2dc325de
de-fuzz: Remove debugging code.
2017-02-22 12:45:48 +00:00
jzmaddock
85cd85013d
de-fuzz: Memory leak fix: Need to unwind stack when doing recursive call on non-recursive algorithm
2017-02-22 12:43:28 +00:00
jzmaddock
b65bf1b459
de-fuzz: make sure recursion stack always has a valid start location for the recursion.
2017-02-21 19:38:36 +00:00
jzmaddock
b0a83dc8d9
de-fuzz: fix overflow in shift
2017-02-21 11:04:26 +00:00
jzmaddock
ac3838b622
de-fuzz: fix undefined behaviour in negating enum type
2017-02-21 10:53:53 +00:00
jzmaddock
f301f3a412
de-fuzz: previous fix broke some code, re-fix it.
2017-02-21 12:43:08 +00:00
jzmaddock
94cd9e582b
Simplify adding items to lists, and fix Jamfile build failure.
2017-02-20 13:44:24 +00:00
jzmaddock
ae9f38e178
de-fuzz: Failed Pearl verbs should fail better and louder.
2017-02-18 13:04:34 +00:00
jzmaddock
d70b7bcefe
de-fuzz: fix infinite recursion when analysing tail-recursive expressions.
2017-02-16 19:24:22 +00:00
jzmaddock
7f89a8f3b8
de-fuzz: add missing typename qualifiers to previous fix.
2017-02-15 19:48:56 +00:00
jzmaddock
edd94320c7
de-fuzz: prevent infinite recursion in recursive expressions (case 14).
2017-02-15 19:44:41 +00:00
jzmaddock
b05fafe1c5
de-fuzz: improve set creation so as not to allow duplicate characters.
2017-02-14 19:41:35 +00:00
jzmaddock
febd44ddd6
de-fuzz, first fix for issue 14.
...
Make zeros in character set a single character long only.
2017-02-14 18:13:32 +00:00
jzmaddock
2cb49b97da
de-fuzz: Fix case 0 again.
2017-02-14 17:38:47 +00:00
jzmaddock
8337584087
De-Fuzz: Fixes for issues 0 and 3 from #12818 :
...
Prevent left shifting by more bits than there are in type unsigned, and
Check that alternative points to a valid state before accessing it: we may not have constructed that state yet in a fail situation.
2017-02-12 19:57:35 +00:00
jzmaddock
7719dedbaf
Fix buffer over-run error when parsing invalid regex.
...
See: https://svn.boost.org/trac/boost/ticket/12222 .
2016-06-09 19:00:29 +01:00
jzmaddock
9059bfb5c6
Fix case-sensitivity change behaviour.
...
See https://svn.boost.org/trac/boost/ticket/11205 .
Update docs to match.
2016-03-14 19:22:18 +00:00
jzmaddock
955d077d2b
Allow types wider than int in \x{} expressions (for char32_t etc).
...
Fixes: https://svn.boost.org/trac/boost/ticket/11988 .
2016-02-17 18:58:05 +00:00
Yucheng Low
d8af53e222
restored missing header
2015-12-31 15:48:01 -08:00
Yucheng Low
a0dfd81516
Lockfree mem_block_cache only active if std::atomic is available
2015-12-31 15:46:20 -08:00
Yucheng Low
3f14031142
Updated with platform checks
2015-12-15 14:26:03 -08:00
Yucheng Low
b9f55efe98
Made the mem_cache_block lockfree
...
This *significantly* improves parallel performance of regex.
Currently if I have a large number of threads all using regexes; even if
they are using idependent regex objects, performance is still extremely poor
due to the lock inside of the mem_block_cache.
2015-12-08 21:17:50 -08:00
Gaurav
2a525e5aa6
avoid duplicate check of markid.
...
Markid is already checked to be >0.
2015-11-03 14:12:17 +05:30
jzmaddock
e824ddb35b
Remove redundant check and make it an assert.
2015-10-23 13:27:01 +01:00
jzmaddock
7cbef4a79b
Add missing include.
2015-10-22 18:03:03 +01:00
jzmaddock
e5986b8f76
Tentative VC7.1 workaround.
2015-10-22 11:29:55 +01:00
Mikael Olenfalk
6d2be646d8
universal-windows: Do not build w32_regex_traits
...
Since Vista LCID has been deprecated and locales are now using string-names,
this makes the effort to support w32_regex_traits quite large, therefore we
opt to disable w32_regex_traits right now when targeting universal-windows.
2015-10-08 10:22:44 +02:00
jzmaddock
a307fd7077
Fix msvc warning.
2015-10-06 13:17:01 +01:00
jzmaddock
f617c73e9a
Fix some GCC and clang warnings introduced by the new code
2015-10-06 12:46:09 +01:00
jzmaddock
201d3a424e
Add recursive implementation of THEN.
2015-10-05 18:27:37 +01:00