Pcre2

Latest version: v0.4.0

Safety actively analyzes 623133 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

10.44

-------------------------

1. If a pattern contained a variable-length lookbehind in which the first
branch was not the one with the shortest minimum length, and the lookbehind
contained a capturing group, and elsewhere in the pattern there was another
lookbehind that referenced that group, the pattern was incorrectly compiled,
leading to unpredictable results, including crashes in JIT compiling. An
example pattern is: /(((?<=123?456456|ABC)))(?<=\2)/

2. Further updates to the oss-fuzz support:

(a) When JIT is enabled, limit quantifiers for groups to be no more than 10.
This avoide the very long JIT compile times that happen in some cases
when groups are replicated for quantification.

(b) Added PCRE2_EXTENDED_MORE to the list of allowed options.

(c) Arranged for text error messages to be shown in 16-bit and 32-bit modes.

(d) Made the output in standalone mode more readable.

(e) General code tidies.

3. Increase the maximum length of a name for a group from 32 to 128 because
there is a user for whom 32 is too small.

4. Cause pcre2test to output a message when pcre2_jit_compile() gives an error
return if either jitverify or info is specified/

5. Some auxiliary files for building under OpenVMS that were contributed by
Alexey Chupahin have been installed.

10.43

------------------------------

There are quite a lot of changes in this release (see ChangeLog and git log for
a list). Those that are not bugfixes or code tidies are:

* The JIT code no longer supports ARMv5 architecture.

* A new function pcre2_get_match_data_heapframes_size() for finer heap control.

* New option flags to restrict the interaction between ASCII and non-ASCII
characters for caseless matching and \d and friends. There are also new
pattern constructs to control these flags from within a pattern.

* Upgrade to Unicode 15.0.0.

* Treat a NULL pattern with zero length as an empty string.

* Added support for limited-length variable-length lookbehind assertions, with
a default maximum length of 255 characters (same as Perl) but with a function
to adjust the limit.

* Support for LoongArch in JIT.

* Perl changed the meaning of (for example) {,3} which did not used to be
recognized as a quantifier. Now it means {0,3} and PCRE2 has also changed.
Note that {,} is still not a quantifier.

* Following Perl, allow spaces and tabs after { and before } in all Perl-
compatible items that use braces, and also around commas in quantifiers. The
one exception in PCRE2 is \u{...}, which is from ECMAScript, not Perl, and
PCRE2 follows ECMAScript usage.

* Changed the meaning of \w and its synonyms and derivatives (\b and \B) in UCP
mode to follow Perl. It now matches characters whose general categories are L
or N or whose particular categories are Mn (non-spacing mark) or Pc
(combining punctuation).

* Changed the default meaning of [:xdigit:] in UCP mode to follow Perl. It now
matches the "fullwidth" versions of hex digits. PCRE2_EXTRA_ASCII_DIGIT can
be used to keep it ASCII only.

* Make PCRE2_UCP the default in UTF mode in pcre2grep and add -no_ucp,
--case-restrict and --posix-digit.

* Add --group-separator and --no-group-separator to pcre2grep.

10.42

------------------------------

This is an unexpectedly early release to fix a problem that was introduced in
10.41. ChangeLog number 19 (GitHub 139) added the default definition of
PCRE2_CALL_CONVENTION to pcre2posix.c instead of pcre2posix.h, which meant that
programs including pcre2posix.h but not pcre2.h couldn't compile. A new test
that checks this case has been added.

A couple of other minor issues are also fixed, and a patch for an intermittent
JIT fault is also included. See ChangeLog and the Git log.

10.41

------------------------------

This is another mainly bug-fixing and code-tidying release. There is one
significant upgrade to pcre2grep: it now behaves like GNU grep when matching
more than one pattern and a later pattern matches at an earlier point in the
subject when the matched substrings are being identified by colour or by
offsets.

10.40

---------------------------

This is mostly a bug-fixing and code-tidying release. However, there are some
extensions to Unicode property handling:

* Added support for Bidi_Class and a number of binary Unicode properties,
including Bidi_Control.

* A number of changes to script matching for \p and \P:

(a) Script extensions for a character are now coded as a bitmap instead of
a list of script numbers, which should be faster and does not need a
loop.

(b) Added the syntax \p{script:xxx} and \p{script_extensions:xxx} (synonyms
sc and scx).

(c) Changed \p{scriptname} from being the same as \p{sc:scriptname} to being
the same as \p{scx:scriptname} because this change happened in Perl at
release 5.26.

(d) The standard Unicode 4-letter abbreviations for script names are now
recognized.

(e) In accordance with Unicode and Perl's "loose matching" rules, spaces,
hyphens, and underscores are ignored in property names, which are then
matched independent of case.

As always, see ChangeLog for a list of all changes (also the Git log).

10.39

-----------------------------

This release is happening soon after 10.38 because the bug fix is important.

1. Fix incorrect detection of alternatives in first character search in JIT.

2. Update to Unicode 14.0.0.

3. Some code cleanups (see ChangeLog).

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.