b9c6f077 | 13-Nov-2024 |
Dmitry Stogov |
Merge branch 'PHP-8.2' into PHP-8.3 * PHP-8.2: Fix incorrect handling of ZEND_ACC_FINAL flag in JIT (#16778)
|
19809a52 | 13-Nov-2024 |
Dmitry Stogov |
Fix incorrect handling of ZEND_ACC_FINAL flag in JIT (#16778) |
a8151fc5 | 30-Oct-2024 |
Arnaud Le Blanc |
Fix the name of the initializer parameter of ReflectionClass::resetAsLazyGhost() Closes GH-16758 |
382be923 | 11-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.3' into PHP-8.4 * PHP-8.3: Fix GH-16727: Opcache bad signal 139 crash in ZTS bookworm (frankenphp)
|
fbf4cec6 | 11-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' into PHP-8.3 * PHP-8.2: Fix GH-16727: Opcache bad signal 139 crash in ZTS bookworm (frankenphp)
|
02ee521e | 10-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16727: Opcache bad signal 139 crash in ZTS bookworm (frankenphp) Reproducer: https://github.com/php/php-src/issues/16727#issuecomment-2466256317 The root cause is a data race
Fix GH-16727: Opcache bad signal 139 crash in ZTS bookworm (frankenphp) Reproducer: https://github.com/php/php-src/issues/16727#issuecomment-2466256317 The root cause is a data race between two different threads: 1) We allocate a lower cased name for an anonymous class here: https://github.com/php/php-src/blob/f97353f228e21dcc2db24d7edf08c1cb3678b0fd/Zend/zend_compile.c#L8109 2) This gets looked up as an interned string here: https://github.com/php/php-src/blob/f97353f228e21dcc2db24d7edf08c1cb3678b0fd/Zend/zend_compile.c#L8112 Assuming that there are uppercase symbols in the string and therefore `lcname != name` and that `lcname` is not yet in the interned string table, the pointer value of `lcname` won't change. 3) Here we add the string into the interned string table: https://github.com/php/php-src/blob/f97353f228e21dcc2db24d7edf08c1cb3678b0fd/Zend/zend_compile.c#L8223 However, in the meantime another thread could've added the string into the interned string table. This means that the following code will run, indirectly called via the `LITERAL_STR` macro, freeing `lcname`: https://github.com/php/php-src/blob/62e53e6f4965f37d379a3fd21f65a4210c5c86b5/ext/opcache/ZendAccelerator.c#L572-L575 4) In the reproducer we then access the freed `lcname` string here: https://github.com/php/php-src/blob/f97353f228e21dcc2db24d7edf08c1cb3678b0fd/Zend/zend_compile.c#L8229 This is solved in my patch by retrieving the interned string pointer and putting it in `lcname`. Closes GH-16748.
show more ...
|
e7891838 | 11-Nov-2024 |
Gina Peter Banyard |
ext/standard: Sync parameter names for fpow() to be identical to pow() Closes GH-16751 |
883d3c81 | 10-Nov-2024 |
Gina Peter Banyard |
ext/hash: Fix deprecation message output for new tests |
c1d67c24 | 10-Nov-2024 |
Gina Peter Banyard |
Merge branch 'PHP-8.3' into PHP-8.4 * PHP-8.3: ext/hash: Fix GH-16711: Segfault in mhash() ext/hash: Add failing tests for GH-16711
|
f01bafc3 | 10-Nov-2024 |
Gina Peter Banyard |
Merge branch 'PHP-8.2' into PHP-8.3 * PHP-8.2: ext/hash: Fix GH-16711: Segfault in mhash() ext/hash: Add failing tests for GH-16711
|
1b379f5e | 06-Nov-2024 |
Gina Peter Banyard |
ext/hash: Fix GH-16711: Segfault in mhash() Closes GH-16713 |
fc8f30d3 | 06-Nov-2024 |
Gina Peter Banyard |
ext/hash: Add failing tests for GH-16711 |
41347f01 | 17-Oct-2024 |
Peter Kokot |
[skip ci] Fix MYSQLND_HAVE_SSL preprocessor help texts The MYSQLND_HAVE_SSL indicate that mysqlnd has extended SSL support enabled through either OpenSSL when building with Autotools, an
[skip ci] Fix MYSQLND_HAVE_SSL preprocessor help texts The MYSQLND_HAVE_SSL indicate that mysqlnd has extended SSL support enabled through either OpenSSL when building with Autotools, and through crypt32 library on Windows. Fixes https://github.com/php/php-src/pull/15164#discussion_r1803834585 Closes GH-16474.
show more ...
|
c6d7d07a | 09-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.3' into PHP-8.4 * PHP-8.3: Fix GH-16695: phar:// tar parser and zero-length file header blocks
|
58f4b45b | 09-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' into PHP-8.3 * PHP-8.2: Fix GH-16695: phar:// tar parser and zero-length file header blocks
|
72c02229 | 04-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16695: phar:// tar parser and zero-length file header blocks There are two issues: 1) There's an off-by-one in the check for the minimum file size for a tar (i.e. `>` inste
Fix GH-16695: phar:// tar parser and zero-length file header blocks There are two issues: 1) There's an off-by-one in the check for the minimum file size for a tar (i.e. `>` instead of `>=`). 2) The loop in the tar parsing parses a header, and then unconditionally reads the next one. However, that doesn't necessarily exist. Instead, we remove the loop condition and check for the end of the file before reading the next header. Note that we can't use php_stream_eof as the flag may not be set yet when we're already at the end. Closes GH-16700.
show more ...
|
329890c1 | 07-Nov-2024 |
Hans Krentel (hakre) |
Fail early in *nix build script Adding one more [1] exit early safeguard in *nix build scripts: Given the initial cd into the build tree fails (the project root), the `buildc
Fail early in *nix build script Adding one more [1] exit early safeguard in *nix build scripts: Given the initial cd into the build tree fails (the project root), the `buildconf` script exits with non-zero status (failure). Additionally quoting the pathname to cd into and the empty CD_PATH parameter for portability, also for systems that are using a non-portable pathname [2] for the build tree. [1]: https://github.com/php/php-src/pull/16717 [2]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_271 Closes GH-16724.
show more ...
|
257387b9 | 09-Nov-2024 |
Christoph M. Becker |
Merge branch 'PHP-8.3' into PHP-8.4 * PHP-8.3: Fail early in *nix configuration build script
|
11da498a | 09-Nov-2024 |
Christoph M. Becker |
Merge branch 'PHP-8.2' into PHP-8.3 * PHP-8.2: Fail early in *nix configuration build script
|
c0755463 | 07-Nov-2024 |
Hans Krentel (hakre) |
Fail early in *nix configuration build script Adding two exit early safeguards in the *nix configuration build script: 1) Given the initial cd into the build tree fails (the project
Fail early in *nix configuration build script Adding two exit early safeguards in the *nix configuration build script: 1) Given the initial cd into the build tree fails (the project root), the `buildconf` script exits with non-zero status (failure). 2) Given the grep command does not exist or `configure.ac` AC_INIT [1] expectations are unmet, the buildconf script exits non-zero. Additionally quoting the pathname to cd into and the empty CD_PATH parameter for portability, also for systems that are using a non-portable pathname [2] for the build tree. The initial CD safeguard has been applied to the `buildconf` and four more scripts: - build/genif.sh - scripts/dev/credits - scripts/dev/genfiles - scripts/dev/makedist Rationale: Cd-ing into the project root should always prematurely exit w/ FAILURE as a required precondition for its invocation has not been met. This should never go unnoticed as it always requires user intervention. Similar and more specifically to the PHP build on *nix systems, the grep command is required early to obtain the `php_extra_version` from configure.ac. Previously, if the grep command is missing (or failing due to not matching the line with the AC_INIT macro [1]), the internal dev parameter would always be zero (0) which can easily result in the situation that the configure script is not being rebuilt. This is cumbersome as the rebuild of a configure script is more likely required with checked-out dev versions under change rather than an already properly set-up build environment on a dedicated build or release system. Missing the fact that either the grep utility is missing or the expectation of having the AC_INIT macro in configure.ac is unmet should never go unnoticed as it always requires user intervention. [1]: https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Initializing-configure.html [2]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_271 Closes GH-16717.
show more ...
|
3a1a205f | 08-Nov-2024 |
Christoph M. Becker |
Fix GH-16723: CURLMOPT_PUSHFUNCTION issues We copy the source handler's FCCs to those of the destination. We also fix the erroneous test assumption that the trampoline wouldn't
Fix GH-16723: CURLMOPT_PUSHFUNCTION issues We copy the source handler's FCCs to those of the destination. We also fix the erroneous test assumption that the trampoline wouldn't be called. Closes GH-16732.
show more ...
|
ef1e1868 | 09-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.3' into PHP-8.4 * PHP-8.3: Fix wrong merge
|
80dd5a03 | 09-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix wrong merge |
fd68e9ba | 09-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.3' into PHP-8.4 * PHP-8.3: Fix memory leak in php_openssl_pkey_from_zval() Fix various memory leaks related to openssl exports Prevent unexpected array
Merge branch 'PHP-8.3' into PHP-8.4 * PHP-8.3: Fix memory leak in php_openssl_pkey_from_zval() Fix various memory leaks related to openssl exports Prevent unexpected array entry conversion when reading key
show more ...
|
591fe927 | 09-Nov-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' into PHP-8.3 * PHP-8.2: Fix memory leak in php_openssl_pkey_from_zval() Fix various memory leaks related to openssl exports Prevent unexpected array
Merge branch 'PHP-8.2' into PHP-8.3 * PHP-8.2: Fix memory leak in php_openssl_pkey_from_zval() Fix various memory leaks related to openssl exports Prevent unexpected array entry conversion when reading key
show more ...
|