diff --git a/NEWS b/NEWS index 80f5418b06a..b7f11fb8a93 100644 --- a/NEWS +++ b/NEWS @@ -1,479 +1,6 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.3.0RC2 +?? ??? ????, PHP 8.4.0alpha1 -31 Aug 2023, PHP 8.3.0RC1 - -- Core: - . Fixed bug GH-11937 (Constant ASTs containing objects). (ilutov) - . Introduced Zend guard recursion protection to fix __debugInfo issue. - (Jakub Zelenka) - . Fixed bug GH-11790 (On riscv64 require libatomic if actually needed). - (Jeremie Courreges-Anglas) - . Fixed oss-fuzz #61712 (assertion failure with error handler during binary - op). (nielsdos) - -- DOM: - . Fixed GH-11952 (Confusing warning when blocking entity loading via - libxml_set_external_entity_loader). (nielsdos) - -- FFI: - . Implement GH-11934 (Allow to pass CData into struct and/or union fields). - (nielsdos, KapitanOczywisty) - -- FPM: - . Fixed bug #76067 (system() function call leaks php-fpm listening sockets). - (Mikhail Galanin, Jakub Zelenka) - -- Standard: - . Added $before_needle argument to strrchr(). (HypeMC) - . Fixed GH-11982 (str_getcsv returns null byte for unterminated enclosure). - (Jakub Zelenka) - -- Streams: - . Fixed bug #52335 (fseek() on memory stream behavior different than file). - (Jakub Zelenka) - . Fixed bug #76857 (Can read "non-existant" files). (Jakub Zelenka) - -17 Aug 2023, PHP 8.3.0beta3 - -- Core: - . Fixed strerror_r detection at configuration time. (Kévin Dunglas) - . Fixed segfault during freeing of some incompletely initialized objects due - to OOM error (PDO, SPL, XSL). (ilutov) - . Fixed trait typed properties using a DNF type not being correctly bound. - (Girgias) - . Fixed trait property types not being arena allocated if copied from - an internal trait. (Girgias) - . Fixed deep copy of property DNF type during lazy class load. - (Girgias, ilutov) - . Fixed memory freeing of DNF types for non arena allocated types. - (Girgias, ju1ius) - -- DOM: - . 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) - -- Opcache: - . Avoid resetting JIT counter handlers from multiple processes/threads. - (ilutov) - -- Standard: - . Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix) - (athos-ribeiro) - -03 Aug 2023, PHP 8.3.0beta2 - -- Bcmath - . Fixed GH-11761 (removing trailing zeros from numbers) (jorgsowa) - -- Core: - . Fixed oss-fuzz #60741 (Leak in open_basedir). (ilutov) - -- DOM: - . Fixed bug GH-11792 (LIBXML_NOXMLDECL is not implemented or broken). - (nielsdos) - -- FFI: - . Fix leaking definitions when using FFI::cdef()->new(...). (ilutov) - -- Libxml: - . Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading - in XML without enabling it). (CVE-2023-3823) (nielsdos, ilutov) - -- MBString: - . Fix use-after-free of mb_list_encodings() return value. (ilutov) - -- Opcache: - . Avoid adding an unnecessary read-lock when loading script from shm if - restart is in progress. (mikhainin) - -- Phar: - . Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). - (CVE-2023-3824) (nielsdos) - -- Streams: - . Fixed bug GH-11735 (Use-after-free when unregistering user stream wrapper - from itself). (ilutov) - -20 Jul 2023, PHP 8.3.0beta1 - -- CLI: - . Implement GH-10024 (support linting multiple files at once using php -l). - (nielsdos) - -- Core: - . Fixed line number of JMP instruction over else block. (ilutov) - . Fixed use-of-uninitialized-value with ??= on assert. (ilutov) - . Fixed bug GH-11601 (Incorrect handling of unwind and graceful exit - exceptions). (ilutov) - . Added zend_call_stack_get implementation for OpenBSD. (David Carlier) - . Fixed oss-fuzz #60411 (Fix double-compilation of arrow-functions). (ilutov) - . Fixed build for FreeBSD before the 11.0 releases. (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) - -- Curl: - . Added Curl options and constants up to (including) version 7.87. - (nielsdos, adoy) - -- DOM: - . 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) - -- FPM: - . Added warning to log when fpm socket was not registered on the expected - path. (Joshua Behrens, Jakub Zelenka) - -- Hash: - . Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options - parameter in signature. (ilutov) - -- Intl: - . Fix memory leak in MessageFormatter::format() on failure. (Girgias) - -- LDAP: - . Deprecate calling ldap_connect() with separate hostname and port. - (heiglandreas) - -- OpenSSL: - . Added support for additional EC parameters in openssl_pkey_new. (Eno-CN) - -- PDO: - . Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true - and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer - filled). (SakiTakamachi) - -- Random: - . Deprecate MT_RAND_PHP. (timwolla) - -- SPL: - . Fixed GH-11573 (RecursiveDirectoryIterator::hasChildren is slow). - (nielsdos) - -- Standard: - . 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) - -- Streams: - . Implemented GH-11242 (_php_stream_copy_to_mem: Allow specifying a maximum - length without allocating a buffer of that size). (Jakub Zelenka) - -06 Jul 2023, PHP 8.3.0alpha3 - -- Core: - . Fixed bug GH-11507 (String concatenation performance regression in 8.3). - (nielsdos) - . Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator). - (ilutov) - . Fixed GH-11488 (Missing "Optional parameter before required" deprecation on - union null type). (ilutov) - . Implement the #[\Override] attribute RFC. (timwolla) - -- DOM: - . 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) - -- Fileinfo: - . Fix GH-11408 (Unable to build PHP 8.3.0 alpha 1 / fileinfo extension). - (nielsdos) - -- MBString: - . Implement mb_str_pad() RFC. (nielsdos) - . Fixed bug GH-11514 (PHP 8.3 build fails with --enable-mbstring enabled). - (nielsdos) - -- Session: - . Fixed bug GH-11529 (Crash after dealing with an Apache request). (nielsdos) - -- Standard: - . Fix serialization of RC1 objects appearing in object graph twice. (ilutov) - -- XMLReader: - . Fix GH-11548 (Argument corruption when calling XMLReader::open or - XMLReader::XML non-statically with observer active). (Bob) - -- 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) - - -22 Jun 2023, PHP 8.3.0alpha2 - -- Core: - . 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) - -- DOM: - . 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) - -- GD: - . Removed imagerotate "ignore_transparent" argument since it has no effect. - (David Carlier) - -- Streams: - . 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) - -08 Jun 2023, PHP 8.3.0alpha1 - -- CLI: - . Added pdeathsig to builtin server to terminate workers when the master - process is killed. (ilutov) - . Fixed bug GH-11104 (STDIN/STDOUT/STDERR is not available for CLI without - a script). (nielsdos) - -- Core: - . Fixed bug GH-9388 (Improve unset property and __get type incompatibility - error message). (ilutov) - . SA_ONSTACK is now set for signal handlers to be friendlier to other - in-process code such as Go's cgo. (Kévin Dunglas) - . SA_ONSTACK is now set when signals are disabled. (Kévin Dunglas) - . Fix GH-9649: Signal handlers now do a no-op instead of crashing when - executed on threads not managed by TSRM. (Kévin Dunglas) - . Fixed potential NULL pointer dereference Windows shm*() functions. (cmb) - . Added shadow stack support for fibers. (Chen Hu) - . Fix bug GH-9965 (Fix accidental caching of default arguments with side - effects). (ilutov) - . Implement GH-10217 (Use strlen() for determining the class_name length). - (Dennis Buteyn) - . Fix bug GH-8821 (Improve line numbers for errors in constant expressions). - (ilutov) - . Fix bug GH-10083 (Allow comments between & and parameter). (ilutov) - . Zend Max Execution Timers is now enabled by default for ZTS builds on - Linux. (Kévin Dunglas) - . Fix bug GH-10469 (Disallow .. in open_basedir paths set at runtime). - (ilutov) - . Fix bug GH-10168, GH-10582 (Various segfaults with destructors and VM return - values). (dstogov, nielsdos, ilutov) - . Fix bug GH-10935 (Use of trait doesn't redeclare static property if class - has inherited it from its parent). (ilutov) - . Fix bug GH-11154 (Negative indices on empty array don't affect next chosen - index). (ColinHDev) - . Fix bug GH-8846 (Implement delayed early binding for classes without - parents). (ilutov) - . Fix bug #79836 (Segfault in concat_function). (nielsdos) - . Fix bug #81705 (type confusion/UAF on set_error_handler with concat - operation). (nielsdos) - . Fix GH-11348 (Closure created from magic method does not accept named - arguments). (nielsdos) - -- Date: - . Implement More Appropriate Date/Time Exceptions RFC. (Derick) - -- DOM: - . Fix bug GH-8388 (DOMAttr unescapes character reference). (Tim Starling) - . Fix bug GH-11308 (getElementsByTagName() is O(N^2)). (nielsdos) - -- Exif: - . Removed unneeded codepaths in exif_process_TIFF_in_JPEG(). (nielsdos) - -- Fileinfo: - . Upgrade bundled libmagic to 5.43. (Anatol) - -- 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) - -- GD: - . Fixed bug #81739: OOB read due to insufficient input validation in - imageloadfont(). (CVE-2022-31630) (cmb) - -- Hash: - . Fixed bug #81738: buffer overflow in hash_update() on long parameter. - (CVE-2022-37454) (nicky at mouha dot be) - -- Intl: - . Added pattern format error infos for numfmt_set_pattern. (David Carlier) - . Added MIXED_NUMBERS and HIDDEN_OVERLAY constants for - the Spoofchecker's class. (David Carlier) - . Updated datefmt_set_timezone/IntlDateformatter::setTimezone returns type. - (David Carlier). - . Updated IntlBreakInterator::setText return type. (David Carlier) - . Updated IntlChar::enumCharNames return type. (David Carlier) - -- JSON: - . Added json_validate(). (Juan Morales) - -- MBString: - . mb_detect_encoding is better able to identify the correct encoding for - Turkish text. (Alex Dowad) - . mb_detect_encoding's "non-strict" mode now behaves as described in the - 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) - . 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) - . mb_detect_encoding is better able to identify UTF-8 and UTF-16 strings - with a byte-order mark. (Alex Dowad) - . 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) - . 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) - -- mysqli: - . mysqli_fetch_object raises a ValueError instead of an Exception. - (David Carlier) - -- Opcache: - . Added start, restart and force restart time to opcache's - 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) - . Allows W/X bits on page creation on FreeBSD despite system settings. - (David Carlier) - . 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) - -- OpenSSL: - . Added OPENSSL_CMS_OLDMIMETYPE and PKCS7_NOOLDMIMETYPE contants to switch - between mime content types. (Daniel Kesselberg) - . Fixed GH-11054: Reset OpenSSL errors when using a PEM public key. - (Florian Moser) - -- PCNTL: - . SA_ONSTACK is now set for pcntl_signal. (Kévin Dunglas) - . Added SIGINFO constant. (David Carlier) - -- PGSQL: - . pg_fetch_object raises a ValueError instead of an Exception. - (David Carlier) - . Added GH-9344, pipeline mode support. (David Carlier) - . pg_cancel use thread safe PQcancel api instead. (David Carlier) - . pg_trace new PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE - contants support. (David Carlier) - . pg_set_error_verbosity adding PGSQL_ERRORS_STATE constant. (David Carlier) - . pg_convert/pg_insert E_WARNING on type errors had been converted to - ValueError/TypeError exceptions. (David Carlier) - . Added pg_set_error_context_visibility to set the context's visibility - within the error messages. (David Carlier) - -- Phar: - . Fix memory leak in phar_rename_archive(). (stkeke) - -- Posix: - . Added posix_sysconf. (David Carlier) - . Added posix_pathconf. (David Carlier) - . Added posix_fpathconf. (David Carlier) - . Fixed zend_parse_arg_long's bool pointer argument assignment. (Cristian Rodriguez) - . Added posix_eaccess. (David Carlier) - -- Random: - . Added Randomizer::getBytesFromString(). (Joshua Rüsweg) - . Added Randomizer::nextFloat(), ::getFloat(), and IntervalBoundary. (timwolla) - . Fix GH-10292 (Made the default value of the first param of srand() and - mt_srand() nullable). (kocsismate) - . Enable getrandom() for NetBSD (from 10.x). (David Carlier) - -- Reflection: - . Fix GH-9470 (ReflectionMethod constructor should not find private parent - method). (ilutov) - . Fix GH-10259 (ReflectionClass::getStaticProperties doesn't need null return - type). (kocsismate) - . Fix Segfault when using ReflectionFiber suspended by an internal function. - (danog) - -- SAPI: - . Fixed GH-11141 (Could not open input file: should be sent to stderr). - (nielsdos) - -- Sockets: - . Added SO_ATTACH_REUSEPORT_CBPF socket option, to give tighter control - over socket binding for a cpu core. (David Carlier) - . Added SKF_AD_QUEUE for cbpf filters. (David Carlier) - . Added socket_atmark if send/recv needs using MSG_OOB. (David Carlier) - . Added TCP_QUICKACK constant, to give tigher control over - ACK delays. (David Carlier) - . Added DONTFRAGMENT support for path MTU discovery purpose. (David Carlier) - . Added AF_DIVERT for raw socket for divert ports. (David Carlier) - . Added SOL_UPDLITE, UDPLITE_RECV_CSCOV and UDPLITE_SEND_CSCOV for updlite - protocol support. (David Carlier) - . Added SO_RERROR, SO_ZEROIZE and SO_SPLICE netbsd and openbsd constants. - (David Carlier) - . Added TCP_REPAIR for quietly close a connection. (David Carlier) - . Added SO_REUSEPORT_LB freebsd constant. (David Carlier) - . Added IP_BIND_ADDRESS_NO_PORT. (David Carlier) - -- Standard: - . E_NOTICEs emitted by unserialize() have been promoted to E_WARNING. (timwolla) - . unserialize() now emits a new E_WARNING if the input contains unconsumed - bytes. (timwolla) - . Make array_pad's $length warning less confusing. (nielsdos) - . E_WARNING emitted by strtok in the caase both arguments are not provided when - starting tokenisation. (David Carlier) - . password_hash() will now chain the original RandomException to the ValueError - on salt generation failure. (timwolla) - . Fix GH-10239 (proc_close after proc_get_status always returns -1). (nielsdos) - . Improve the warning message for unpack() in case not enough values were - provided. (nielsdos) - . Fix GH-11010 (parse_ini_string() now preserves formatting of unquoted - strings starting with numbers when the INI_SCANNER_TYPED flag is - specified). (ilutov) - . Fix GH-10742 (http_response_code emits no error when headers were already - sent). (NattyNarwhal) - -- Streams: - . Fixed bug #51056: blocking fread() will block even if data is available. - (Jakub Zelenka) - . Added storing of the original path used to open xport stream. - (Luc Vieillescazes) - -- XSLTProcessor: - . Fixed bug #69168 (DomNode::getNodePath() returns invalid path). (nielsdos) - <<< NOTE: Insert NEWS from last stable release here prior to actual release! >>> diff --git a/Zend/zend.h b/Zend/zend.h index 94440530f3b..aea0a6d638d 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.3.0-dev" +#define ZEND_VERSION "4.4.0-dev" #define ZEND_ENGINE_3 diff --git a/configure.ac b/configure.ac index 7bdc6d7538c..38a37a28baf 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.3.0-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.4.0-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER diff --git a/main/php_version.h b/main/php_version.h index 4d24349b3e7..1cbfc9afcad 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -1,8 +1,8 @@ /* automatically generated by configure */ /* edit configure.ac to change version number */ #define PHP_MAJOR_VERSION 8 -#define PHP_MINOR_VERSION 3 +#define PHP_MINOR_VERSION 4 #define PHP_RELEASE_VERSION 0 #define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "8.3.0-dev" -#define PHP_VERSION_ID 80300 +#define PHP_VERSION "8.4.0-dev" +#define PHP_VERSION_ID 80400