2015-07-21 22:36:36 +08:00
|
|
|
PHP NEWS
|
1999-07-23 07:54:54 +08:00
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
2024-07-16 21:45:20 +08:00
|
|
|
?? ??? ????, PHP 8.3.11
|
|
|
|
|
2024-05-26 06:00:23 +08:00
|
|
|
- Soap:
|
|
|
|
. Fixed bug #55639 (Digest autentication dont work). (nielsdos)
|
2024-07-16 21:45:20 +08:00
|
|
|
|
2024-07-17 00:23:31 +08:00
|
|
|
01 Aug 2024, PHP 8.3.10
|
2024-06-19 07:05:24 +08:00
|
|
|
|
2024-06-29 02:16:19 +08:00
|
|
|
- Core:
|
|
|
|
. Fixed bug GH-13922 (Fixed support for systems with
|
|
|
|
sysconf(_SC_GETPW_R_SIZE_MAX) == -1). (Arnaud)
|
|
|
|
. Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks). (Arnaud)
|
2024-06-29 03:09:17 +08:00
|
|
|
. Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt.
|
|
|
|
(nielsdos)
|
2024-06-29 20:16:54 +08:00
|
|
|
. Fixed OSS-Fuzz #69765. (nielsdos)
|
2024-07-09 06:14:28 +08:00
|
|
|
. Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h). (nielsdos)
|
2024-07-16 17:55:55 +08:00
|
|
|
. Fixed bug GH-14969 (Use-after-free in property coercion with __toString()).
|
|
|
|
(ilutov)
|
2024-07-16 23:50:16 +08:00
|
|
|
. Fixed bug GH-14961 (Comment between -> and keyword results in parse error).
|
|
|
|
(ilutov)
|
2024-06-29 02:16:19 +08:00
|
|
|
|
2024-06-28 23:51:31 +08:00
|
|
|
- Dom:
|
|
|
|
. Fixed bug GH-14702 (DOMDocument::xinclude() crash). (nielsdos)
|
|
|
|
|
2024-07-11 20:09:40 +08:00
|
|
|
- Fileinfo:
|
|
|
|
. Fixed bug GH-14888 (README.REDIST.BINS refers to non-existing LICENSE).
|
|
|
|
(cmb)
|
|
|
|
|
2024-07-10 20:20:31 +08:00
|
|
|
- Gd:
|
|
|
|
. ext/gd/tests/gh10614.phpt: skip if no PNG support. (orlitzky)
|
2024-03-21 18:22:46 +08:00
|
|
|
. restored warning instead of fata error. (dryabov)
|
2024-07-10 20:20:31 +08:00
|
|
|
|
2024-06-29 21:39:11 +08:00
|
|
|
- LibXML:
|
|
|
|
. Fixed bug GH-14563 (Build failure with libxml2 v2.13.0). (nielsdos)
|
|
|
|
|
2024-07-07 03:39:32 +08:00
|
|
|
- Opcache:
|
|
|
|
. Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that
|
|
|
|
opcache.jit is implictly disabled). (nielsdos)
|
|
|
|
|
2024-07-04 19:48:42 +08:00
|
|
|
- Output:
|
|
|
|
. Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with
|
|
|
|
empty output buffer). (nielsdos)
|
|
|
|
|
2024-06-29 18:53:34 +08:00
|
|
|
- PDO:
|
|
|
|
. Fixed bug GH-14712 (Crash with PDORow access to null property).
|
|
|
|
(David Carlier)
|
|
|
|
|
2024-06-20 12:57:05 +08:00
|
|
|
- Phar:
|
|
|
|
. Fixed bug GH-14603 (null string from zip entry).
|
|
|
|
(David Carlier)
|
|
|
|
|
2024-06-20 03:45:05 +08:00
|
|
|
- PHPDBG:
|
|
|
|
. Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1).
|
|
|
|
(David Carlier)
|
2024-07-05 00:07:00 +08:00
|
|
|
. Fixed bug GH-14553 (echo output trimmed at NULL byte). (nielsdos)
|
2024-06-20 03:45:05 +08:00
|
|
|
|
2024-06-29 00:26:47 +08:00
|
|
|
- Shmop:
|
2024-07-03 13:39:29 +08:00
|
|
|
. Fixed bug GH-14537 (shmop Windows 11 crashes the process). (nielsdos)
|
|
|
|
|
2024-07-07 04:46:27 +08:00
|
|
|
- SPL:
|
|
|
|
. Fixed bug GH-14639 (Member access within null pointer in
|
|
|
|
ext/spl/spl_observer.c). (nielsdos)
|
|
|
|
|
2024-07-03 13:39:29 +08:00
|
|
|
- Standard:
|
|
|
|
. Fixed bug GH-14775 (range function overflow with negative step argument).
|
|
|
|
(David Carlier)
|
2024-07-04 21:56:04 +08:00
|
|
|
. Fix 32-bit wordwrap test failures. (orlitzky)
|
2024-07-04 05:07:38 +08:00
|
|
|
. Fixed bug GH-14774 (time_sleep_until overflow). (David Carlier)
|
2024-06-19 07:05:24 +08:00
|
|
|
|
2024-07-12 18:13:44 +08:00
|
|
|
- Streams:
|
|
|
|
. Fixed bug GH-14930 (Custom stream wrapper dir_readdir output truncated to
|
|
|
|
255 characters in PHP 8.3). (Joe Cai)
|
|
|
|
|
2024-07-08 03:53:58 +08:00
|
|
|
- Tidy:
|
|
|
|
. Fix memory leak in tidy_repair_file(). (nielsdos)
|
|
|
|
|
2024-07-04 21:32:05 +08:00
|
|
|
- Treewide:
|
|
|
|
. Fix compatibility with libxml2 2.13.2. (nielsdos)
|
|
|
|
|
2024-07-06 19:46:42 +08:00
|
|
|
- XML:
|
|
|
|
. Move away from to-be-deprecated libxml fields. (nielsdos)
|
2024-07-06 05:34:09 +08:00
|
|
|
. Fixed bug GH-14834 (Error installing PHP when --with-pear is used).
|
|
|
|
(nielsdos)
|
2024-07-06 19:46:42 +08:00
|
|
|
|
2024-06-19 07:05:24 +08:00
|
|
|
20 Jun 2024, PHP 8.3.9
|
2024-05-21 22:48:56 +08:00
|
|
|
|
2024-05-25 20:47:30 +08:00
|
|
|
- Core:
|
|
|
|
. Fixed bug GH-14315 (Incompatible pointer type warnings). (Peter Kokot)
|
2024-03-02 00:47:21 +08:00
|
|
|
. Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14
|
|
|
|
when running on Apple Silicon). (Manuel Kress)
|
2024-06-01 08:38:55 +08:00
|
|
|
. Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from
|
|
|
|
values during Generator->throw()). (Bob)
|
2024-06-05 00:24:19 +08:00
|
|
|
. Fixed bug GH-14456 (Attempting to initialize class with private constructor
|
|
|
|
calls destructor). (Girgias)
|
2024-06-09 00:51:46 +08:00
|
|
|
. Fixed bug GH-14510 (memleak due to missing pthread_attr_destroy()-call).
|
|
|
|
(Florian Engelhardt)
|
2024-06-13 17:51:45 +08:00
|
|
|
. Fixed bug GH-14549 (Incompatible function pointer type for fclose).
|
|
|
|
(Ryan Carsten Schmidt)
|
2024-05-25 20:47:30 +08:00
|
|
|
|
2024-07-03 13:53:33 +08:00
|
|
|
- BCMath:
|
2024-05-30 22:47:25 +08:00
|
|
|
. Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0). (Girgias)
|
|
|
|
|
2024-05-24 04:20:37 +08:00
|
|
|
- Curl:
|
|
|
|
. Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0). (nielsdos)
|
|
|
|
|
2024-05-29 23:49:07 +08:00
|
|
|
- DOM:
|
|
|
|
. Fixed bug GH-14343 (Memory leak in xml and dom). (nielsdos)
|
|
|
|
|
2024-04-17 00:48:58 +08:00
|
|
|
- FPM:
|
|
|
|
. Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are
|
|
|
|
ignored in status pool). (Wilhansen Li, Pierrick Charron)
|
|
|
|
|
2024-06-05 14:57:18 +08:00
|
|
|
- GD:
|
|
|
|
. Fix parameter numbers for imagecolorset(). (Giovanni Giacobbi)
|
|
|
|
|
2024-06-02 01:33:28 +08:00
|
|
|
- Intl:
|
|
|
|
. Fix reference handling in SpoofChecker. (nielsdos)
|
|
|
|
|
2024-05-25 23:34:41 +08:00
|
|
|
- MySQLnd:
|
|
|
|
. Partially fix bug GH-10599 (Apache crash on Windows when using a
|
|
|
|
self-referencing anonymous function inside a class with an active
|
|
|
|
mysqli connection). (nielsdos)
|
|
|
|
|
2024-05-22 18:20:24 +08:00
|
|
|
- Opcache:
|
|
|
|
. Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime).
|
|
|
|
(ilutov)
|
2024-05-28 20:20:17 +08:00
|
|
|
. Fixed TLS access in JIT on FreeBSD/amd64. (Arnaud)
|
2023-05-13 02:04:51 +08:00
|
|
|
. Fixed bug GH-11188 (Error when building TSRM in ARM64). (nielsdos)
|
2024-05-22 18:20:24 +08:00
|
|
|
|
2024-06-04 23:50:53 +08:00
|
|
|
- PDO ODBC:
|
|
|
|
. Fixed bug GH-14367 (incompatible SDWORD type with iODBC). (Calvin Buckley)
|
|
|
|
|
2024-06-09 05:00:19 +08:00
|
|
|
- PHPDBG:
|
|
|
|
. Fixed bug GH-13681 (segfault on watchpoint addition failure). (David Carlier)
|
|
|
|
|
2024-05-25 22:11:43 +08:00
|
|
|
- Soap:
|
|
|
|
. Fixed bug #47925 (PHPClient can't decompress response). (nielsdos)
|
2024-06-01 00:19:00 +08:00
|
|
|
. Fix missing error restore code. (nielsdos)
|
2024-05-31 05:34:39 +08:00
|
|
|
. Fix memory leak if calling SoapServer::setObject() twice. (nielsdos)
|
2024-05-31 05:41:56 +08:00
|
|
|
. Fix memory leak if calling SoapServer::setClass() twice. (nielsdos)
|
2024-05-31 05:48:48 +08:00
|
|
|
. Fix reading zlib ini settings in ext-soap. (nielsdos)
|
2024-06-01 02:37:26 +08:00
|
|
|
. Fix memory leaks with string function name lookups. (nielsdos)
|
2024-06-01 19:29:26 +08:00
|
|
|
. Fixed bug #69280 (SoapClient classmap doesn't support fully qualified class
|
|
|
|
name). (nielsdos)
|
2024-06-01 20:51:18 +08:00
|
|
|
. Fixed bug #76232 (SoapClient Cookie Header Semicolon). (nielsdos)
|
2024-06-17 02:45:27 +08:00
|
|
|
. Fixed memory leaks when calling SoapFault::__construct() twice. (Girgias)
|
2024-05-25 22:11:43 +08:00
|
|
|
|
2024-05-24 02:41:46 +08:00
|
|
|
- Sodium:
|
|
|
|
. Fix memory leaks in ext/sodium on failure of some functions. (nielsdos)
|
|
|
|
|
2024-05-22 01:42:11 +08:00
|
|
|
- SPL:
|
|
|
|
. Fixed bug GH-14290 (Member access within null pointer in extension spl).
|
|
|
|
(nielsdos)
|
2024-05-21 22:48:56 +08:00
|
|
|
|
2024-06-13 21:04:42 +08:00
|
|
|
- Standard:
|
|
|
|
. Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract
|
|
|
|
namespace Unix sockets). (Derick)
|
|
|
|
|
Fix GH-11078: PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors
Although the issue was demonstrated using Curl, the issue is purely in
the streams layer of PHP.
Full analysis is written in GH-11078 [1], but here is the brief version:
Here's what actually happens:
1) We're creating a FILE handle from a stream using the casting mechanism.
This will create a cookie-based FILE handle using funopen.
2) We're reading stream data using fread from the userspace stream. This will
temporarily set a buffer into a field _bf.base [2]. This buffer is now equal
to the upload buffer that Curl allocated and note that that buffer is owned
by Curl.
3) The fatal error occurs and we bail out from the fread function, notice how
the reset code is never executed and so the buffer will still point to
Curl's upload buffer instead of FILE's own buffer [3].
4) The resources are destroyed, this includes our opened stream and because the
FILE handle is cached, it gets destroyed as well.
In fact, the stream code calls through fclose on purpose in this case.
5) The fclose code frees the _bs.base buffer [4].
However, this is not the buffer that FILE owns but the one that Curl owns
because it isn't reset properly due to the bailout!
6) The objects are getting destroyed, and so the curl free logic is invoked.
When Curl tries to gracefully clean up, it tries to free the buffer.
But that buffer is actually already freed mistakingly by the C library!
This also explains why we can't reproduce it on Linux: this bizarre buffer
swapping only happens on macOS and BSD, not on Linux.
To solve this, we switch to an unbuffered mode for cookie-based FILEs.
This avoids any stateful problems related to buffers especially when the
bailout mechanism triggers. As streams have their own buffering
mechanism, I don't expect this to impact performance.
[1] https://github.com/php/php-src/issues/11078#issuecomment-2155616843
[2] https://github.com/apple-open-source-mirror/Libc/blob/5e566be7a7047360adfb35ffc44c6a019a854bea/stdio/FreeBSD/fread.c#L102-L103
[3] https://github.com/apple-open-source-mirror/Libc/blob/5e566be7a7047360adfb35ffc44c6a019a854bea/stdio/FreeBSD/fread.c#L117
[4] https://github.com/apple-open-source-mirror/Libc/blob/5e566be7a7047360adfb35ffc44c6a019a854bea/stdio/FreeBSD/fclose.c#L66-L67
Closes GH-14524.
2024-06-09 22:18:11 +08:00
|
|
|
- Streams:
|
|
|
|
. Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not
|
|
|
|
allocated and malloc: double free for ptr errors). (nielsdos)
|
|
|
|
|
2024-06-06 01:21:52 +08:00
|
|
|
06 Jun 2024, PHP 8.3.8
|
2024-04-24 02:27:29 +08:00
|
|
|
|
2024-04-21 03:03:48 +08:00
|
|
|
- CGI:
|
|
|
|
. Fixed buffer limit on Windows, replacing read call usage by _read.
|
|
|
|
(David Carlier)
|
2024-06-05 20:59:43 +08:00
|
|
|
. Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection
|
|
|
|
in PHP-CGI). (CVE-2024-4577) (nielsdos)
|
2024-04-21 03:03:48 +08:00
|
|
|
|
2024-05-10 21:53:04 +08:00
|
|
|
- CLI:
|
|
|
|
. Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles
|
|
|
|
quoted heredoc literals.). (nielsdos)
|
|
|
|
|
2024-05-02 00:32:07 +08:00
|
|
|
- Core:
|
|
|
|
. Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for
|
|
|
|
non-compile-time expressions). (ilutov)
|
|
|
|
|
2024-05-01 02:29:37 +08:00
|
|
|
- DOM:
|
|
|
|
. Fix crashes when entity declaration is removed while still having entity
|
|
|
|
references. (nielsdos)
|
2024-05-01 02:50:30 +08:00
|
|
|
. Fix references not handled correctly in C14N. (nielsdos)
|
2024-05-01 03:09:29 +08:00
|
|
|
. Fix crash when calling childNodes next() when iterator is exhausted.
|
|
|
|
(nielsdos)
|
2024-05-12 01:44:02 +08:00
|
|
|
. Fix crash in ParentNode::append() when dealing with a fragment
|
|
|
|
containing text nodes. (nielsdos)
|
2024-04-24 02:27:29 +08:00
|
|
|
|
2024-06-05 20:59:43 +08:00
|
|
|
- Filter:
|
|
|
|
. Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL).
|
|
|
|
(CVE-2024-5458) (nielsdos)
|
|
|
|
|
2024-05-08 18:33:52 +08:00
|
|
|
- FPM:
|
|
|
|
. Fix bug GH-14175 (Show decimal number instead of scientific notation in
|
|
|
|
systemd status). (Benjamin Cremer)
|
|
|
|
|
2024-05-10 08:37:13 +08:00
|
|
|
- Hash:
|
|
|
|
. ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__`
|
|
|
|
(Saki Takamachi)
|
|
|
|
|
2024-05-11 02:33:19 +08:00
|
|
|
- Intl:
|
|
|
|
. Fixed build regression on systems without C++17 compilers. (Calvin Buckley,
|
|
|
|
Peter Kokot)
|
|
|
|
|
2024-05-17 03:35:03 +08:00
|
|
|
- MySQLnd:
|
|
|
|
. Fix bug GH-14255 (mysqli_fetch_assoc reports error from
|
|
|
|
nested query). (Kamil Tekiela)
|
|
|
|
|
2024-05-03 03:11:29 +08:00
|
|
|
- Opcache:
|
|
|
|
. Fixed bug GH-14109 (Fix accidental persisting of internal class constant in
|
|
|
|
shm). (ilutov)
|
|
|
|
|
2024-06-05 20:59:43 +08:00
|
|
|
- OpenSSL:
|
|
|
|
. The openssl_private_decrypt function in PHP, when using PKCS1 padding
|
|
|
|
(OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack
|
|
|
|
unless it is used with an OpenSSL version that includes the changes from this pull
|
|
|
|
request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection).
|
|
|
|
These changes are part of OpenSSL 3.2 and have also been backported to stable
|
|
|
|
versions of various Linux distributions, as well as to the PHP builds provided for
|
|
|
|
Windows since the previous release. All distributors and builders should ensure that
|
|
|
|
this version is used to prevent PHP from being vulnerable. (CVE-2024-2408)
|
|
|
|
|
|
|
|
- Standard:
|
|
|
|
. Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874).
|
|
|
|
(CVE-2024-5585) (nielsdos)
|
|
|
|
|
2024-05-04 19:57:50 +08:00
|
|
|
- XML:
|
|
|
|
. Fixed bug GH-14124 (Segmentation fault with XML extension under certain
|
|
|
|
memory limit). (nielsdos)
|
|
|
|
|
2024-05-10 21:17:29 +08:00
|
|
|
- XMLReader:
|
|
|
|
. Fixed bug GH-14183 (XMLReader::open() can't be overridden). (nielsdos)
|
|
|
|
|
2024-04-24 02:27:29 +08:00
|
|
|
09 May 2024, PHP 8.3.7
|
2024-03-27 00:08:14 +08:00
|
|
|
|
2024-03-31 01:37:51 +08:00
|
|
|
- Core:
|
|
|
|
. Fixed zend_call_stack build with Linux/uclibc-ng without thread support.
|
|
|
|
(Fabrice Fontaine)
|
2024-03-21 22:09:20 +08:00
|
|
|
. Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall
|
|
|
|
handlers when JIT is enabled). (Bob)
|
2024-04-11 02:26:16 +08:00
|
|
|
. Fixed bug GH-13931 (Applying zero offset to null pointer in
|
|
|
|
Zend/zend_opcode.c). (nielsdos)
|
2024-04-16 20:20:05 +08:00
|
|
|
. Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with
|
|
|
|
other timeout implementations). (Kévin Dunglas)
|
2024-04-19 21:19:02 +08:00
|
|
|
. Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert
|
|
|
|
parameters). (ilutov)
|
2024-04-21 23:23:22 +08:00
|
|
|
. Fixed bug GH-14013 (Erroneous dnl appended in configure). (Peter Kokot)
|
2024-02-16 23:23:12 +08:00
|
|
|
. Fixed bug GH-10232 (If autoloading occurs during constant resolution
|
|
|
|
filename and lineno are identified incorrectly). (ranvis)
|
2024-04-23 03:21:40 +08:00
|
|
|
. Fixed bug GH-13727 (Missing void keyword). (Peter Kokot)
|
2024-03-21 22:09:20 +08:00
|
|
|
|
2024-04-09 02:09:24 +08:00
|
|
|
- Fibers:
|
|
|
|
. Fixed bug GH-13903 (ASAN false positive underflow when executing copy()).
|
|
|
|
(nielsdos)
|
|
|
|
|
2024-04-11 06:25:20 +08:00
|
|
|
- Fileinfo:
|
|
|
|
. Fixed bug GH-13795 (Test failing in ext/fileinfo/tests/bug78987.phpt on
|
|
|
|
big-endian PPC). (orlitzky)
|
|
|
|
|
2024-03-30 00:05:13 +08:00
|
|
|
- FPM:
|
|
|
|
. Fixed bug GH-13563 (Setting bool values via env in FPM config fails).
|
|
|
|
(Jakub Zelenka)
|
2024-03-26 20:49:44 +08:00
|
|
|
|
2024-02-18 05:38:21 +08:00
|
|
|
- Intl:
|
|
|
|
. Fixed build for icu 74 and onwards. (dunglas)
|
|
|
|
|
2024-04-05 01:29:04 +08:00
|
|
|
- MySQLnd:
|
|
|
|
. Fix shift out of bounds on 32-bit non-fast-path platforms. (nielsdos)
|
|
|
|
|
2024-03-24 00:19:54 +08:00
|
|
|
- Opcache:
|
|
|
|
. Fixed bug GH-13433 (Segmentation Fault in zend_class_init_statics when
|
|
|
|
using opcache.preload). (nielsdos)
|
2024-04-17 20:09:08 +08:00
|
|
|
. Fixed incorrect assumptions across compilation units for static calls.
|
|
|
|
(ilutov)
|
2024-03-27 00:08:14 +08:00
|
|
|
|
2023-12-22 04:12:02 +08:00
|
|
|
- OpenSSL:
|
|
|
|
. Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely).
|
|
|
|
(Jakub Zelenka)
|
|
|
|
|
2024-04-18 07:35:50 +08:00
|
|
|
- PDO SQLite:
|
|
|
|
. Fix GH-13984 (Buffer size is now checked before memcmp). (Saki Takamachi)
|
2024-04-20 21:33:25 +08:00
|
|
|
. Fix GH-13998 (Manage refcount of agg_context->val correctly).
|
|
|
|
(Saki Takamachi)
|
2024-04-18 07:35:50 +08:00
|
|
|
|
2024-03-30 18:53:01 +08:00
|
|
|
- Phar:
|
|
|
|
. Fixed bug GH-13836 (Renaming a file in a Phar to an already existing
|
|
|
|
filename causes a NULL pointer dereference). (nielsdos)
|
2024-03-31 08:17:49 +08:00
|
|
|
. Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c).
|
|
|
|
(nielsdos)
|
2024-04-08 14:49:17 +08:00
|
|
|
. Fix potential NULL pointer dereference before calling EVP_SignInit. (icy17)
|
2024-03-30 18:53:01 +08:00
|
|
|
|
2024-03-29 07:38:15 +08:00
|
|
|
- PHPDBG:
|
|
|
|
. Fixed bug GH-13827 (Null pointer access of type 'zval' in phpdbg_frame).
|
|
|
|
(nielsdos)
|
|
|
|
|
2024-04-11 19:32:02 +08:00
|
|
|
- Posix:
|
|
|
|
. Fix usage of reentrant functions in ext/posix. (Arnaud)
|
|
|
|
|
2024-04-01 19:39:38 +08:00
|
|
|
- Session:
|
|
|
|
. Fixed bug GH-13856 (Member access within null pointer of type 'ps_files' in
|
|
|
|
ext/session/mod_files.c). (nielsdos)
|
2024-04-06 19:44:34 +08:00
|
|
|
. Fixed bug GH-13891 (memleak and segfault when using ini_set with
|
2024-04-08 21:03:21 +08:00
|
|
|
session.trans_sid_hosts). (nielsdos, kamil-tekiela)
|
2024-04-20 22:40:01 +08:00
|
|
|
. Fixed buffer _read/_write size limit on windows for the file mode. (David Carlier)
|
2024-04-01 19:39:38 +08:00
|
|
|
|
2024-04-14 21:32:10 +08:00
|
|
|
- Streams:
|
2024-04-12 21:17:45 +08:00
|
|
|
. Fixed file_get_contents() on Windows fails with "errno=22 Invalid
|
|
|
|
argument". (Damian Wójcik)
|
2024-03-23 21:09:46 +08:00
|
|
|
. Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure).
|
|
|
|
(Jakub Zelenka)
|
2024-04-06 05:21:32 +08:00
|
|
|
. Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in
|
|
|
|
ext/openssl/xp_ssl.c - causing use of dead socket). (nielsdos)
|
2024-04-08 21:03:21 +08:00
|
|
|
. Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64). (Arnaud)
|
2024-03-23 21:09:46 +08:00
|
|
|
|
2024-03-27 22:49:18 +08:00
|
|
|
- Treewide:
|
|
|
|
. Fix gcc-14 Wcalloc-transposed-args warnings. (Cristian Rodríguez)
|
|
|
|
|
2024-03-27 00:08:14 +08:00
|
|
|
28 Mar 2024, PHP 8.3.5RC1
|
2024-02-28 19:46:49 +08:00
|
|
|
|
2024-03-05 19:19:59 +08:00
|
|
|
- Core:
|
|
|
|
. Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when
|
|
|
|
scanning WeakMaps). (Arnaud)
|
2024-03-07 06:14:47 +08:00
|
|
|
. Fixed bug GH-13612 (Corrupted memory in destructor with weak references).
|
|
|
|
(nielsdos)
|
2024-03-12 23:32:25 +08:00
|
|
|
. Fixed bug GH-13446 (Restore exception handler after it finishes). (ilutov)
|
2024-03-22 18:39:46 +08:00
|
|
|
. Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure). (Remi)
|
2024-03-25 23:23:44 +08:00
|
|
|
. Fixed bug GH-13670 (GC does not scale well with a lot of objects created in
|
|
|
|
destructor). (Arnaud)
|
2024-03-05 19:19:59 +08:00
|
|
|
|
2024-03-09 21:58:57 +08:00
|
|
|
- DOM:
|
|
|
|
. Add some missing ZPP checks. (nielsdos)
|
2024-03-15 04:08:25 +08:00
|
|
|
. Fix potential memory leak in XPath evaluation results. (nielsdos)
|
2024-03-09 21:58:57 +08:00
|
|
|
|
2024-02-09 00:34:19 +08:00
|
|
|
- FPM:
|
|
|
|
. Fixed GH-11086 (FPM: config test runs twice in daemonised mode).
|
|
|
|
(Jakub Zelenka)
|
2024-03-22 21:08:00 +08:00
|
|
|
. Fixed incorrect check in fpm_shm_free(). (nielsdos)
|
2024-02-09 00:34:19 +08:00
|
|
|
|
2024-03-16 00:52:29 +08:00
|
|
|
- GD:
|
|
|
|
. Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests). (Michael Orlitzky)
|
|
|
|
|
2024-02-29 06:43:04 +08:00
|
|
|
- Gettext:
|
2024-03-05 19:19:59 +08:00
|
|
|
. Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5
|
2024-02-29 06:43:04 +08:00
|
|
|
with category set to LC_ALL. (David Carlier)
|
|
|
|
|
2024-03-04 20:53:09 +08:00
|
|
|
- MySQLnd:
|
|
|
|
. Fix GH-13452 (Fixed handshake response [mysqlnd]). (Saki Takamachi)
|
2024-03-22 07:36:22 +08:00
|
|
|
. Fix incorrect charset length in check_mb_eucjpms(). (nielsdos)
|
2024-03-04 20:53:09 +08:00
|
|
|
|
2024-03-11 22:14:28 +08:00
|
|
|
- Opcache:
|
|
|
|
. Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null).
|
|
|
|
(Arnaud, Dmitry)
|
2024-03-19 02:02:42 +08:00
|
|
|
. Fixed GH-13712 (Segmentation fault for enabled observers when calling trait
|
|
|
|
method of internal trait when opcache is loaded). (Bob)
|
2024-03-11 22:14:28 +08:00
|
|
|
|
2024-03-01 01:07:00 +08:00
|
|
|
- Random:
|
2024-03-11 22:14:28 +08:00
|
|
|
. Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown
|
|
|
|
modes). (timwolla)
|
2024-03-14 03:13:48 +08:00
|
|
|
. Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between
|
|
|
|
requests when MT_RAND_PHP is used). (timwolla)
|
2024-02-28 19:46:49 +08:00
|
|
|
|
2024-03-13 04:10:53 +08:00
|
|
|
- Session:
|
|
|
|
. Fixed bug GH-13680 (Segfault with session_decode and compilation error).
|
|
|
|
(nielsdos)
|
|
|
|
|
2024-02-28 05:09:06 +08:00
|
|
|
- SPL:
|
2024-03-13 04:38:15 +08:00
|
|
|
. Fixed bug GH-13685 (Unexpected null pointer in zend_string.h). (nielsdos)
|
2024-02-28 05:09:06 +08:00
|
|
|
|
2024-03-02 00:44:14 +08:00
|
|
|
- Standard:
|
|
|
|
. Fixed bug GH-11808 (Live filesystem modified by tests). (nielsdos)
|
2024-03-04 20:53:09 +08:00
|
|
|
. Fixed GH-13402 (Added validation of `\n` in $additional_headers of mail()).
|
|
|
|
(SakiTakamachi)
|
2024-01-21 02:38:49 +08:00
|
|
|
. Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows).
|
|
|
|
(divinity76)
|
2024-04-10 12:41:29 +08:00
|
|
|
. Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command
|
|
|
|
parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka)
|
|
|
|
. Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to
|
|
|
|
partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos)
|
|
|
|
. Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true,
|
|
|
|
opening ATO risk). (CVE-2024-3096) (Jakub Zelenka)
|
2024-04-10 12:53:27 +08:00
|
|
|
. Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some
|
|
|
|
inputs). (CVE-2024-2757) (Alex Dowad)
|
2024-03-02 00:44:14 +08:00
|
|
|
|
2024-02-28 19:46:49 +08:00
|
|
|
14 Mar 2024, PHP 8.3.4
|
2024-01-31 04:42:45 +08:00
|
|
|
|
2024-02-14 04:55:24 +08:00
|
|
|
- Core:
|
|
|
|
. Fix ZTS persistent resource crashes on shutdown. (nielsdos)
|
|
|
|
|
2024-02-01 03:03:55 +08:00
|
|
|
- Curl:
|
|
|
|
. Fix failing tests due to string changes in libcurl 8.6.0. (Ayesh)
|
2024-01-31 01:43:37 +08:00
|
|
|
|
2024-02-06 05:48:00 +08:00
|
|
|
- DOM:
|
|
|
|
. Fix unlikely memory leak in case of namespace removal with extremely deep
|
|
|
|
trees. (nielsdos)
|
2024-02-26 05:59:20 +08:00
|
|
|
. Fix reference access in dimensions for DOMNodeList and DOMNodeMap.
|
|
|
|
(nielsdos)
|
2024-02-06 05:48:00 +08:00
|
|
|
|
2024-02-11 08:02:57 +08:00
|
|
|
- Fileinfo:
|
|
|
|
. Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null),
|
|
|
|
backport). (nielsdos)
|
|
|
|
|
2024-01-19 22:41:46 +08:00
|
|
|
- FPM:
|
|
|
|
. Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER).
|
|
|
|
(Jakub Zelenka)
|
|
|
|
|
Fix detection of image formats in system gd library
- Use gdFontCacheShutdown() to detect freetype
Currently we look for gdImageStringFT() to determine whether or not gd
has freetype support... but that function always exists. This leads
PHP to believe that gd has freetype support when it does not, and can
lead to build failures.
The gdFontCacheShutdown() function, on the other hand, is only present
when gd was built with freetype support. Let's use that instead.
- Fix GD image format detection
We currently check for, say, AVIF support by attempting to link a
program that calls libgd's gdImageCreateFromAvif() function. But
perversely, that function always exists in libgd; moreover when AVIF
support is missing it emits a warning and returns normally. Thus
our straightforward link test becomes not so straightforward.
This commit adds a new macro PHP_GD_CHECK_FORMAT that compiles, links,
and runs a test program instead. The test program overrides that "emit
a warning" handler so that the program actually fails if the format
we're looking for is not supported. This fixes detection of AVIF and
the other formats we check for in an external libgd.
- ext/gd/tests/bug77391.phpt: skip if gd lacks BMP support
I don't actually know how to remove BMP support from libgd, but PHP
has a ./configure test for it, so we should probably treat it as
optional.
Closes GH-12019
2024-02-26 20:59:21 +08:00
|
|
|
- GD:
|
|
|
|
. Fixed bug GH-12019 (detection of image formats in system gd library).
|
|
|
|
(Michael Orlitzky)
|
|
|
|
|
2024-02-10 09:26:52 +08:00
|
|
|
- MySQLnd:
|
|
|
|
. Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error
|
|
|
|
if CR_SERVER_GONE_ERROR is already set). (Saki Takamachi)
|
|
|
|
|
2024-02-27 23:31:48 +08:00
|
|
|
- PDO:
|
|
|
|
. Fix various PDORow bugs. (Girgias)
|
|
|
|
|
2024-02-09 02:16:57 +08:00
|
|
|
- PGSQL:
|
|
|
|
. Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute
|
|
|
|
with null value passed by reference). (George Barbarosie)
|
|
|
|
|
2024-02-28 06:05:26 +08:00
|
|
|
- SPL:
|
|
|
|
. Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized
|
|
|
|
in PHP 8.2.15). (nielsdos)
|
|
|
|
|
2024-01-31 20:15:49 +08:00
|
|
|
- Standard:
|
|
|
|
. Fixed bug GH-13279 (Instable array during in-place modification in uksort).
|
|
|
|
(ilutov)
|
2024-02-05 00:17:36 +08:00
|
|
|
. Fixed array key as hash to string (case insensitive) comparison typo
|
|
|
|
for the second operand buffer size (albeit unused for now). (A. Slepykh)
|
2024-01-02 23:50:36 +08:00
|
|
|
|
2024-02-28 04:49:39 +08:00
|
|
|
- XML:
|
|
|
|
. Fixed bug GH-13517 (Multiple test failures when building with
|
|
|
|
--with-expat). (nielsdos)
|
|
|
|
|
2024-02-06 05:55:52 +08:00
|
|
|
15 Feb 2024, PHP 8.3.3
|
2024-02-06 05:48:00 +08:00
|
|
|
|
2024-01-06 02:46:27 +08:00
|
|
|
- Core:
|
|
|
|
. Fixed timer leak in zend-max-execution-timers builds. (withinboredom)
|
2024-01-10 16:06:41 +08:00
|
|
|
. Fixed bug GH-12349 (linking failure on ARM with mold). (Jan Palus)
|
2024-01-16 03:21:30 +08:00
|
|
|
. Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown
|
|
|
|
Exception). (nielsdos)
|
2024-01-18 00:13:35 +08:00
|
|
|
. Fixed bug GH-13177 (PHP 8.3.2: final private constructor not allowed
|
|
|
|
when used in trait). (nielsdos)
|
2024-01-22 17:59:34 +08:00
|
|
|
. Fixed bug GH-13215 (GCC 14 build failure). (Remi)
|
2024-01-10 03:13:22 +08:00
|
|
|
|
2024-01-16 05:11:47 +08:00
|
|
|
- Curl:
|
|
|
|
. Fix missing error check in curl_multi_init(). (divinity76)
|
|
|
|
|
2024-01-04 22:51:20 +08:00
|
|
|
- FPM:
|
|
|
|
. Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when
|
|
|
|
plus in path). (Jakub Zelenka)
|
|
|
|
|
2024-01-25 05:12:49 +08:00
|
|
|
- GD:
|
|
|
|
. Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path).
|
|
|
|
(nielsdos)
|
2024-01-26 06:30:23 +08:00
|
|
|
. Fixed bug GH-10614 (imagerotate will turn the picture all black, when
|
|
|
|
rotated 90). (nielsdos)
|
2024-01-25 05:12:49 +08:00
|
|
|
|
2023-12-23 06:24:34 +08:00
|
|
|
- LibXML:
|
|
|
|
. Fix crashes with entity references and predefined entities. (nielsdos)
|
|
|
|
|
2023-11-24 21:47:34 +08:00
|
|
|
- MySQLnd:
|
|
|
|
. Fixed bug GH-12107 (When running a stored procedure (that returns a result
|
|
|
|
set) twice, PHP crashes). (nielsdos)
|
|
|
|
|
2024-01-15 01:10:05 +08:00
|
|
|
- Opcache:
|
|
|
|
. Fixed bug GH-13145 (strtok() is not comptime). (ilutov)
|
2024-01-17 02:54:18 +08:00
|
|
|
. Fixed type inference of range(). (ilutov)
|
2024-01-24 02:59:40 +08:00
|
|
|
. Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but
|
|
|
|
JIT_debug is still on). (nielsdos)
|
2024-01-15 01:10:05 +08:00
|
|
|
|
2023-12-10 11:37:13 +08:00
|
|
|
- OpenSSL:
|
|
|
|
. Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set.
|
|
|
|
(David Carlier).
|
|
|
|
|
2024-01-13 23:30:21 +08:00
|
|
|
- PDO_Firebird:
|
2024-04-10 09:00:14 +08:00
|
|
|
. Fix GH-13119 (Changed to convert float and double values into strings using
|
2024-01-13 23:30:21 +08:00
|
|
|
`H` format). (SakiTakamachi)
|
|
|
|
|
2024-01-04 03:23:56 +08:00
|
|
|
- Phar:
|
|
|
|
. Fixed bug #71465 (PHAR doesn't know about litespeed). (nielsdos)
|
2023-12-29 05:41:32 +08:00
|
|
|
. Fixed bug GH-13037 (PharData incorrectly extracts zip file). (nielsdos)
|
2024-01-02 23:50:36 +08:00
|
|
|
|
2024-01-14 20:01:29 +08:00
|
|
|
- Random:
|
|
|
|
. Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken
|
|
|
|
engines). (timwolla)
|
|
|
|
|
2024-01-21 06:04:33 +08:00
|
|
|
- Session:
|
|
|
|
. Fixed bug GH-12504 (Corrupted session written when there's a fatal error
|
|
|
|
in autoloader). (nielsdos)
|
|
|
|
|
2024-01-10 03:13:22 +08:00
|
|
|
- Standard:
|
|
|
|
. Fixed bug GH-13094 (range(9.9, '0') causes segmentation fault). (nielsdos)
|
|
|
|
|
2024-01-13 07:28:57 +08:00
|
|
|
- Streams:
|
|
|
|
. Fixed bug GH-13071 (Copying large files using mmap-able source streams may
|
|
|
|
exhaust available memory and fail). (nielsdos)
|
|
|
|
|
2024-01-02 23:50:36 +08:00
|
|
|
18 Jan 2024, PHP 8.3.2
|
2023-12-05 23:56:55 +08:00
|
|
|
|
2023-12-15 03:32:12 +08:00
|
|
|
- Core:
|
|
|
|
. Fixed bug GH-12953 (false positive SSA integrity verification failed when
|
|
|
|
loading composer classmaps with more than 11k elements). (nielsdos)
|
2023-12-28 06:26:37 +08:00
|
|
|
. Fixed bug GH-12999 (zend_strnlen build when strnlen is unsupported).
|
|
|
|
(rainerjung)
|
|
|
|
. Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf
|
|
|
|
doesn't emit warnings). (Peter Kokot)
|
|
|
|
. Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly
|
|
|
|
report visibility in Reflection). (nielsdos)
|
2023-12-15 03:32:12 +08:00
|
|
|
|
2023-12-07 02:57:35 +08:00
|
|
|
- Cli:
|
|
|
|
. Fix incorrect timeout in built-in web server when using router script and
|
|
|
|
max_input_time. (ilutov)
|
|
|
|
|
2023-12-09 00:19:17 +08:00
|
|
|
- DOM:
|
|
|
|
. Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException).
|
|
|
|
(nielsdos)
|
2023-12-23 04:12:59 +08:00
|
|
|
. Fix crash when toggleAttribute() is used without a document. (nielsdos)
|
2023-12-23 05:03:36 +08:00
|
|
|
. Fix crash in adoptNode with attribute references. (nielsdos)
|
2023-12-24 20:21:06 +08:00
|
|
|
. Fixed bug GH-13012 (DOMNode::isEqualNode() is incorrect when attribute
|
|
|
|
order is different). (nielsdos)
|
2023-12-09 00:19:17 +08:00
|
|
|
|
2023-12-11 06:30:04 +08:00
|
|
|
- FFI:
|
|
|
|
. Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\CData).
|
|
|
|
(Jakub Zelenka)
|
2023-12-09 00:44:03 +08:00
|
|
|
. Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos)
|
2023-12-11 06:30:04 +08:00
|
|
|
|
2024-01-10 04:40:22 +08:00
|
|
|
- GD:
|
|
|
|
. Fixed GH-13082 undefined behavior with GdFont instances handling with
|
|
|
|
imageload* and imagechar*. (David Carlier)
|
|
|
|
|
2023-12-15 14:03:19 +08:00
|
|
|
- Intl:
|
|
|
|
. Fixed GH-12943 (IntlDateFormatter::__construct accepts 'C' as valid locale).
|
|
|
|
(David Carlier)
|
|
|
|
|
2023-12-12 06:40:26 +08:00
|
|
|
- Hash:
|
|
|
|
. Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on
|
|
|
|
strings >= 4GiB). (nielsdos)
|
|
|
|
|
2024-01-29 02:39:17 +08:00
|
|
|
- MBString:
|
|
|
|
. When operating on a string with invalid encoding, mb_substr (as well
|
|
|
|
as mb_strstr and its variants) defines character indices in the same
|
|
|
|
way as other mbstring functions such as mb_strpos. (Alex Dowad)
|
|
|
|
|
2023-12-27 06:47:45 +08:00
|
|
|
- ODBC:
|
|
|
|
. Fix crash on Apache shutdown with persistent connections. (nielsdos)
|
|
|
|
|
2023-12-08 19:56:30 +08:00
|
|
|
- Opcache:
|
|
|
|
. Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM
|
|
|
|
with NULL when DIM is the same var as result). (ilutov)
|
2023-12-12 22:17:37 +08:00
|
|
|
. Added workaround for SELinux mprotect execheap issue.
|
|
|
|
See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov)
|
2023-12-08 19:56:30 +08:00
|
|
|
|
2023-12-22 00:42:09 +08:00
|
|
|
- OpenSSL:
|
|
|
|
. Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error).
|
|
|
|
(Jakub Zelenka)
|
|
|
|
|
2023-12-18 23:22:49 +08:00
|
|
|
- PDO:
|
|
|
|
. Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES).
|
|
|
|
(SakiTakamachi)
|
|
|
|
|
2023-11-25 20:22:50 +08:00
|
|
|
- PDO_ODBC:
|
|
|
|
. Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()).
|
|
|
|
(SakiTakamachi)
|
|
|
|
|
2023-12-20 01:42:52 +08:00
|
|
|
- PGSQL:
|
|
|
|
. Fixed auto_reset_persistent handling and allow_persistent type. (David Carlier)
|
2023-12-27 06:47:45 +08:00
|
|
|
. Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()).
|
|
|
|
(nielsdos)
|
2023-12-20 01:42:52 +08:00
|
|
|
|
2023-12-31 06:49:28 +08:00
|
|
|
- Phar:
|
|
|
|
. Fixed bug #77432 (Segmentation fault on including phar file). (nielsdos)
|
|
|
|
|
2023-12-17 08:35:15 +08:00
|
|
|
- PHPDBG:
|
|
|
|
. Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos)
|
|
|
|
|
2023-12-13 03:33:23 +08:00
|
|
|
- SimpleXML:
|
|
|
|
. Fix getting the address of an uninitialized property of a SimpleXMLElement
|
|
|
|
resulting in a crash. (nielsdos)
|
2023-12-13 04:05:58 +08:00
|
|
|
. Fixed bug GH-12929 (SimpleXMLElement with stream_wrapper_register can
|
|
|
|
segfault). (nielsdos)
|
2023-12-13 03:33:23 +08:00
|
|
|
|
2023-12-22 00:37:05 +08:00
|
|
|
- Tidy:
|
|
|
|
. Fixed bug GH-12980 (tidynode.props.attribute is missing
|
|
|
|
"Boolean Attributes" and empty attributes). (nielsdos)
|
|
|
|
|
2023-12-05 23:56:55 +08:00
|
|
|
07 Dec 2023, PHP 8.3.1RC1
|
2023-11-21 22:54:52 +08:00
|
|
|
|
2023-11-20 18:56:06 +08:00
|
|
|
- Core:
|
2023-11-25 07:57:22 +08:00
|
|
|
. Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within
|
|
|
|
ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC). (Florian Engelhardt)
|
2023-12-01 03:27:07 +08:00
|
|
|
. Fix various missing NULL checks. (nielsdos, dstogov)
|
2023-11-30 20:41:07 +08:00
|
|
|
. Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call).
|
|
|
|
(ilutov)
|
2023-11-30 03:35:13 +08:00
|
|
|
. Fixed bug GH-12826 (Weird pointers issue in nested loops). (nielsdos)
|
2023-11-20 18:56:06 +08:00
|
|
|
|
2023-11-18 00:32:23 +08:00
|
|
|
- FPM:
|
|
|
|
. Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval).
|
|
|
|
(Patrick Prasse)
|
2023-11-11 21:15:23 +08:00
|
|
|
|
2023-12-02 23:20:15 +08:00
|
|
|
- FTP:
|
|
|
|
. Fixed bug GH-9348 (FTP & SSL session reuse). (nielsdos)
|
2023-11-11 21:15:23 +08:00
|
|
|
|
2023-11-18 02:45:40 +08:00
|
|
|
- LibXML:
|
2023-11-30 03:49:29 +08:00
|
|
|
. Fixed test failures for libxml2 2.12.0. (nielsdos)
|
2023-11-18 02:45:40 +08:00
|
|
|
|
2023-08-25 23:43:01 +08:00
|
|
|
- MySQLnd:
|
|
|
|
. Avoid using uninitialised struct. (mikhainin)
|
2023-11-27 20:25:11 +08:00
|
|
|
. Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code).
|
|
|
|
(nielsdos)
|
2023-08-25 23:43:01 +08:00
|
|
|
|
2023-11-28 00:04:41 +08:00
|
|
|
- Opcache:
|
|
|
|
. Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning
|
|
|
|
at the same time as invalid offset Error). (Girgias)
|
2023-11-28 00:19:35 +08:00
|
|
|
. Fixed JIT bug (JIT emits "Attempt to assign property of non-object"
|
|
|
|
warning at the same time as Error is being thrown). (Girgias)
|
2023-11-28 00:04:41 +08:00
|
|
|
|
2023-12-03 15:59:21 +08:00
|
|
|
- PDO PGSQL:
|
|
|
|
. Fixed the default value of $fetchMode in PDO::pgsqlGetNotify() (kocsismate)
|
|
|
|
|
2023-12-01 03:43:50 +08:00
|
|
|
- SOAP:
|
|
|
|
. Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted).
|
|
|
|
(nielsdos)
|
|
|
|
|
2023-11-22 12:09:40 +08:00
|
|
|
- Standard
|
2023-11-22 12:14:37 +08:00
|
|
|
. Fixed GH-12745 (http_build_query() default null argument for $arg_separator
|
2023-11-22 12:09:40 +08:00
|
|
|
is implicitly coerced to string). (Girgias)
|
2023-11-21 22:54:52 +08:00
|
|
|
|
2023-11-21 22:00:51 +08:00
|
|
|
23 Nov 2023, PHP 8.3.0
|
2023-11-08 04:13:42 +08:00
|
|
|
|
2023-11-21 22:00:51 +08:00
|
|
|
- Bcmath
|
|
|
|
. Fixed GH-11761 (removing trailing zeros from numbers) (jorgsowa)
|
2022-08-16 23:39:53 +08:00
|
|
|
|
2022-02-09 02:28:24 +08:00
|
|
|
- CLI:
|
|
|
|
. Added pdeathsig to builtin server to terminate workers when the master
|
|
|
|
process is killed. (ilutov)
|
2023-05-01 05:33:41 +08:00
|
|
|
. Fixed bug GH-11104 (STDIN/STDOUT/STDERR is not available for CLI without
|
|
|
|
a script). (nielsdos)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Implement GH-10024 (support linting multiple files at once using php -l).
|
|
|
|
(nielsdos)
|
2022-02-09 02:28:24 +08:00
|
|
|
|
2022-08-26 22:33:47 +08:00
|
|
|
- Core:
|
2023-11-21 22:00:51 +08:00
|
|
|
. Fix GH-11388 (Allow "final" modifier when importing a method from a trait).
|
|
|
|
(nielsdos)
|
|
|
|
. Fixed bug GH-11406 (segfault with unpacking and magic method closure).
|
|
|
|
(nielsdos)
|
2022-08-26 22:33:47 +08:00
|
|
|
. Fixed bug GH-9388 (Improve unset property and __get type incompatibility
|
|
|
|
error message). (ilutov)
|
2022-09-27 05:02:56 +08:00
|
|
|
. SA_ONSTACK is now set for signal handlers to be friendlier to other
|
|
|
|
in-process code such as Go's cgo. (Kévin Dunglas)
|
2022-10-16 18:21:40 +08:00
|
|
|
. SA_ONSTACK is now set when signals are disabled. (Kévin Dunglas)
|
2022-10-22 17:17:27 +08:00
|
|
|
. Fix GH-9649: Signal handlers now do a no-op instead of crashing when
|
|
|
|
executed on threads not managed by TSRM. (Kévin Dunglas)
|
2022-07-26 18:52:48 +08:00
|
|
|
. Added shadow stack support for fibers. (Chen Hu)
|
2022-11-11 22:55:03 +08:00
|
|
|
. Fix bug GH-9965 (Fix accidental caching of default arguments with side
|
|
|
|
effects). (ilutov)
|
2023-01-05 21:24:44 +08:00
|
|
|
. Implement GH-10217 (Use strlen() for determining the class_name length).
|
|
|
|
(Dennis Buteyn)
|
2022-08-04 20:12:45 +08:00
|
|
|
. Fix bug GH-8821 (Improve line numbers for errors in constant expressions).
|
|
|
|
(ilutov)
|
2022-12-12 07:23:46 +08:00
|
|
|
. Fix bug GH-10083 (Allow comments between & and parameter). (ilutov)
|
2023-03-10 23:22:42 +08:00
|
|
|
. Zend Max Execution Timers is now enabled by default for ZTS builds on
|
|
|
|
Linux. (Kévin Dunglas)
|
2023-03-23 21:35:50 +08:00
|
|
|
. Fix bug GH-10469 (Disallow .. in open_basedir paths set at runtime).
|
|
|
|
(ilutov)
|
2023-04-05 17:24:06 +08:00
|
|
|
. Fix bug GH-10168, GH-10582 (Various segfaults with destructors and VM return
|
|
|
|
values). (dstogov, nielsdos, ilutov)
|
2023-03-26 01:34:06 +08:00
|
|
|
. Fix bug GH-10935 (Use of trait doesn't redeclare static property if class
|
|
|
|
has inherited it from its parent). (ilutov)
|
2023-04-28 23:12:31 +08:00
|
|
|
. Fix bug GH-11154 (Negative indices on empty array don't affect next chosen
|
|
|
|
index). (ColinHDev)
|
2023-05-11 02:38:33 +08:00
|
|
|
. Fix bug GH-8846 (Implement delayed early binding for classes without
|
|
|
|
parents). (ilutov)
|
2022-12-05 04:59:18 +08:00
|
|
|
. Fix bug #79836 (Segfault in concat_function). (nielsdos)
|
|
|
|
. Fix bug #81705 (type confusion/UAF on set_error_handler with concat
|
|
|
|
operation). (nielsdos)
|
2023-06-04 02:15:23 +08:00
|
|
|
. Fix GH-11348 (Closure created from magic method does not accept named
|
|
|
|
arguments). (nielsdos)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Fix GH-11388 (Allow "final" modifier when importing a method from a trait).
|
|
|
|
(nielsdos)
|
|
|
|
. Fixed bug GH-11406 (segfault with unpacking and magic method closure).
|
|
|
|
(nielsdos)
|
|
|
|
. Fixed bug GH-11507 (String concatenation performance regression in 8.3).
|
|
|
|
(nielsdos)
|
|
|
|
. Fixed GH-11488 (Missing "Optional parameter before required" deprecation on
|
|
|
|
union null type). (ilutov)
|
|
|
|
. Implement the #[\Override] attribute RFC. (timwolla)
|
|
|
|
. Fixed bug GH-11601 (Incorrect handling of unwind and graceful exit
|
|
|
|
exceptions). (ilutov)
|
|
|
|
. Added zend_call_stack_get implementation for OpenBSD. (David Carlier)
|
|
|
|
. Add stack limit check in zend_eval_const_expr(). (Arnaud)
|
|
|
|
. Expose time spent collecting cycles in gc_status(). (Arnaud)
|
|
|
|
. Remove WeakMap entries whose key is only reachable through the entry value.
|
|
|
|
(Arnaud)
|
|
|
|
. Resolve open_basedir paths on INI update. (ilutov)
|
|
|
|
. Fixed oss-fuzz #60741 (Leak in open_basedir). (ilutov)
|
|
|
|
. Fixed segfault during freeing of some incompletely initialized objects due
|
|
|
|
to OOM error (PDO, SPL, XSL). (ilutov)
|
|
|
|
. Introduced Zend guard recursion protection to fix __debugInfo issue.
|
|
|
|
(Jakub Zelenka)
|
|
|
|
. Fixed oss-fuzz #61712 (assertion failure with error handler during binary
|
|
|
|
op). (nielsdos)
|
|
|
|
. Fixed GH-11847 (DTrace enabled build is broken). (Filip Zrůst)
|
|
|
|
. Fixed OSS Fuzz #61865 (Undef variable in ++/-- for declared property
|
|
|
|
that is unset in error handler). (Girgias)
|
|
|
|
. Fixed warning emitted when checking if a user stream is castable. (Girgias)
|
|
|
|
. Fixed bug GH-12123 (Compile error on MacOS with C++ extension when using
|
|
|
|
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX). (kocsismate)
|
|
|
|
. Fixed bug GH-12189 (#[Override] attribute in trait does not check for
|
|
|
|
parent class implementations). (timwolla)
|
|
|
|
. Fixed OSS Fuzz #62294 (Unsetting variable after ++/-- on string variable
|
|
|
|
warning). (Girgias)
|
|
|
|
. Fixed buffer underflow when compiling memoized expression. (ilutov)
|
|
|
|
. Fixed oss-fuzz #63802 (OP1 leak in error path of post inc/dec). (ilutov)
|
|
|
|
|
|
|
|
- Curl:
|
|
|
|
. Added Curl options and constants up to (including) version 7.87.
|
|
|
|
(nielsdos, adoy)
|
2022-08-26 22:33:47 +08:00
|
|
|
|
2023-01-06 23:31:16 +08:00
|
|
|
- Date:
|
|
|
|
. Implement More Appropriate Date/Time Exceptions RFC. (Derick)
|
|
|
|
|
Implement iteration cache, item cache and length cache for node list iteration (#11330)
* Implement iteration cache, item cache and length cache for node list iteration
The current implementation follows the spec requirement that the list
must be "live". This means that changes in the document must be
reflected in the existing node lists without requiring the user to
refetch the node list.
The consequence is that getting any item, or the length of the list,
always starts searching from the root element of the node list. This
results in O(n) time to get any item or the length. If there's a for
loop over the node list, this means the iterations will take O(n²) time
in total. This causes real-world performance issues with potential for
downtime (see GH-11308 and its references for details).
We fix this by introducing a caching strategy. We cache the last
iterated object in the iterator, the last requested item in the node
list, and the last length computation. To invalidate the cache, we
simply count the number of modifications made to the containing
document. If the modification number does not match what the number was
during caching, we know the document has been modified and the cache is
invalid. If this ever overflows, we saturate the modification number and
don't do any caching anymore. Note that we don't check for overflow on
64-bit systems because it would take hundreds of years to overflow.
Fixes GH-11308.
2023-06-03 06:13:14 +08:00
|
|
|
- DOM:
|
2022-12-22 09:34:51 +08:00
|
|
|
. Fix bug GH-8388 (DOMAttr unescapes character reference). (Tim Starling)
|
Implement iteration cache, item cache and length cache for node list iteration (#11330)
* Implement iteration cache, item cache and length cache for node list iteration
The current implementation follows the spec requirement that the list
must be "live". This means that changes in the document must be
reflected in the existing node lists without requiring the user to
refetch the node list.
The consequence is that getting any item, or the length of the list,
always starts searching from the root element of the node list. This
results in O(n) time to get any item or the length. If there's a for
loop over the node list, this means the iterations will take O(n²) time
in total. This causes real-world performance issues with potential for
downtime (see GH-11308 and its references for details).
We fix this by introducing a caching strategy. We cache the last
iterated object in the iterator, the last requested item in the node
list, and the last length computation. To invalidate the cache, we
simply count the number of modifications made to the containing
document. If the modification number does not match what the number was
during caching, we know the document has been modified and the cache is
invalid. If this ever overflows, we saturate the modification number and
don't do any caching anymore. Note that we don't check for overflow on
64-bit systems because it would take hundreds of years to overflow.
Fixes GH-11308.
2023-06-03 06:13:14 +08:00
|
|
|
. Fix bug GH-11308 (getElementsByTagName() is O(N^2)). (nielsdos)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Fix #79700 (wrong use of libxml oldNs leads to performance problem).
|
|
|
|
(nielsdos)
|
|
|
|
. Fix #77894 (DOMNode::C14N() very slow on generated DOMDocuments even after
|
|
|
|
normalisation). (nielsdos)
|
|
|
|
. Revert changes to DOMAttr::$value and DOMAttr::$nodeValue expansion.
|
|
|
|
(nielsdos)
|
|
|
|
. Fixed bug GH-11500 (Namespace reuse in createElementNS() generates wrong
|
|
|
|
output). (nielsdos)
|
|
|
|
. Implemented DOMDocument::adoptNode(). Previously this always threw a
|
|
|
|
"not yet implemented" exception. (nielsdos)
|
|
|
|
. Fixed bug GH-9628 (Implicitly removing nodes from \DOMDocument breaks
|
|
|
|
existing references). (nielsdos)
|
|
|
|
. Added DOMNode::contains() and DOMNameSpaceNode::contains(). (nielsdos)
|
|
|
|
. Added DOMElement::getAttributeNames(). (nielsdos)
|
|
|
|
. Added DOMNode::getRootNode(). (nielsdos)
|
|
|
|
. Added DOMElement::className and DOMElement::id. (nielsdos)
|
|
|
|
. Added DOMParentNode::replaceChildren(). (nielsdos)
|
|
|
|
. Added DOMNode::isConnected and DOMNameSpaceNode::isConnected. (nielsdos)
|
|
|
|
. Added DOMNode::parentElement and DOMNameSpaceNode::parentElement.
|
|
|
|
(nielsdos)
|
|
|
|
. Added DOMNode::isEqualNode(). (nielsdos)
|
|
|
|
. Added DOMElement::insertAdjacentElement() and
|
|
|
|
DOMElement::insertAdjacentText(). (nielsdos)
|
|
|
|
. Added DOMElement::toggleAttribute(). (nielsdos)
|
|
|
|
. Fixed bug GH-11792 (LIBXML_NOXMLDECL is not implemented or broken).
|
|
|
|
(nielsdos)
|
|
|
|
. adoptNode now respects the strict error checking property. (nielsdos)
|
|
|
|
. Align DOMChildNode parent checks with spec. (nielsdos)
|
|
|
|
. Fixed bug #80927 (Removing documentElement after creating attribute node:
|
|
|
|
possible use-after-free). (nielsdos)
|
|
|
|
. Fix various namespace prefix conflict resolution bugs. (nielsdos)
|
|
|
|
. Fix calling createAttributeNS() without prefix causing the default
|
|
|
|
namespace of the element to change. (nielsdos)
|
|
|
|
. Fixed GH-11952 (Confusing warning when blocking entity loading via
|
|
|
|
libxml_set_external_entity_loader). (nielsdos)
|
|
|
|
. Fix broken cache invalidation with deallocated and reallocated document
|
|
|
|
node. (nielsdos)
|
|
|
|
. Fix compile error when php_libxml.h header is included in C++.
|
|
|
|
(Remi, nielsdos)
|
|
|
|
. Fixed bug #47531 (No way of removing redundant xmlns: declarations).
|
|
|
|
(nielsdos)
|
Implement iteration cache, item cache and length cache for node list iteration (#11330)
* Implement iteration cache, item cache and length cache for node list iteration
The current implementation follows the spec requirement that the list
must be "live". This means that changes in the document must be
reflected in the existing node lists without requiring the user to
refetch the node list.
The consequence is that getting any item, or the length of the list,
always starts searching from the root element of the node list. This
results in O(n) time to get any item or the length. If there's a for
loop over the node list, this means the iterations will take O(n²) time
in total. This causes real-world performance issues with potential for
downtime (see GH-11308 and its references for details).
We fix this by introducing a caching strategy. We cache the last
iterated object in the iterator, the last requested item in the node
list, and the last length computation. To invalidate the cache, we
simply count the number of modifications made to the containing
document. If the modification number does not match what the number was
during caching, we know the document has been modified and the cache is
invalid. If this ever overflows, we saturate the modification number and
don't do any caching anymore. Note that we don't check for overflow on
64-bit systems because it would take hundreds of years to overflow.
Fixes GH-11308.
2023-06-03 06:13:14 +08:00
|
|
|
|
2023-01-21 22:35:15 +08:00
|
|
|
- Exif:
|
|
|
|
. Removed unneeded codepaths in exif_process_TIFF_in_JPEG(). (nielsdos)
|
|
|
|
|
2023-11-21 22:00:51 +08:00
|
|
|
- FFI:
|
|
|
|
. Implement GH-11934 (Allow to pass CData into struct and/or union fields).
|
|
|
|
(nielsdos, KapitanOczywisty)
|
|
|
|
|
2022-10-03 04:26:17 +08:00
|
|
|
- Fileinfo:
|
|
|
|
. Upgrade bundled libmagic to 5.43. (Anatol)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Fix GH-11408 (Unable to build PHP 8.3.0 alpha 1 / fileinfo extension).
|
|
|
|
(nielsdos)
|
2022-10-03 04:26:17 +08:00
|
|
|
|
2022-09-09 00:19:34 +08:00
|
|
|
- FPM:
|
|
|
|
. The status.listen shared pool now uses the same php_values (including
|
|
|
|
expose_php) and php_admin_value as the pool it is shared with. (dwxh)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Added warning to log when fpm socket was not registered on the expected
|
|
|
|
path. (Joshua Behrens, Jakub Zelenka)
|
|
|
|
. Fixed bug #76067 (system() function call leaks php-fpm listening sockets).
|
|
|
|
(Mikhail Galanin, Jakub Zelenka)
|
|
|
|
. Fixed GH-12077 (PHP 8.3.0RC1 borked socket-close-on-exec.phpt).
|
|
|
|
(Jakub Zelenka)
|
2022-09-09 00:19:34 +08:00
|
|
|
|
2022-11-09 06:47:30 +08:00
|
|
|
- GD:
|
2023-11-21 22:00:51 +08:00
|
|
|
. Removed imagerotate "ignore_transparent" argument since it has no effect.
|
|
|
|
(David Carlier)
|
2022-11-09 06:47:30 +08:00
|
|
|
|
2022-11-27 18:24:25 +08:00
|
|
|
- Intl:
|
2022-12-10 00:56:43 +08:00
|
|
|
. Added pattern format error infos for numfmt_set_pattern. (David Carlier)
|
2023-02-28 20:08:01 +08:00
|
|
|
. Added MIXED_NUMBERS and HIDDEN_OVERLAY constants for
|
|
|
|
the Spoofchecker's class. (David Carlier)
|
2023-03-06 04:54:34 +08:00
|
|
|
. Updated datefmt_set_timezone/IntlDateformatter::setTimezone returns type.
|
|
|
|
(David Carlier).
|
2023-03-10 07:28:11 +08:00
|
|
|
. Updated IntlBreakInterator::setText return type. (David Carlier)
|
2023-03-22 04:40:53 +08:00
|
|
|
. Updated IntlChar::enumCharNames return type. (David Carlier)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Removed the BC break on IntlDateFormatter::construct which threw an
|
|
|
|
exception with an invalid locale. (David Carlier)
|
2022-11-27 18:24:25 +08:00
|
|
|
|
2022-10-08 21:45:59 +08:00
|
|
|
- JSON:
|
2022-12-10 00:56:28 +08:00
|
|
|
. Added json_validate(). (Juan Morales)
|
2022-10-08 21:45:59 +08:00
|
|
|
|
2023-11-21 22:00:51 +08:00
|
|
|
- LDAP:
|
|
|
|
. Deprecate calling ldap_connect() with separate hostname and port.
|
|
|
|
(heiglandreas)
|
|
|
|
|
|
|
|
- LibXML:
|
|
|
|
. Fix compile error with -Werror=incompatible-function-pointer-types and
|
|
|
|
old libxml2. (nielsdos)
|
|
|
|
|
2022-12-30 04:50:13 +08:00
|
|
|
- MBString:
|
2023-02-17 19:57:42 +08:00
|
|
|
. mb_detect_encoding is better able to identify the correct encoding for
|
|
|
|
Turkish text. (Alex Dowad)
|
Implement mb_detect_encoding using fast text conversion filters
Regarding the optional 3rd `strict` argument to mb_detect_encoding,
the documentation states:
Controls the behaviour when string is not valid in any of the listed encodings.
If strict is set to false, the closest matching encoding will be returned;
if strict is set to true, false will be returned.
(Ref: https://www.php.net/manual/en/function.mb-detect-encoding.php)
Because of bugs in the implementation, mb_detect_encoding did not always
behave according to this description when `strict` was false.
For example:
<?php
echo var_export(mb_detect_encoding("\xc0\x00", "UTF-8", false));
// Before this commit, prints: false
// After this commit, prints: 'UTF-8'
Because `strict` is false in the above example, mb_detect_encoding
should return the 'closest matching encoding', which is UTF-8, since
that is the only candidate encoding. (Incidentally, this example shows
that using mb_detect_encoding with a single candidate encoding in
non-strict mode is useless.)
The new implementation fixes this bug. It also fixes another problem
with the old implementation as regards non-strict detection mode:
The old implementation would stop processing of the input string using
a particular candidate encoding as soon as it saw an error in that
encoding, even in non-strict mode. This means that it could not really
detect the 'closest matching encoding'; rather, what it would return
in non-strict mode was 'the encoding in which the first decoding error
is furthest from the beginning of the input string'.
In non-strict mode, the new implementation continues trying to process
the input string to its end even after seeing an error. This makes it
possible to determine in which candidate encoding the string has the
smallest number of errors, i.e. the 'closest matching encoding'.
Rejecting candidate encodings as soon as it saw an error gave the old
implementation a marked performance advantage in non-strict mode;
however, the new implementation still beats it in most cases. Here are
a few sample microbenchmark results:
UTF-8, ~100 codepoints, strict mode
Old: 0.080s (100,000 calls)
New: 0.026s (" " )
UTF-8, ~100 codepoints, non-strict mode
Old: 0.079s (100,000 calls)
New: 0.033s (" " )
UTF-8, ~10000 codepoints, strict mode
Old: 6.708s (60,000 calls)
New: 1.383s (" " )
UTF-8, ~10000 codepoints, non-strict mode
Old: 6.705s (60,000 calls)
New: 3.044s (" " )
Notice that the old implementation had almost identical performance
between strict and non-strict mode, while the new suffers a significant
performance penalty for non-strict detection. This is the cost of
implementing the behavior specified in the documentation.
A couple more sample results:
SJIS, ~10000 codepoints, strict mode
Old: 4.563s
New: 1.084s
SJIS, ~10000 codepoints, non-strict mode
Old: 4.569s
New: 2.863s
This is the only case I found where the new implementation loses:
UTF-16LE, ~10000 codepoints, non-strict mode
Old: 1.514s
New: 2.813s
The reason is because the test strings happened to be invalid right from
the first few bytes for all the candidate encodings except for UTF-16LE;
so the old implementation would immediately reject all those encodings
and only process the entire string in UTF-16LE.
I believe mb_detect_encoding could be made much faster if we identified
good criteria for when to reject candidate encodings before reaching
the end of the input string.
2022-07-20 14:53:04 +08:00
|
|
|
. mb_detect_encoding's "non-strict" mode now behaves as described in the
|
2023-04-11 01:43:05 +08:00
|
|
|
documentation. Previously, it would return false if the same byte
|
|
|
|
(for example, the first byte) of the input string was invalid in all
|
|
|
|
candidate encodings. More generally, it would eliminate candidate
|
|
|
|
encodings from consideration when an invalid byte was seen, and if the
|
|
|
|
same input byte eliminated all remaining encodings still under
|
|
|
|
consideration, it would return false. On the other hand, if all candidate
|
|
|
|
encodings but one were eliminated from consideration, it would return the
|
|
|
|
last remaining one without regard for how many encoding errors might be
|
|
|
|
encountered later in the string. This is different from the behavior
|
|
|
|
described in the documentation, which says: "If strict is set to false,
|
|
|
|
the closest matching encoding will be returned." (Alex Dowad)
|
Implement Unicode conditional casing rules for Greek letter sigma
The capital Greek letter sigma (Σ) should be lowercased as σ except
when it appears at the end of a word; in that case, it should be
lowercased as the special form ς.
This rule is included in the Unicode data file SpecialCasing.txt.
The condition for applying the rule is called "Final_Sigma" and is
defined in Unicode technical report 21. The rule is:
• For the special casing form to apply, the capital letter sigma must
be preceded by 0 or more "case-ignorable" characters, preceded by
at least 1 "cased" character.
• Further, capital sigma must NOT be followed by 0 or more
case-ignorable characters and then at least 1 cased character.
"Case-ignorable" characters include certain punctuation marks, like
the apostrophe, as well as various accent marks. There are actually
close to 500 different case-ignorable characters, including accent marks
from Cyrillic, Hebrew, Armenian, Arabic, Syriac, Bengali, Gujarati,
Telugu, Tibetan, and many other alphabets. This category also includes
zero-width spaces, codepoints which indicate RTL/LTR text direction,
certain musical symbols, etc.
Since the rule involves scanning over "0 or more" of such
case-ignorable characters, it may be necessary to scan arbitrarily far
to the left and right of capital sigma to determine whether the special
lowercase form should be used or not. However, since we are trying to
be both memory-efficient and CPU-efficient, this implementation limits
how far to the left we will scan. Generally, we scan up to 63 characters
to the left looking for a "cased" character, but not more.
When scanning to the right, we go up to the end of the string if
necessary, even if it means scanning over thousands of characters.
Anyways, it is almost impossible to imagine that natural text will
include "words" with more than 63 successive apostrophes (for example)
followed by a capital sigma.
Closes GH-8096.
2023-01-08 02:27:59 +08:00
|
|
|
. mb_strtolower, mb_strtotitle, and mb_convert_case implement conditional
|
|
|
|
casing rules for the Greek letter sigma. For mb_convert_case, conditional
|
|
|
|
casing only applies to MB_CASE_LOWER and MB_CASE_TITLE modes, not to
|
|
|
|
MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE. (Alex Dowad)
|
2023-01-13 00:10:04 +08:00
|
|
|
. mb_detect_encoding is better able to identify UTF-8 and UTF-16 strings
|
|
|
|
with a byte-order mark. (Alex Dowad)
|
2023-02-17 19:57:42 +08:00
|
|
|
. mb_decode_mimeheader interprets underscores in QPrint-encoded MIME
|
|
|
|
encoded words as required by RFC 2047; they are converted to spaces.
|
|
|
|
Underscores must be encoded as "=5F" in such MIME encoded words.
|
|
|
|
(Alex Dowad)
|
2023-03-16 10:25:38 +08:00
|
|
|
. mb_encode_mimeheader no longer drops NUL (zero) bytes when
|
|
|
|
QPrint-encoding the input string. This previously caused strings in
|
|
|
|
certain text encodings, especially UTF-16 and UTF-32, to be
|
|
|
|
corrupted by mb_encode_mimeheader. (Alex Dowad)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Implement mb_str_pad() RFC. (nielsdos)
|
|
|
|
. Fixed bug GH-11514 (PHP 8.3 build fails with --enable-mbstring enabled).
|
|
|
|
(nielsdos)
|
|
|
|
. Fix use-after-free of mb_list_encodings() return value. (ilutov)
|
|
|
|
. Fixed bug GH-11992 (utf_encodings.phpt fails on Windows 32-bit). (nielsdos)
|
2022-12-30 04:50:13 +08:00
|
|
|
|
2023-03-12 06:29:36 +08:00
|
|
|
- mysqli:
|
|
|
|
. mysqli_fetch_object raises a ValueError instead of an Exception.
|
|
|
|
(David Carlier)
|
|
|
|
|
2022-09-03 00:29:56 +08:00
|
|
|
- Opcache:
|
|
|
|
. Added start, restart and force restart time to opcache's
|
2022-10-08 21:56:29 +08:00
|
|
|
phpinfo section. (Mikhail Galanin)
|
|
|
|
. Fix GH-9139: Allow FFI in opcache.preload when opcache.preload_user=root.
|
|
|
|
(Arnaud, Kapitan Oczywisty)
|
|
|
|
. Made opcache.preload_user always optional in the cli and phpdbg SAPIs.
|
|
|
|
(Arnaud)
|
2022-11-06 00:50:27 +08:00
|
|
|
. Allows W/X bits on page creation on FreeBSD despite system settings.
|
|
|
|
(David Carlier)
|
2023-02-15 00:54:04 +08:00
|
|
|
. Added memfd api usage, on Linux, for zend_shared_alloc_create_lock()
|
|
|
|
to create an abstract anonymous file for the opcache's lock. (Max Kellermann)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Avoid resetting JIT counter handlers from multiple processes/threads.
|
|
|
|
(ilutov)
|
|
|
|
. Fixed COPY_TMP type inference for references. (ilutov)
|
2022-09-09 17:04:38 +08:00
|
|
|
|
2023-02-25 17:22:09 +08:00
|
|
|
- OpenSSL:
|
|
|
|
. Added OPENSSL_CMS_OLDMIMETYPE and PKCS7_NOOLDMIMETYPE contants to switch
|
|
|
|
between mime content types. (Daniel Kesselberg)
|
2023-04-11 02:12:31 +08:00
|
|
|
. Fixed GH-11054: Reset OpenSSL errors when using a PEM public key.
|
|
|
|
(Florian Moser)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Added support for additional EC parameters in openssl_pkey_new. (Eno-CN)
|
2023-02-25 17:22:09 +08:00
|
|
|
|
2022-10-16 18:21:40 +08:00
|
|
|
- PCNTL:
|
|
|
|
. SA_ONSTACK is now set for pcntl_signal. (Kévin Dunglas)
|
2022-11-12 03:15:58 +08:00
|
|
|
. Added SIGINFO constant. (David Carlier)
|
2022-10-16 18:21:40 +08:00
|
|
|
|
2023-11-21 22:00:51 +08:00
|
|
|
- PCRE:
|
|
|
|
. Update bundled libpcre2 to 10.42. (nielsdos)
|
|
|
|
|
2023-03-12 06:29:36 +08:00
|
|
|
- PGSQL:
|
|
|
|
. pg_fetch_object raises a ValueError instead of an Exception.
|
|
|
|
(David Carlier)
|
2023-04-15 21:53:42 +08:00
|
|
|
. pg_cancel use thread safe PQcancel api instead. (David Carlier)
|
2023-04-09 18:59:50 +08:00
|
|
|
. pg_trace new PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE
|
|
|
|
contants support. (David Carlier)
|
2023-05-03 02:05:53 +08:00
|
|
|
. pg_set_error_verbosity adding PGSQL_ERRORS_STATE constant. (David Carlier)
|
2023-05-13 23:30:25 +08:00
|
|
|
. pg_convert/pg_insert E_WARNING on type errors had been converted to
|
|
|
|
ValueError/TypeError exceptions. (David Carlier)
|
2023-06-08 04:33:47 +08:00
|
|
|
. Added pg_set_error_context_visibility to set the context's visibility
|
|
|
|
within the error messages. (David Carlier)
|
2023-03-12 06:29:36 +08:00
|
|
|
|
2023-03-14 15:48:03 +08:00
|
|
|
- Phar:
|
|
|
|
. Fix memory leak in phar_rename_archive(). (stkeke)
|
|
|
|
|
2023-11-21 22:00:51 +08:00
|
|
|
- POSIX:
|
2022-09-05 02:52:21 +08:00
|
|
|
. Added posix_sysconf. (David Carlier)
|
2023-01-06 06:30:04 +08:00
|
|
|
. Added posix_pathconf. (David Carlier)
|
2023-01-07 16:34:56 +08:00
|
|
|
. Added posix_fpathconf. (David Carlier)
|
2023-02-14 03:43:29 +08:00
|
|
|
. Fixed zend_parse_arg_long's bool pointer argument assignment. (Cristian Rodriguez)
|
2023-03-24 03:46:17 +08:00
|
|
|
. Added posix_eaccess. (David Carlier)
|
2022-09-05 02:52:21 +08:00
|
|
|
|
2022-12-10 00:39:13 +08:00
|
|
|
- Random:
|
|
|
|
. Added Randomizer::getBytesFromString(). (Joshua Rüsweg)
|
2022-12-15 00:48:47 +08:00
|
|
|
. Added Randomizer::nextFloat(), ::getFloat(), and IntervalBoundary. (timwolla)
|
2023-01-15 20:48:39 +08:00
|
|
|
. Enable getrandom() for NetBSD (from 10.x). (David Carlier)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Deprecate MT_RAND_PHP. (timwolla)
|
|
|
|
. Fix Randomizer::getFloat() returning incorrect results under
|
|
|
|
certain circumstances. (timwolla)
|
2022-12-10 00:39:13 +08:00
|
|
|
|
2022-11-09 06:47:30 +08:00
|
|
|
- Reflection:
|
|
|
|
. Fix GH-9470 (ReflectionMethod constructor should not find private parent
|
|
|
|
method). (ilutov)
|
2023-01-25 05:26:52 +08:00
|
|
|
. Fix GH-10259 (ReflectionClass::getStaticProperties doesn't need null return
|
|
|
|
type). (kocsismate)
|
2022-11-09 06:47:30 +08:00
|
|
|
|
2023-04-30 03:28:03 +08:00
|
|
|
- SAPI:
|
|
|
|
. Fixed GH-11141 (Could not open input file: should be sent to stderr).
|
|
|
|
(nielsdos)
|
|
|
|
|
2023-11-21 22:00:51 +08:00
|
|
|
- Session:
|
|
|
|
. Fixed bug GH-11529 (Crash after dealing with an Apache request). (nielsdos)
|
|
|
|
|
|
|
|
- SimpleXML:
|
|
|
|
. Fixed bug GH-12192 (SimpleXML infinite loop when getName() is called
|
|
|
|
within foreach). (nielsdos)
|
|
|
|
. Fixed bug GH-12208 (SimpleXML infinite loop when a cast is used inside a
|
|
|
|
foreach). (nielsdos)
|
|
|
|
. Fixed bug #55098 (SimpleXML iteration produces infinite loop). (nielsdos)
|
|
|
|
|
2022-02-09 02:28:24 +08:00
|
|
|
- Sockets:
|
|
|
|
. Added SO_ATTACH_REUSEPORT_CBPF socket option, to give tighter control
|
2022-10-08 21:56:29 +08:00
|
|
|
over socket binding for a cpu core. (David Carlier)
|
2022-10-08 09:48:24 +08:00
|
|
|
. Added SKF_AD_QUEUE for cbpf filters. (David Carlier)
|
2022-10-29 03:08:46 +08:00
|
|
|
. Added socket_atmark if send/recv needs using MSG_OOB. (David Carlier)
|
2022-12-22 00:31:18 +08:00
|
|
|
. Added TCP_QUICKACK constant, to give tigher control over
|
|
|
|
ACK delays. (David Carlier)
|
2023-01-11 04:39:19 +08:00
|
|
|
. Added DONTFRAGMENT support for path MTU discovery purpose. (David Carlier)
|
2023-01-23 01:08:28 +08:00
|
|
|
. Added AF_DIVERT for raw socket for divert ports. (David Carlier)
|
2023-01-29 03:44:37 +08:00
|
|
|
. Added SOL_UPDLITE, UDPLITE_RECV_CSCOV and UDPLITE_SEND_CSCOV for updlite
|
|
|
|
protocol support. (David Carlier)
|
2023-02-11 15:50:36 +08:00
|
|
|
. Added SO_RERROR, SO_ZEROIZE and SO_SPLICE netbsd and openbsd constants.
|
2023-02-28 20:08:01 +08:00
|
|
|
(David Carlier)
|
|
|
|
. Added TCP_REPAIR for quietly close a connection. (David Carlier)
|
2023-04-08 15:50:40 +08:00
|
|
|
. Added SO_REUSEPORT_LB freebsd constant. (David Carlier)
|
2023-04-23 00:44:42 +08:00
|
|
|
. Added IP_BIND_ADDRESS_NO_PORT. (David Carlier)
|
2021-10-05 22:27:03 +08:00
|
|
|
|
2023-11-21 22:00:51 +08:00
|
|
|
- SPL:
|
|
|
|
. Fixed GH-11573 (RecursiveDirectoryIterator::hasChildren is slow).
|
|
|
|
(nielsdos)
|
|
|
|
|
2022-11-16 02:36:38 +08:00
|
|
|
- Standard:
|
2022-12-15 00:43:43 +08:00
|
|
|
. E_NOTICEs emitted by unserialize() have been promoted to E_WARNING. (timwolla)
|
2023-05-02 01:06:40 +08:00
|
|
|
. unserialize() now emits a new E_WARNING if the input contains unconsumed
|
|
|
|
bytes. (timwolla)
|
2023-01-14 19:19:35 +08:00
|
|
|
. Make array_pad's $length warning less confusing. (nielsdos)
|
2022-11-29 04:40:32 +08:00
|
|
|
. E_WARNING emitted by strtok in the caase both arguments are not provided when
|
|
|
|
starting tokenisation. (David Carlier)
|
2023-01-24 01:35:16 +08:00
|
|
|
. password_hash() will now chain the original RandomException to the ValueError
|
|
|
|
on salt generation failure. (timwolla)
|
2023-01-07 04:47:22 +08:00
|
|
|
. Fix GH-10239 (proc_close after proc_get_status always returns -1). (nielsdos)
|
2023-03-27 06:04:42 +08:00
|
|
|
. Improve the warning message for unpack() in case not enough values were
|
|
|
|
provided. (nielsdos)
|
2023-04-04 22:14:24 +08:00
|
|
|
. Fix GH-11010 (parse_ini_string() now preserves formatting of unquoted
|
|
|
|
strings starting with numbers when the INI_SCANNER_TYPED flag is
|
|
|
|
specified). (ilutov)
|
2023-03-02 01:30:15 +08:00
|
|
|
. Fix GH-10742 (http_response_code emits no error when headers were already
|
|
|
|
sent). (NattyNarwhal)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Added support for rounding negative places in number_format().
|
|
|
|
(Marc Bennewitz)
|
|
|
|
. Prevent precision loss on formatting decimal integers in number_format().
|
|
|
|
(Marc Bennewitz)
|
|
|
|
. Added usage of posix_spawn for proc_open when supported by OS.
|
|
|
|
(Cristian Rodriguez)
|
|
|
|
. Added $before_needle argument to strrchr(). (HypeMC)
|
|
|
|
. Fixed GH-11982 (str_getcsv returns null byte for unterminated enclosure).
|
|
|
|
(Jakub Zelenka)
|
|
|
|
. Fixed str_decrement() on "1". (ilutov)
|
2022-11-16 02:36:38 +08:00
|
|
|
|
2022-10-05 21:31:28 +08:00
|
|
|
- Streams:
|
|
|
|
. Fixed bug #51056: blocking fread() will block even if data is available.
|
|
|
|
(Jakub Zelenka)
|
2023-04-20 16:34:25 +08:00
|
|
|
. Added storing of the original path used to open xport stream.
|
|
|
|
(Luc Vieillescazes)
|
2023-11-21 22:00:51 +08:00
|
|
|
. Implement GH-8641 (STREAM_NOTIFY_COMPLETED over HTTP never emitted).
|
|
|
|
(nielsdos, Jakub Zelenka)
|
|
|
|
. Fix bug GH-10406 (fgets on a redis socket connection fails on PHP 8.3).
|
|
|
|
(Jakub Zelenka)
|
|
|
|
. Implemented GH-11242 (_php_stream_copy_to_mem: Allow specifying a maximum
|
|
|
|
length without allocating a buffer of that size). (Jakub Zelenka)
|
|
|
|
. Fixed bug #52335 (fseek() on memory stream behavior different than file).
|
|
|
|
(Jakub Zelenka)
|
|
|
|
. Fixed bug #76857 (Can read "non-existant" files). (Jakub Zelenka)
|
2022-10-05 21:31:28 +08:00
|
|
|
|
2023-01-14 23:21:35 +08:00
|
|
|
- XSLTProcessor:
|
|
|
|
. Fixed bug #69168 (DomNode::getNodePath() returns invalid path). (nielsdos)
|
|
|
|
|
2023-11-21 22:00:51 +08:00
|
|
|
- ZIP:
|
|
|
|
. zip extension version 1.22.0 for libzip 1.10.0. (Remi)
|
|
|
|
. add new error macros (ER_DATA_LENGTH and ER_NOT_ALLOWED). (Remi)
|
|
|
|
. add new archive global flags (ER_AFL_*). (Remi)
|
|
|
|
. add ZipArchive::setArchiveFlag and ZipArchive::getArchiveFlag methods.
|
|
|
|
(Remi)
|