PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, PHP 7.3.0RC5 - ODBC: . Fixed bug #77079 (odbc_fetch_object has incorrect type signature). (Jon Allen) - Opcache: . Fixed bug #77058 (Type inference in opcache causes side effects). (Nikita) - SOAP: . Fixed bug #50675 (SoapClient can't handle object references correctly). (Cameron Porter) - Standard: . Fixed bug #77081 (ftruncate() changes seek pointer in c mode). (cmb, Anatol) - XML: . Fixed bug 71592 (External entity processing never fails). (cmb) 25 Oct 2018, PHP 7.3.0RC4 - Core: . Fixed bug #77035 (The phpize and ./configure create redundant .deps file). (Peter Kokot) . Fixed bug #77041 (buildconf should output error messages to stderr) (Mizunashi Mana) - Date: . Updated timelib to 2018.01RC1 to address several bugs: (Derick) . Fixed bug #75577 (DateTime::createFromFormat does not accept 'v' format specifier). (Derick) . Fixed bug #75642 (Wrap around behaviour for microseconds is not working). (Derick) . Fixed bug #77007 (fractions in `diff()` are not correctly normalized). (Derick) - Mbstring: . Fixed bug #77025 (mb_strpos throws Unknown encoding or conversion error). (Nikita) - Tidy: . Fixed bug #77027 (tidy::getOptDoc() not available on Windows). (cmb) - Tokenizer: . Fixed bug #76991 (Incorrect tokenization of multiple invalid flexible heredoc strings). (Nikita) - XML: . Fixed bug #30875 (xml_parse_into_struct() does not resolve entities). (cmb) . Add support for getting SKIP_TAGSTART and SKIP_WHITE options. (cmb) - XMLRPC: . Fixed bug #75282 (xmlrpc_encode_request() crashes). (cmb) 11 Oct 2018, PHP 7.3.0RC3 - CURL: . Expose curl constants from curl 7.50 to 7.61. (Pierrick) - Core: . Fixed bug #76846 (Segfault in shutdown function after memory limit error). (Nikita) . Fixed bug #76946 (Cyclic reference in generator not detected). (Nikita) . Fixed bug #72635 (Undefined class used by class constant in constexpr generates fatal error). (Nikita) . Fixed bug #76947 (file_put_contents() blocks the directory of the file (__DIR__)). (Anatol) . Fixed bug #76979 (define() error message does not mention resources as valid values). (Michael Moravec) - Date: . Fixed bug #75851 (Year component overflow with date formats "c", "o", "r" and "y"). (Adam Saponara) - FCGI: . Fixed #76948 (Failed shutdown/reboot or end session in Windows). (Anatol) . Fixed bug #76954 (apache_response_headers removes last character from header name). (stodorovic) - FTP: . Fixed bug #76972 (Data truncation due to forceful ssl socket shutdown). (Manuel Mausz) - intl: . Fixed bug #76942 (U_ARGUMENT_TYPE_MISMATCH). (anthrax at unixuser dot org) - Mbstring: . Fixed bug #76958 (Broken UTF7-IMAP conversion). (Nikita) - Reflection: . Fixed bug #76936 (Objects cannot access their private attributes while handling reflection errors). (Nikita) . Fixed bug #66430 (ReflectionFunction::invoke does not invoke closure with object scope). (Nikita) 27 Sep 2018, PHP 7.3.0RC2 - CURL: . Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected). (Pierrick) - Core: . Fixed bug #76869 (Incorrect bypassing protected method accessibilty check). (Dmitry) . Fixed bug #76800 (foreach inconsistent if array modified during loop). (Dmitry) . Fixed bug #76901 (method_exists on SPL iterator passthrough method corrupts memory). (Nikita) - iconv: . Fixed bug #66828 (iconv_mime_encode Q-encoding longer than it should be). (cmb) - Opcache: . Fixed bug #76711 (OPcache enabled triggers false-positive "Illegal string offset"). (Dmitry) - PCRE: . Upgrade PCRE2 to 10.32. (Anatol) . Fixed bug #76909 (preg_match difference between 7.3 and < 7.3). (Anatol) - Standard: . Fixed bug #75533 (array_reduce is slow when $carry is large array). (Manabu Matsui) . Fixed bug #76965 (INI_SCANNER_RAW doesn't strip trailing whitespace). (Pierrick) - XMLRPC: . Fixed bug #76886 (Can't build xmlrpc with expat). (Thomas Petazzoni, cmb) 13 Sep 2018, PHP 7.3.0RC1 - Core: . Fixed bug #76825 (Undefined symbols ___cpuid_count). (Laruence) . Fixed bug #76820 (Z_COPYABLE invalid definition). (mvdwerve, cmb) . Fixed bug #76510 (file_exists() stopped working for phar://). (cmb) - intl: . Fixed bug #76829 (Incorrect validation of domain on idn_to_utf8() function). (Anatol) - MBString: . Updated to Oniguruma 6.9.0. (cmb) - Opcache: . Fixed bug #76832 (ZendOPcache.MemoryBase periodically deleted by the OS). (Anatol) . Fixed bug #76796 (Compile-time evaluation of disabled function in opcache causes segfault). (Nikita) - POSIX: Fixed bug #75696 (posix_getgrnam fails to print details of group). (cmb) - Reflection: . Fixed bug #74454 (Wrong exception being thrown when using ReflectionMethod). (cmb) - Standard: . Fixed bug #76803 (ftruncate changes file pointer). (Anatol) . Fixed bug #76818 (Memory corruption and segfault). (Remi) . Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open data connection). (Ville Hukkamäki) - Zlib: . Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed). (Martin Burke, cmb) 30 Aug 2018, PHP 7.3.0beta3 - Core: . Fixed #76773 (Traits used on the parent are ignored for child classes). (daverandom) . Fixed #76767 (‘asm’ operand has impossible constraints in zend_operators.h). (ondrej) . Fixed bug #76754 (parent private constant in extends class memory leak). (Laruence) . Fixed bug #76752 (Crash in ZEND_COALESCE_SPEC_TMP_HANDLER - assertion in _get_zval_ptr_tmp failed). (Laruence) - DOM: . Fixed bug #76285 (DOMDocument::formatOutput attribute sometimes ignored). (Andrew Nester, Laruence, Anatol) - iconv: . Fixed bug #68180 (iconv_mime_decode can return extra characters in a header). (cmb) . Fixed bug #63839 (iconv_mime_decode_headers function is skipping headers). (cmb) . Fixed bug #60494 (iconv_mime_decode does ignore special characters). (cmb) . Fixed bug #55146 (iconv_mime_decode_headers() skips some headers). (cmb) . Fixed bug #53891 (iconv_mime_encode() fails to Q-encode UTF-8 string). (cmb) - libxml: . Fixed bug #76777 ("public id" parameter of libxml_set_external_entity_loader callback undefined). (Ville Hukkamäki) - Opcache: . Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file). (Laruence) - SimpleXML: . Fixed bug #76712 (Assignment of empty string creates extraneous text node). (cmb) - SPL: . Fixed bug #68825 (Exception in DirectoryIterator::getLinkTarget()). (cmb) . Fixed bug #68175 (RegexIterator pregFlags are NULL instead of 0). (Tim Siebels) - Standard: . Fixed bug #76778 (array_reduce leaks memory if callback throws exception). (cmb) . Fixed bug #76755 (setcookie does not accept "double" type for expire time). (Laruence) . Fixed bug #76674 (improve array_* failure messages exposing what was passed instead of an array). (carusogabriel) 16 Aug 2018, PHP 7.3.0beta2 - Core: . Fixed bug #76030 (RE2C_FLAGS rarely honoured) (Cristian Rodríguez) . Fixed broken zend_read_static_property (Laruence) - Bz2: . Fixed arginfo for bzcompress. (Tyson Andre) - DOM: . Reverted fix for bug #76285 (DOMDocument::formatOutput attribute sometimes ignored). (cmb) - gettext: . Fixed bug #76517 (incorrect restoring of LDFLAGS). (sji) - intl: . Fixed bug #74484 (MessageFormatter::formatMessage memory corruption with 11+ named placeholders). (Anatol) - mbstring: . Fixed bug #76704 (mb_detect_order return value varies based on argument type). (cmb) . Fixed bug #76706 (mbstring.http_output_conv_mimetypes is ignored). (cmb) - OpenSSL: . Fixed bug #76705 (unusable ssl => peer_fingerprint in stream_context_create()). (Jakub Zelenka) - phpdbg: . Fixed bug #76595 (phpdbg man page contains outdated information). (Kevin Abel) - Standard: . Fixed bug #76688 (Disallow excessive parameters after options array). (pmmaga) . Fixed bug #76713 (Segmentation fault caused by property corruption). (Laruence) - Tidy: . Fixed arginfo for tidy::__construct(). (Tyson Andre) - zlib: . Fixed bug #65988 (Zlib version check fails when an include/zlib/ style dir is passed to the --with-zlib configure option). (Jay Bonci) . Fixed bug #76709 (Minimal required zlib library is 1.2.0.4). (petk) 02 Aug 2018, PHP 7.3.0beta1 - Core: . Fixed bug #76667 (Segfault with divide-assign op and __get + __set). (Laruence) - PDO_PgSQL: . Fixed bug #75402 (Possible Memory Leak using PDO::CURSOR_SCROLL option). (Anatol) - SQLite3: . Fixed #76665 (SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn't juggle). (cmb) - Standard: . Fixed bug #68553 (array_column: null values in $index_key become incrementing keys in result). (Laruence) . Fixed bug #76643 (Segmentation fault when using `output_add_rewrite_var`). (cmb) . Added support for the SameSite cookie directive, including an alternative signature for setcookie(), setrawcookie() and session_set_cookie_params(). (Frederik Bosch, pmmaga) 19 Jul 2018, PHP 7.3.0alpha4 - Core: . Fixed bug #33502 (Some nullary functions don't check the number of arguments). (cmb) . Fixed bug #76392 (Error relocating sapi/cli/php: unsupported relocation type 37). (Peter Kokot) . The declaration and use of case-insensitive constants has been deprecated. (Nikita) . Added syslog.filter INI entry for syslog filtering. (Philip Prindeville) - Calendar: . Fixed bug #52974 (jewish.c: compile error under Windows with GBK charset). (cmb) - Filter: . Added the 'add_slashes' sanitization mode (FILTER_SANITIZE_ADD_SLASHES). (Kalle) . Fixed bug #76366 (References in sub-array for filtering breaks the filter). (ZiHang Gao) - FPM: . Fixed bug #62596 (getallheaders() missing with PHP-FPM). (Remi) . Added fpm_get_status function. (Till Backhaus) . Fixed bug #69031 (Long messages into stdout/stderr are truncated incorrectly) - added new log related FPM configuration options: log_limit, log_buffering and decorate_workers_output. (Jakub Zelenka) - mbstring: . Fixed bug #76574 (use of undeclared identifiers INT_MAX and LONG_MAX). (cmb) . Fixed bug #76594 (Bus Error due to unaligned access in zend_ini.c OnUpdateLong). (cmb, Nikita) - PDO_Firebird: . Fixed bug #74462 (PDO_Firebird returns only NULLs for results with boolean for FIREBIRD >= 3.0). (Dorin Marcoci) . Fixed bug #76488 (Memory leak when fetching a BLOB field). (Simonov Denis) - Standard: . Fixed bug #73817 (Incorrect entries in get_html_translation_table). (cmb) . Fixed bug #76136 (stream_socket_get_name should enclose IPv6 in brackets). (seliver) - Zip: . Fixed bug #76524 (ZipArchive memory leak (OVERWRITE flag and empty archive)). (Timur Ibragimov) 05 Jul 2018, PHP 7.3.0alpha3 - Core: . Fixed bug #76534 (PHP hangs on 'illegal string offset on string references with an error handler). (Laruence) . Fixed bug #76520 (Object creation leaks memory when executed over HTTP). (Nikita) . Fixed bug #76502 (Chain of mixed exceptions and errors does not serialize properly). (Nikita) . Fixed bug #76509 (Inherited static properties can be desynchronized from their parent by ref). (Nikita) . Fixed bug #76439 (Changed behaviour in unclosed HereDoc). (Nikita, tpunt) . Added syslog.facility and syslog.ident INI entries for customizing syslog logging. (Philip Prindeville) . Fixed bug #63217 (Constant numeric strings become integers when used as ArrayAccess offset). (Rudi Theunissen, Dmitry) - DOM: . Fixed bug #76285 (DOMDocument::formatOutput attribute sometimes ignored). (Andrew Nester) - FPM: . Fixed bug #73342 (Vulnerability in php-fpm by changing stdin to non-blocking). (Nikita) - GMP: . Fixed bug #74670 (Integer Underflow when unserializing GMP and possible other classes). (Nikita) - intl: . Fixed bug #76556 (get_debug_info handler for BreakIterator shows wrong type). (cmb) - mbstring: . Fixed bug #76532 (Integer overflow and excessive memory usage in mb_strimwidth). (MarcusSchwarz) - OpenSSL: . Add min_proto_version and max_proto_version ssl stream options as well as related constants for possible TLS protocol values. (Jakub Zelenka) - PCRE: . Fixed bug #76512 (\w no longer includes unicode characters). (cmb) . Fixed bug #76514 (Regression in preg_match makes it fail with PREG_JIT_STACKLIMIT_ERROR). (Anatol) - PGSQL: . Fixed bug #76548 (pg_fetch_result did not fetch the next row). (Anatol) - phpdbg: . Fix arginfo wrt. optional/required parameters. (cmb) - Reflection: . Fixed bug #76536 (PHP crashes with core dump when throwing exception in error handler). (Laruence) . Fixed bug #75231 (ReflectionProperty#getValue() incorrectly works with inherited classes). (Nikita) - Standard: . Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys). (Laruence) . Fixed bug #71848 (getimagesize with $imageinfo returns false). (cmb) . Fixed bug #48016 (stdClass::__setState is not defined although var_export() uses it). (Andrea) - Tokenizer: . Fixed bug #76538 (token_get_all with TOKEN_PARSE flag fails to recognise close tag with newline). (Nikita) 21 Jun 2018, PHP 7.3.0alpha2 - Core: . Fixed bug #76427 (Segfault in zend_objects_store_put). (Laruence) . Fixed bug #76422 (ftruncate fails on files > 2GB). (Anatol) - CLI: . Fixed bug #44217 (Output after stdout/stderr closed cause immediate exit with status 0). (Robert Lu) - Date: . Fixed bug #76462 (Undefined property: DateInterval::$f). (Anatol) - EXIF: . Fixed bug #76409 (heap use after free in _php_stream_free). (cmb) - Interbase: . Fixed bug #76443 (php+php_interbase.dll crash on module_shutdown). (Kalle) - Mysqlnd: . Fixed bug #76386 (Prepared Statement formatter truncates fractional seconds from date/time column). (Victor Csiky) - Opcache: . Fixed bug #76477 (Opcache causes empty return value). (Nikita, Laruence) . Fixed bug #76466 (Loop variable confusion). (Dmitry, Laruence, Nikita) . Fixed bug #76463 (var has array key type but not value type). (Laruence) . Fixed bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc)). (Nikita, Laruence) - Tokenizer: . Fixed bug #76437 (token_get_all with TOKEN_PARSE flag fails to recognise close tag). (Laruence) . Fixed bug #75218 (Change remaining uncatchable fatal errors for parsing into ParseError). (Nikita) - ZIP: . Fixed bug #76461 (OPSYS_Z_CPM defined instead of OPSYS_CPM). (Dennis Birkholz, Remi) 07 Jun 2018, PHP 7.3.0alpha1 - Core: . Improved PHP GC. (Dmitry, Nikita) . Redesigned the old ext_skel program written in PHP, run: 'php ext_skel.php' for all options. This means there are no dependencies, thus making it work on Windows out of the box. (Kalle) . Removed support for BeOS. (Kalle) . Add PHP_VERSION to phpinfo() . (github/MattJeevas) . Add net_get_interfaces(). (Sara, Joe, Anatol) . Implemented flexible heredoc and nowdoc syntax, per RFC https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes. (Thomas Punt) . Added support for references in list() and array destructuring, per RFC https://wiki.php.net/rfc/list_reference_assignment. (David Walker) . Fixed bug #75683 (Memory leak in zend_register_functions() in ZTS mode). (Dmitry) . Fixed bug #75031 (support append mode in temp/memory streams). (adsr) . Fixed bug #74860 (Uncaught exceptions not being formatted properly when error_log set to "syslog"). (Philip Prindeville) . Fixed bug #75220 (Segfault when calling is_callable on parent). (andrewnester) . Fixed bug #69954 (broken links and unused config items in distributed ini files). (petk) . Fixed bug #74922 (Composed class has fatal error with duplicate, equal const properties). (pmmaga) . Fixed bug #63911 (identical trait methods raise errors during composition). (pmmaga) . Fixed bug #75677 (Clang ignores fastcall calling convention on variadic function). (Li-Wen Hsu) . Fixed bug #54043 (Remove inconsitency of internal exceptions and user defined exceptions). (Nikita) . Fixed bug #53033 (Mathematical operations convert objects to integers). (Nikita) . Fixed bug #73108 (Internal class cast handler uses integer instead of float). (Nikita) . Fixed bug #75765 (Fatal error instead of Error exception when base class is not found). (Timur Ibragimov) . Fixed bug #76198 (Wording: "iterable" is not a scalar type). (Levi Morrison) . Fixed bug #76137 (config.guess/config.sub do not recognize RISC-V). (cmb) . Improved effectiveness of ZEND_SECURE_ZERO for NetBSD and systems without native similar feature (devnexen). - BCMath: . Fixed bug #66364 (BCMath bcmul ignores scale parameter). (cmb) . Implemented request #67855 (No way to get current scale in use). (Chris Wright, cmb) . Fixed bug #75164 (split_bc_num() is pointless). (cmb) . Fixed bug #75169 (BCMath errors/warnings bypass PHP's error handling). (cmb) - cURL: . Fixed bug #74125 (Fixed finding CURL on systems with multiarch support). (cebe) - Date: . Implemented FR #74668: Add DateTime::createFromImmutable() method. (majkl578, Rican7) . Fixed bug #75222 (DateInterval microseconds property always 0). (jhdxr) . Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it). (jhdxr) . Fixed bug #76131 (mismatch arginfo for date_create). (carusogabriel) - DBA: . Fixed bug #75264 (compiler warnings emitted). (petk) - GD: . Added support for WebP in imagecreatefromstring() (Andreas Treichel, cmb). - GMP: . Export internal structures and accessor helpers for GMP object. (Sara) . Added gmp_binomial(n, k). (Nikita) . Added gmp_lcm(a, b). (Nikita) . Added gmp_perfect_power(a). (Nikita) . Added gmp_kronecker(a, b). (Nikita) - interbase: . Fixed bug #75453 (Incorrect reflection for ibase_[p]connect). (villfa) - intl: . Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead of destination). (andrewnester) - JSON: . Added JSON_THROW_ON_ERROR flag. (Andrea) - LDAP: . Added ldap_exop_refresh helper for EXOP REFRESH operation with dds overlay. (Come) . Added full support for sending and parsing ldap controls (Come) . Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros). (dzuelke) - libxml2: . Fixed bug #75871 (use pkg-config where available). (pmmaga) - litespeed: . Fixed bug #75248 (Binary directory doesn't get created when building only litespeed SAPI). (petk) . Fixed bug #75251 (Missing program prefix and suffix). (petk) - mbstring: . Fixed bug #65544 (mb title case conversion-first word in quotation isn't capitalized). (Nikita) . Fixed bug #71298 (MB_CASE_TITLE misbehaves with curled apostrophe/quote. (Nikita) . Fixed bug #73528 (Crash in zif_mb_send_mail). (Nikita) . Fixed bug #74929 (mbstring functions version 7.1.1 are slow compared to 5.3 on Windows). (Nikita) . Fixed bug #76319 (mb_strtolower with invalid UTF-8 causes segmentation fault). (Nikita) . Updated to Oniguruma 6.8.2. (cmb) - ODBC: . Removed support for ODBCRouter. (Kalle) . Removed support for Birdstep. (Kalle) - OpenSSL: . Added openssl_pkey_derive function. (Jim Zubov) - PCRE: . Implemented https://wiki.php.net/rfc/pcre2-migration (Anatol, Dmitry) . Fixed bug #75355 (preg_quote() does not quote # control character). (Michael Moravec) - PDO_DBlib: . Implemented request #69592 (allow 0-column rowsets to be skipped automatically). (fandrieu) . Fixed bug #74243 (allow locales.conf to drive datetime format). (fandrieu) . Expose TDS version as \PDO::DBLIB_ATTR_TDS_VERSION attribute on \PDO instance. (fandrieu) . Treat DATETIME2 columns like DATETIME. (fandrieu) - PDO_OCI: . Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized before PHP-FPM sets it up). (Ingmar Runge) - PDO SQLite . Add support for additional open flags - pgsql: . Added new error constants for pg_result_error(): (Kalle) - Requires Postgres 9.3 - PGSQL_DIAG_SCHEMA_NAME - PGSQL_DIAG_TABLE_NAME - PGSQL_DIAG_COLUMN_NAME - PGSQL_DIAG_DATATYPE_NAME - PGSQL_DIAG_CONSTRAINT_NAME - Requires Postgres 9.6 - PGSQL_DIAG_SEVERITY_NONLOCALIZED - phar: . Fixed bug #74991 (include_path has a 4096 char limit in some cases). (bwbroersma) . Fixed bug #65414 (deal with leading slash when adding files correctly). (bishopb) - readline: . Added completion_append_character and completion_suppress_append options to readline_info() if linked against libreadline. (krageon) - Session: . Fixed bug #74941 (session fails to start after having headers sent). (morozov) - SimpleXML: . Fixed bug #54973 (SimpleXML casts integers wrong). (Nikita) - SOAP: . Fixed bug #75464 (Wrong reflection on SoapClient::__setSoapHeaders). (villfa) . Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is used). (Anton Artamonov) - SPL: . Fixed bug #74977 (Appending AppendIterator leads to segfault). (Andrew Nester) . Fixed bug #75173 (incorrect behavior of AppendIterator::append in foreach loop). (jhdxr) . Fixed bug #74372 (autoloading file with syntax error uses next autoloader, may hide parse error). (Nikita) . Fixed bug #75878 (RecursiveTreeIterator::setPostfix has wrong signature). (cmb) . Fixed bug #74519 (strange behavior of AppendIterator). (jhdxr) . Fixed bug #76131 (mismatch arginfo for splarray constructor). (carusogabriel) - SQLite3: . Updated bundled libsqlite to 3.24.0. (cmb) - Standard: . Added is_countable() function. (Gabriel Caruso) . Fixed bug #75916 (DNS_CAA record results contain garbage). (Mike, Philip Sharp) . Fixed unserialize(), to disable creation of unsupported data structures through manually crafted strings. (Dmitry) . Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator that getrandom() is missing). (sarciszewski) . Fixed bug #74719 (fopen() should accept NULL as context). (Alexander Holman) . Fixed bug #69948 (path/domain are not sanitized in setcookie). (cmb) . Fixed bug #75996 (incorrect url in header for mt_rand). (tatarbj) . Remove superfluous warnings from inet_ntop()/inet_pton(). (daverandom) . Added hrtime() function, to get high resolution time. (welting) - Testing: . Implemented request #62055 (Make run-tests.php support --CGI-- sections). (cmb) - Tidy: . Fixed bug #74707 (Tidy has incorrect ReflectionFunction param counts for functions taking tidy). (Gabriel Caruso) . Support using tidyp instead of tidy (devnexen). - Zlib: . Added zlib/level context option for compress.zlib wrapper. (Sara) <<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>