| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
* PHP-7.4:
Fix #80118: Erroneous whitespace match with JIT only
|
| |
| |
| |
| |
| |
| |
| |
| | |
We backport r1273[1] from PCRE2.
[1] <https://vcs.pcre.org/pcre2?revision=1273&view=revision>
Closes GH-6165.
|
| |
| |
| |
| |
| | |
We also backport the fix for bug #79846, and add a test case for the
related bug #79363.
|
| |
| |
| |
| | |
We backport the slightly modified variant from master.
|
| |
| |
| |
| |
| |
| | |
We backport the respective upstream fix[1].
[1] <https://vcs.pcre.org/pcre2?view=revision&revision=1267>
|
| |
| |
| |
| |
| | |
We also port a fix for the build system regarding the `-fcf-protection`
gcc flag; cf. <https://bugs.exim.org/show_bug.cgi?id=2578>.
|
| |
| |
| |
| |
| |
| |
| | |
This reverts commit b419f96c626d1f9cbbba42698e947e32a0af9c4f.
This breaks the GCC build with -fcf-protection (default on Ubuntu
at least).
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When compiling with "-Wall -Werror" gcc emits two errors:
../src/pcre2_jit_neon_inc.h:211:8: error: ‘cmp1b’ is used uninitialized in this function [-Werror=uninitialized]
211 | data = fast_forward_char_pair_compare(compare1_type, data, cmp1a, cmp1b);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/pcre2_jit_neon_inc.h:212:9: error: ‘cmp2b’ is used uninitialized in this function [-Werror=uninitialized]
212 | data2 = fast_forward_char_pair_compare(compare2_type, data2, cmp2a, cmp2b);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The compiler emits the error message before inlining.
Because the warning is based on an intra-procedural data
flow analysis, the compiler does not see that cmp1b and
cmp2b are not used when they are not initialized.
Here is the code of that function, cmp2 is only used
when ctype is compare_match2 or compare_match1i,
and not when ctype is compare_match1:
static inline vect_t fast_forward_char_pair_compare(compare_type ctype, vect_t dst, vect_t cmp1, vect_t cmp2)
{
if (ctype == compare_match2)
{
vect_t tmp = dst;
dst = VCEQQ(dst, cmp1);
tmp = VCEQQ(tmp, cmp2);
dst = VORRQ(dst, tmp);
return dst;
}
if (ctype == compare_match1i)
dst = VORRQ(dst, cmp2);
dst = VCEQQ(dst, cmp1);
return dst;
}
The patch inlines by hand the case of compare_match1 such that the
code avoids referring to cmp1b and cmp2b.
Tested on aarch64-linux with `make check`.
|
| | |
|
| | |
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| | |
Backports parts of https://vcs.pcre.org/pcre2?view=revision&revision=1175
fixing https://bugs.exim.org/show_bug.cgi?id=2453.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Use MAP_JIT only when running under hardened runtime, because MAP_JIT
is incompatible with fork().
The check is based on
https://github.com/mono/mono/commit/f879e35e3ed7496d819bd766deb8be6992d068ed.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is intended to fix the primary issue from bug #77260.
Prior to macOS 10.14 multiple MAP_JIT segments were not permitted,
leading to mmap failures and corresponding "no more memory" errors
on macOS 10.13.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.3:
Fix #78338: Array cross-border reading in PCRE
|
| |
| |
| |
| | |
We backport r1092 from pcre2.
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Autoconf defines PACKAGE_* symbols:
- PACKAGE_NAME
- PACKAGE_VERSION
- PACKAGE_TARNAME
- PACKAGE_STRING
- PACKAGE_BUGREPORT
- PACKAGE_URL
and appends them to the generated config.h.in files. With AC_INIT change
via afd52f9d9986d92dd0c63832a07ab1a16bf11d53 where package version, URL,
bug report location and similar meta data are defined, these
preprocessor macros are then non empty strings in the generated
configuration header file. When using phpize, PHP shares the config
files in extensions, warnings of redefined macros appear, such as:
- `warning: 'PACKAGE_NAME' macro redefined`
This patch now disables these non utilized symbols in the generated
config header files.
Better practice would be to include only API specific headers where
needed but this would require even more refactorings. Some extensions
such as pcre, pgsql, and pdo_pgsql solve this issue by undefining some
of these symbols before including the library configuration headers in
the code also. Because these symbols can be defined by any library which
uses Autotools.
Additionally, the unused PACKAGE_* symbols were cleaned for the bundled
libmbfl library and with this patch not needed undef code removed.
|
|
|
|
| |
Applied upstream patch, see https://bugs.exim.org/show_bug.cgi?id=2321
|
|
|
|
| |
(cherry picked from commit d918e0776b5168aed2707b0ca500589844f0faa8)
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
|
|
|
|
| |
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
|
| |
|
|
RFC https://wiki.php.net/rfc/pcre2-migration
|