PHP Changelog

What's new in PHP 8.3.6

Apr 11, 2024
  • Core:
  • Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when scanning WeakMaps).
  • Fixed bug GH-13612 (Corrupted memory in destructor with weak references).
  • Fixed bug GH-13446 (Restore exception handler after it finishes).
  • Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure).
  • Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor).
  • DOM:
  • Add some missing ZPP checks.
  • Fix potential memory leak in XPath evaluation results.
  • FPM:
  • Fixed GH-11086 (FPM: config test runs twice in daemonised mode).
  • Fix incorrect check in fpm_shm_free().
  • GD:
  • Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests).
  • Gettext:
  • Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL.
  • MySQLnd:
  • Fix GH-13452 (Fixed handshake response [mysqlnd]).
  • Fix incorrect charset length in check_mb_eucjpms().
  • Opcache:
  • Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null).
  • Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded).
  • Random:
  • Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes).
  • Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used).
  • Session:
  • Fixed bug GH-13680 (Segfault with session_decode and compilation error).
  • SPL:
  • Fixed bug GH-13685 (Unexpected null pointer in zend_string.h).
  • Standard:
  • Fixed bug GH-11808 (Live filesystem modified by tests).
  • Fixed GH-13402 (Added validation of `n` in $additional_headers of mail()).
  • Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows).
  • Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874)
  • Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756)
  • Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096)
  • Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some inputs). (CVE-2024-2757)
  • Fix bug GH-13932 (Attempt to fix mbstring on windows build) (msvc).

New in PHP 8.1.25 (Oct 27, 2023)

  • Core:
  • Fixed bug GH-12207 (memory leak when class using trait with doc block).
  • Fixed bug GH-12215 (Module entry being overwritten causes type errors in ext/dom).
  • Fixed bug GH-12273 (__builtin_cpu_init check).
  • Fixed bug #80092 (ZTS + preload = segfault on shutdown).
  • CLI:
  • Ensure a single Date header is present.
  • CType:
  • Fixed bug GH-11997 (ctype_alnum 5 times slower in PHP 8.1 or greater).
  • DOM:
  • Restore old namespace reconciliation behaviour.
  • Fixed bug GH-8996 (DOMNode serialization on PHP ^8.1).
  • Fileinfo:
  • Fixed bug GH-11891 (fileinfo returns text/xml for some svg files).
  • Filter:
  • Fix explicit FILTER_REQUIRE_SCALAR with FILTER_CALLBACK (ilutov)
  • Hash:
  • Fixed bug GH-12186 (segfault copying/cloning a finalized HashContext).
  • Intl:
  • Fixed bug GH-12243 (segfault on IntlDateFormatter::construct).
  • Fixed bug GH-12282 (IntlDateFormatter::construct should throw an exception on an invalid locale).
  • MySQLnd:
  • Fixed bug GH-12297 (PHP Startup: Invalid library (maybe not a PHP library) 'mysqlnd.so' in Unknown on line).
  • Opcache:
  • Fixed opcache_invalidate() on deleted file.
  • Fixed bug GH-12380 (JIT+private array property access inside closure accesses private property in child class).
  • PCRE:
  • Fixed bug GH-11956 (Backport upstream fix, PCRE regular expressions with JIT enabled gives different result).
  • SimpleXML:
  • Fixed bug GH-12170 (Can't use xpath with comments in SimpleXML).
  • Fixed bug GH-12223 (Entity reference produces infinite loop in var_dump/print_r).
  • Fixed bug GH-12167 (Unable to get processing instruction contents in SimpleXML).
  • Fixed bug GH-12169 (Unable to get comment contents in SimpleXML).
  • Streams:
  • Fixed bug GH-12190 (binding ipv4 address with both address and port at 0).
  • XML:
  • Fix return type of stub of xml_parse_into_struct().
  • Fix memory leak when calling xml_parse_into_struct() twice.
  • XSL:
  • Fix type error on XSLTProcessor::transformToDoc return value with SimpleXML.
  • Sockets:
  • Fix socket_export_stream() with wrong protocol (twosee)

New in PHP 8.0.30 (Sep 27, 2023)

  • Libxml:
  • Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823)
  • Phar:
  • Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). (CVE-2023-3824)

New in PHP 8.1.23 (Sep 4, 2023)

  • CLI:
  • Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with ZEND_RC_DEBUG=1).
  • Fixed bug GH-10964 (Improve man page about the built-in server).
  • Core:
  • Fixed strerror_r detection at configuration time.
  • Date:
  • Fixed bug GH-11416: Crash with DatePeriod when uninitialised objects are passed in.
  • DOM:
  • Fix DOMEntity field getter bugs.
  • Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS.
  • Fix DOMCharacterData::replaceWith() with itself.
  • Fix empty argument cases for DOMParentNode methods.
  • Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone).
  • Fix json_encode result on DOMDocument.
  • Fix manually calling __construct() on DOM classes.
  • Fixed bug GH-11830 (ParentNode methods should perform their checks upfront).
  • Fix segfault when DOMParentNode::prepend() is called when the child disappears.
  • FFI:
  • Fix leaking definitions when using FFI::cdef()->new(...).
  • MySQLnd:
  • Fixed bug GH-11440 (authentication to a sha256_password account fails over SSL).
  • Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters).
  • Fixed bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault).
  • Fixed invalid error message "Malformed packet" when connection is dropped.
  • Opcache:
  • Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong).
  • Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress.
  • PCNTL:
  • Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22.
  • SPL:
  • Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free).
  • Standard:
  • Prevent int overflow on $decimals in number_format.
  • Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix) (athos-ribeiro)

New in PHP 8.2.10 (Sep 1, 2023)

  • CLI:
  • Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with ZEND_RC_DEBUG=1).
  • Fixed bug GH-10964 (Improve man page about the built-in server).
  • Date:
  • Fixed bug GH-11416 (Crash with DatePeriod when uninitialised objects are passed in).
  • Core:
  • Fixed strerror_r detection at configuration time.
  • Fixed trait typed properties using a DNF type not being correctly bound.
  • Fixed trait property types not being arena allocated if copied from an internal trait.
  • Fixed deep copy of property DNF type during lazy class load.
  • Fixed memory freeing of DNF types for non arena allocated types.
  • DOM:
  • Fix DOMEntity field getter bugs.
  • Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS.
  • Fix DOMCharacterData::replaceWith() with itself.
  • Fix empty argument cases for DOMParentNode methods.
  • Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone).
  • Fix json_encode result on DOMDocument.
  • Fix manually calling __construct() on DOM classes.
  • Fixed bug GH-11830 (ParentNode methods should perform their checks upfront).
  • Fix viable next sibling search for replaceWith.
  • Fix segfault when DOMParentNode::prepend() is called when the child disappears.
  • FFI:
  • Fix leaking definitions when using FFI::cdef()->new(...).
  • Hash:
  • Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options parameter in signature.
  • MySQLnd:
  • Fixed bug GH-11440 (authentication to a sha256_password account fails over SSL).
  • Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters).
  • Fixed bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault).
  • Fixed invalid error message "Malformed packet" when connection is dropped.
  • Opcache:
  • Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong).
  • Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress.
  • PCNTL:
  • Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22.
  • SPL:
  • Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free).
  • Standard:
  • Prevent int overflow on $decimals in number_format.
  • Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix) (athos-ribeiro)

New in PHP 8.2.7 (Jun 21, 2023)

  • Core:
  • Fixed bug GH-11152 (Unable to alias namespaces containing reserved class names).
  • Fixed bug GH-9068 (Conditional jump or move depends on uninitialised value(s)).
  • Fixed bug GH-11189 (Exceeding memory limit in zend_hash_do_resize leaves the array in an invalid state).
  • Fixed bug GH-11063 (Compilation error on old GCC versions).
  • Fixed bug GH-11222 (foreach by-ref may jump over keys during a rehash).
  • Date:
  • Fixed bug GH-11281 (DateTimeZone::getName() does not include seconds in offset).
  • Exif:
  • Fixed bug GH-10834 (exif_read_data() cannot read smaller stream wrapper chunk sizes).
  • FPM:
  • Fixed bug GH-10461 (PHP-FPM segfault due to after free usage of child->ev_std(out|err)).
  • Fixed bug #64539 (FPM status page: query_string not properly JSON encoded).
  • Fixed memory leak for invalid primary script file handle.
  • Hash:
  • Fixed bug GH-11180 (hash_file() appears to be restricted to 3 arguments).
  • LibXML:
  • Fixed bug GH-11160 (Few tests failed building with new libxml 2.11.0).
  • MBString:
  • Fix bug GH-11217 (Segfault in mb_strrpos / mb_strripos when using negative offset and ASCII encoding).
  • Opcache:
  • Fixed bug GH-11134 (Incorrect match default branch optimization).
  • Fixed too wide OR and AND range inference.
  • Fixed missing class redeclaration error with OPcache enabled.
  • Fixed bug GH-11245 (In some specific cases SWITCH with one default statement will cause segfault).
  • PCNTL:
  • Fixed maximum argument count of pcntl_forkx().
  • PGSQL:
  • Fixed parameter parsing of pg_lo_export().
  • Phar:
  • Fixed bug GH-11099 (Generating phar.php during cross-compile can't be done).
  • Soap:
  • Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP).
  • Fixed bug GH-8426 (make test fail while soap extension build).
  • SPL:
  • Fixed bug GH-11178 (Segmentation fault in spl_array_it_get_current_data (PHP 8.1.18)).
  • Standard:
  • Fixed bug GH-11138 (move_uploaded_file() emits open_basedir warning for source file).
  • Fixed bug GH-11274 (POST/PATCH request switches to GET after a HTTP 308 redirect).
  • Streams:
  • Fixed bug GH-10031 ([Stream] STREAM_NOTIFY_PROGRESS over HTTP emitted irregularly for last chunk of data).
  • Fixed bug GH-11175 (Stream Socket Timeout).
  • Fixed bug GH-11177 (ASAN UndefinedBehaviorSanitizer when timeout = -1 passed to stream_socket_accept/stream_socket_client).

New in PHP 8.2.4 (Apr 12, 2023)

  • Core:
  • Fixed incorrect check condition in ZEND_YIELD.
  • Fixed incorrect check condition in type inference.
  • Fix incorrect check in zend_internal_call_should_throw().
  • Fixed overflow check in OnUpdateMemoryConsumption.
  • Fixed bug GH-9916 (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes).
  • Fixed bug GH-10437 (Segfault/assertion when using fibers in shutdown function after bailout).
  • Fixed SSA object type update for compound assignment opcodes.
  • Fixed language scanner generation build.
  • Fixed zend_update_static_property() calling zend_update_static_property_ex() misleadingly with the wrong return type.
  • Fix bug GH-10570 (Fixed unknown string hash on property fetch with integer constant name).
  • Fixed php_fopen_primary_script() call resulted on zend_destroy_file_handle() freeing dangling pointers on the handle as it was uninitialized.
  • Curl:
  • Fixed deprecation warning at compile time.
  • Fixed bug GH-10270 (Unable to return CURL_READFUNC_PAUSE in readfunc callback).
  • Date:
  • Fix GH-10447 ('p' format specifier does not yield 'Z' for 00:00).
  • Fix GH-10152 (Custom properties of Date's child classes are not serialised).
  • Fixed bug GH-10747 (Private and protected properties in serialized Date* objects throw).
  • FFI:
  • Fixed incorrect bitshifting and masking in ffi bitfield.
  • Fiber:
  • Fixed assembly on alpine x86.
  • Fixed bug GH-10496 (segfault when garbage collector is invoked inside of fiber).
  • FPM:
  • Fixed bug GH-10315 (FPM unknown child alert not valid).
  • Fixed bug GH-10385 (FPM successful config test early exit).
  • GMP:
  • Properly implement GMP::__construct().
  • Intl:
  • Fixed bug GH-10647 (Spoolchecker isSuspicious/areConfusable methods error code's argument always returning NULL0.
  • JSON:
  • Fixed JSON scanner and parser generation build.
  • MBString:
  • ext/mbstring: fix new_value length check.
  • Fix bug GH-10627 (mb_convert_encoding crashes PHP on Windows).
  • Opcache:
  • Fix incorrect page_size check.
  • OpenSSL:
  • Fixed php_openssl_set_server_dh_param() DH params errors handling.
  • PDO OCI:
  • Fixed bug #60994 (Reading a multibyte CLOB caps at 8192 chars).
  • PHPDBG:
  • Fixed bug GH-10715 (heap buffer overflow on --run option misuse).
  • PGSQL:
  • Fix GH-10672 (pg_lo_open segfaults in the strict_types mode).
  • Phar:
  • Fix incorrect check in phar tar parsing.
  • Random:
  • Fix GH-10390 (Do not trust arc4random_buf() on glibc).
  • Fix GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown).
  • Reflection:
  • Fixed bug GH-10623 (Reflection::getClosureUsedVariables opcode fix with variadic arguments).
  • Fix Segfault when using ReflectionFiber suspended by an internal function.
  • Session:
  • Fixed ps_files_cleanup_dir() on failure code paths with -1 instead of 0 as the latter was considered success by callers. (nielsdos).
  • Standard:
  • Fixed bug GH-8086 (Introduce mail.mixed_lf_and_crlf INI).
  • Fixed bug GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown).
  • Fix incorrect check in cs_8559_5 in map_from_unicode().
  • Fix bug GH-9697 for reset/end/next/prev() attempting to move pointer of properties table for certain internal classes such as FFI classes
  • Fix incorrect error check in browsecap for pcre2_match().
  • Streams:
  • Fixed bug GH-10370 (File corruption in _php_stream_copy_to_stream_ex when using copy_file_range).
  • Fixed bug GH-10548 (copy() fails on cifs mounts because of incorrect copy_file_range() len).
  • Tidy:
  • Fix memory leaks when attempting to open a non-existing file or a file over 4GB.
  • Add missing error check on tidyLoadConfig.
  • Zlib:
  • Fixed output_handler directive value's length which counted the string terminator.

New in PHP 8.2.3 (Mar 1, 2023)

  • Core:
  • Fixed bug #81744 (Password_verify() always return true with some hash). (CVE-2023-0567)
  • Fixed bug #81746 (1-byte array overrun in common path resolve code). (CVE-2023-0568)
  • SAPI:
  • Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662)

New in PHP 8.2.2 (Feb 14, 2023)

  • Core:
  • Fixed bug GH-10200 (zif_get_object_vars: Assertion `!(((__ht)->u.flags & (1<<2)) != 0)' failed).
  • Fix GH-10251 (Assertion `(flag & (1<<3)) == 0' failed).
  • Fix GH-10240 (Assertion failure when adding more than 2**30 elements to an unpacked array).
  • Fix GH-9735 (Fiber stack variables do not participate in cycle collector).
  • Fix GH-9675 (Broken run_time_cache init for internal enum methods).
  • FPM:
  • Fixed bug #77106 (Missing separator in FPM FastCGI errors).
  • Fixed bug GH-9981 (FPM does not reset fastcgi.error_header).
  • Fixed bug #68591 (Configuration test does not perform UID lookups).
  • Fixed memory leak when running FPM config test.
  • Fixed bug #67244 (Wrong owner:group for listening unix socket).
  • Hash:
  • Handle exceptions from __toString in XXH3's initialization (nielsdos)
  • LDAP:
  • Fixed bug GH-10112 (LDAPConnection::__construct() refers to ldap_create()).
  • Opcache:
  • Fix inverted bailout value in zend_runtime_jit() (Max Kellermann).
  • Fix access to uninitialized variable in accel_preload().
  • Fix zend_jit_find_trace() crashes.
  • Added missing lock for EXIT_INVALIDATE in zend_jit_trace_exit.
  • Phar:
  • Fix wrong flags check for compression method in phar_object.c (nielsdos)
  • PHPDBG:
  • Fix undefined behaviour in phpdbg_load_module_or_extension().
  • Fix NULL pointer dereference in phpdbg_create_conditional_breal().
  • Fix GH-9710: phpdbg memory leaks by option "-h" (nielsdos)
  • Fix phpdbg segmentation fault in case of malformed input (nielsdos)
  • Posix:
  • Fix memory leak in posix_ttyname() (girgias)
  • Random:
  • Fixed bug GH-10247 (Theoretical file descriptor leak for /dev/urandom).
  • Standard:
  • Fix GH-10187 (Segfault in stripslashes() with arm64).
  • Fixed bug GH-10214 (Incomplete validation of object syntax during unserialize()).
  • Fix substr_replace with slots in repl_ht being UNDEF.
  • XMLWriter:
  • Fix missing check for xmlTextWriterEndElement (nielsdos)

New in PHP 8.1.12 (Nov 22, 2022)

  • Core:
  • Fixes segfault with Fiber on FreeBSD i386 architecture.
  • Fileinfo:
  • Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files).
  • GD:
  • Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630)
  • Hash:
  • Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454)
  • MBString:
  • Fixed bug GH-9683 (Problem when ISO-2022-JP-MS is specified in mb_ encode_mimeheader).
  • Opcache:
  • Added indirect call reduction for jit on x86 architectures.
  • Session:
  • Fixed bug GH-9583 (session_create_id() fails with user defined save handler that doesn't have a validateId() method).
  • Streams:
  • Fixed bug GH-9590 (stream_select does not abort upon exception or empty valid fd set).

New in PHP 7.4.32 (Nov 3, 2022)

  • Core:
  • Fixed bug phar wrapper: DOS when using quine gzip file.
  • Fixed bug Don't mangle HTTP variable names that clash with ones that have a specific semantic meaning.

New in PHP 8.1.9 (Aug 30, 2022)

  • CLI:
  • Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable.
  • Fixed GH-8952 (Intentionally closing std handles no longer possible).
  • Core:
  • Fixed bug GH-8923 (error_log on Windows can hold the file write lock).
  • Fixed bug GH-8995 (WeakMap object reference offset causing TypeError).
  • Date:
  • Fixed bug #80047 (DatePeriod doesn't warn with custom DateTimeImmutable).
  • FPM:
  • Fixed zlog message prepend, free on incorrect address.
  • Fixed possible double free on configuration loading failure. (Heiko Weber).
  • GD:
  • Fixed bug GH-8848 (imagecopyresized() error refers to the wrong argument).
  • Intl:
  • Fixed build for ICU 69.x and onwards.
  • OPcache:
  • Fixed bug GH-8847 (PHP hanging infinitly at 100% cpu when check php syntax of a valid file).
  • Fixed bug GH-8030 (Segfault with JIT and large match/switch statements).
  • Reflection:
  • Fixed bug GH-8943 (Fixed Reflection::getModifierNames() with readonly modifier).
  • Standard:
  • Fixed the crypt_sha256/512 api build with clang > 12.
  • Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier).
  • Fixed bug GH-9017 (php_stream_sock_open_from_socket could return NULL).

New in PHP 8.1.8 (Aug 2, 2022)

  • Core:
  • Fixed bug GH-8338 (Intel CET is disabled unintentionally).
  • Fixed leak in Enum::from/tryFrom for internal enums when using JIT
  • Fixed calling internal methods with a static return type from extension code.
  • Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1 references).
  • Fixed potential use after free in php_binary_init().
  • CLI:
  • Fixed GH-8827 (Intentionally closing std handles no longer possible).
  • COM:
  • Fixed bug GH-8778 (Integer arithmethic with large number variants fails).
  • Curl:
  • Fixed CURLOPT_TLSAUTH_TYPE is not treated as a string option.
  • Date:
  • Fixed bug #72963 (Null-byte injection in CreateFromFormat and related functions).
  • Fixed bug #74671 (DST timezone abbreviation has incorrect offset).
  • Fixed bug #77243 (Weekdays are calculated incorrectly for negative years).
  • Fixed bug #78139 (timezone_open accepts invalid timezone string argument).
  • Fileinfo:
  • Fixed bug #81723 (Heap buffer overflow in finfo_buffer). (CVE-2022-31627)
  • FPM:
  • Fixed bug #67764 (fpm: syslog.ident don't work).
  • GD:
  • Fixed imagecreatefromavif() memory leak.
  • MBString:
  • Mb_detect_encoding recognizes all letters in Czech alphabet
  • Mb_detect_encoding recognizes all letters in Hungarian alphabet
  • Fixed bug GH-8685 (pcre not ready at mbstring startup).
  • Backwards-compatible mappings for 0x5C/0x7E in Shift-JIS are restored, after they had been changed in 8.1.0.
  • ODBC:
  • Fixed handling of single-key connection strings.
  • OPcache:
  • Fixed bug GH-8591 (tracing JIT crash after private instance method change).
  • OpenSSL:
  • Fixed bug #50293 (Several openssl functions ignore the VCWD).
  • Fixed bug #81713 (NULL byte injection in several OpenSSL functions working with certificates).
  • PDO_ODBC:
  • Fixed handling of single-key connection strings.
  • Zip:
  • Fixed bug GH-8781 (ZipArchive::close deletes zip file without updating stat cache).

New in PHP 8.0.20 (Jun 8, 2022)

  • CLI:
  • Fixed bug GH-8575 (CLI closes standard streams too early).
  • Core:
  • Fixed Haiku ZTS builds.
  • Date:
  • Fixed bug GH-8471 (Segmentation fault when converting immutable and mutable DateTime instances created using reflection).
  • FPM:
  • Fixed bug: php-fpm writes empty fcgi record causing nginx 502.
  • Mysqlnd:
  • Fixed bug: mysqlnd/pdo password buffer overflow.
  • OPcache:
  • Fixed bug GH-8466 (ini_get() is optimized out when the option does not exist).
  • Pcntl:
  • Fixed Haiku build.
  • Pgsql:
  • Fixed bug: Uninitialized array in pg_query_params().
  • Soap:
  • Fixed bug GH-8578 (Error on wrong parameter on SoapHeader constructor).
  • Fixed bug GH-8538 (SoapClient may strip parts of nmtokens). (cmb)
  • SPL:
  • Fixed bug GH-8235 (iterator_count() may run indefinitely). (cmb)
  • Zip:
  • Fixed type for index in ZipArchive::replaceFile.

New in PHP 7.4.29 (Apr 14, 2022)

  • Core:
  • No source changes to this release. This update allows for re-building the Windows binaries against upgraded dependencies which have received security updates.
  • Date:
  • Updated to latest IANA timezone database (2022a).

New in PHP 8.0.17 (Mar 17, 2022)

  • Core:
  • Fixed Haiku ZTS build.
  • GD:
  • Fixed libpng warning when loading interlaced images.
  • FPM:
  • Fixed bug #76109 (Unsafe access to fpm scoreboard).
  • Iconv:
  • Fixed bug #7953 (ob_clean() only does not set Content-Encoding).
  • Fixed bug #7980 (Unexpected result for iconv_mime_decode).
  • MySQLnd:
  • Fixed bug #8058 (NULL pointer dereference in mysqlnd package).
  • OPcache:
  • Fixed bug #8074 (Wrong type inference of range() result).
  • Reflection:
  • Fixed bug #8080 (ReflectionClass::getConstants() depends on def. order).
  • Zlib:
  • Fixed bug #7953 (ob_clean() only does not set Content-Encoding).

New in PHP 8.1.3 (Mar 2, 2022)

  • Core:
  • Fixed bug #81430 (Attribute instantiation leaves dangling pointer).
  • Fixed bug #7896 (Environment vars may be mangled on Windows).
  • Fixed bug #7883 (Segfault when INI file is not readable).
  • FFI:
  • Fixed bug #7867 (FFI::cast() from pointer to array is broken).
  • Filter:
  • Fix #81708: UAF due to php_filter_float() failing for ints. (CVE-2021-21708)
  • FPM:
  • Fixed memory leak on invalid port.
  • Fixed bug #7842 (Invalid OpenMetrics response format returned by FPM status page.
  • MBString:
  • Fixed bug #7902 (mb_send_mail may delimit headers with LF only).
  • MySQLnd:
  • Fixed bug #7972 (MariaDB version prefix 5.5.5- is not stripped).
  • pcntl:
  • Fixed pcntl_rfork build for DragonFlyBSD.
  • Sockets:
  • Fixed bug #7978 (sockets extension compilation errors).
  • Standard:
  • Fixed bug #7899 (Regression in unpack for negative int value).
  • Fixed bug #7875 (mails are sent even if failure to log throws exception).

New in PHP 8.0.12 (Oct 21, 2021)

  • CLI:
  • Fixed bug #81496 (Server logs incorrect request method).
  • Core:
  • Fixed bug #81435 (Observer current_observed_frame may point to an old (overwritten) frame).
  • Fixed bug #81380 (Observer may not be initialized properly).
  • DOM:
  • Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID).
  • FFI:
  • Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined).
  • FPM:
  • Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703).
  • Fileinfo:
  • Fixed bug #78987 (High memory usage during encoding detection).
  • Filter:
  • Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing).
  • Opcache:
  • Fixed bug #81472 (Cannot support large linux major/minor device number when read /proc/self/maps).
  • Reflection:
  • ReflectionAttribute is no longer final.
  • SPL:
  • Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free).
  • Fixed bug #81477 (LimitIterator + SplFileObject regression in 8.0.1).
  • Standard:
  • Fixed bug #69751 (Change Error message of sprintf/printf for missing/typo position specifier).
  • Streams:
  • Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper).
  • XML:
  • Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace).
  • Zip:
  • Fixed bug #81490 (ZipArchive::extractTo() may leak memory).
  • Fixed bug #77978 (Dirname ending in colon unzips to wrong dir).

New in PHP 8.0.11 (Sep 21, 2021)

  • Core:
  • Fixed bug #72595 (php_output_handler_append illegal write access).
  • Fixed bug #66719 (Weird behaviour when using get_called_class() with call_user_func()).
  • Fixed bug #81305 (Built-in Webserver Drops Requests With "Upgrade" Header).
  • BCMath:
  • Fixed bug #78238 (BCMath returns "-0").
  • CGI:
  • Fixed bug #80849 (HTTP Status header truncation).
  • Date:
  • Fixed bug #64975 (Error parsing when AM/PM not at the end).
  • Fixed bug #78984 (DateTimeZone accepting invalid UTC timezones).
  • Fixed bug #79580 (date_create_from_format misses leap year).
  • Fixed bug #80409 (DateTime::modify() loses time with 'weekday' parameter).
  • GD:
  • Fixed bug #51498 (imagefilledellipse does not work for large circles).
  • MySQLi:
  • Fixed bug #74544 (Integer overflow in mysqli_real_escape_string()).
  • Opcache:
  • Fixed bug #81225 (Wrong result with pow operator with JIT enabled).
  • Fixed bug #81249 (Intermittent property assignment failure with JIT enabled).
  • Fixed bug #81206 (Multiple PHP processes crash with JIT enabled).
  • Fixed bug #81272 (Segfault in var[] after array_slice with JIT).
  • Fixed bug #81255 (Memory leak in PHPUnit with functional JIT).
  • Fixed bug #80959 (Infinite loop in building cfg during JIT compilation) (Nikita, Dmitry)
  • Fixed bug #81226 (Integer overflow behavior is different with JIT enabled).
  • OpenSSL:
  • Fixed bug #81327 (Error build openssl extension on php 7.4.22).
  • PDO_ODBC:
  • Fixed bug #81252 (PDO_ODBC doesn't account for SQL_NO_TOTAL).
  • Phar:
  • Fixed bug #81211: Symlinks are followed when creating PHAR archive (cmb)
  • Shmop:
  • Fixed bug #81283 (shmop can't read beyond 2147483647 bytes).
  • SimpleXML:
  • Fixed bug #81325 (Segfault in zif_simplexml_import_dom).
  • Standard:
  • Fixed bug #72146 (Integer overflow on substr_replace).
  • Fixed bug #81265 (getimagesize returns 0 for 256px ICO images).
  • Fixed bug #74960 (Heap buffer overflow via str_repeat).
  • Streams:
  • Fixed bug #81294 (Segfault when removing a filter).

New in PHP 7.3.30 (Aug 27, 2021)

  • Phar:
  • Fixed bug #81211: Symlinks are followed when creating PHAR archive.

New in PHP 8.0.9 (Jul 30, 2021)

  • Core:
  • Fixed bug #81145 (copy() and stream_copy_to_stream() fail for +4GB files).
  • Fixed bug #81163 (incorrect handling of indirect vars in __sleep).
  • Fixed bug #81159 (Object to int warning when using an object as a string offset).
  • Fixed bug #80728 (PHP built-in web server resets timeout when it can kill the process).
  • Fixed bug #73630 (Built-in Weberver - overwrite $_SERVER['request_uri']).
  • Fixed bug #80173 (Using return value of zend_assign_to_variable() is not safe).
  • Fixed bug #73226 (--r[fcez] always return zero exit code).
  • Intl:
  • Fixed bug #72809 (Locale::lookup() wrong result with canonicalize option).
  • Fixed bug #68471 (IntlDateFormatter fails for "GMT+00:00" timezone).
  • Fixed bug #74264 (grapheme_strrpos() broken for negative offsets).
  • OpenSSL:
  • Fixed bug #52093 (openssl_csr_sign truncates $serial).
  • PCRE:
  • Fixed bug #81101 (PCRE2 10.37 shows unexpected result).
  • Fixed bug #81243 (Too much memory is allocated for preg_replace()).
  • Reflection:
  • Fixed bug #81208 (Segmentation fault while create newInstance from attribute).
  • Standard:
  • Fixed bug #81223 (flock() only locks first byte of file).

New in PHP 7.4.15 RC2 (Jan 20, 2021)

  • Core:
  • Fixed bug #80523 (bogus parse error on >4GB source code)
  • Fixed bug #80384 (filter buffers entire read until file closed)cmb)
  • Curl:
  • Fixed bug #80595 (Resetting POSTFIELDS to empty array breaks request).
  • Date:
  • Fixed bug #80376 (last day of the month causes runway cpu usage. (Derick)
  • MySQLi:
  • Fixed bug #67983 (mysqlnd with MYSQLI_OPT_INT_AND_FLOAT_NATIVE fails to interpret bit columns)
  • Fixed bug #64638 (Fetching resultsets from stored procedure with cursor
  • fails)
  • Fixed bug #72862 (segfault using prepared statements on stored procedures that use a cursor)
  • Fixed bug #77935 (Crash in mysqlnd_fetch_stmt_row_cursor when calling an SP with a cursor)
  • Phar:
  • Fixed bug #77565 (Incorrect locator detection in ZIP-based phars)
  • Fixed bug #69279 (Compressed ZIP Phar extractTo() creates garbage files)

New in PHP 7.3.26 (Jan 7, 2021)

  • The PHP development team announces the immediate availability of PHP 7.3.26. This is a security release.

New in PHP 8.0.0 (Dec 15, 2020)

  • PHP 8.0 comes with numerous improvements and new features such as:
  • Union Types
  • Named Arguments
  • Match Expressions
  • Attributes
  • Constructor Property Promotion
  • Nullsafe Operator
  • Weak Maps
  • Just In Time Compilation
  • And much much more...

New in PHP 7.4.7 (Jul 7, 2020)

  • Core:
  • Fixed bug #79599 (coredump in set_error_handler).
  • Fixed bug #79566 (Private SHM is not private on Windows).
  • Fixed bug #79489 (.user.ini does not inherit).
  • Fixed bug #79600 (Regression in 7.4.6 when yielding an array based generator).
  • Fixed bug #79657 ("yield from" hangs when invalid value encountered).
  • FFI:
  • Fixed bug #79571 (FFI: var_dumping unions may segfault).
  • GD:
  • Fixed bug #79615 (Wrong GIF header written in GD GIFEncode).
  • MySQLnd:
  • Fixed bug #79596 (MySQL FLOAT truncates to int some locales).
  • Opcache:
  • Fixed bug #79588 (Boolean opcache settings ignore on/off values).
  • Fixed bug #79548 (Preloading segfault with inherited method using static variable).
  • Fixed bug #79603 (RTD collision with opcache).
  • Standard:
  • Fixed bug #79561 (dns_get_record() fails with DNS_ALL).

New in PHP 7.3.20 (Jul 7, 2020)

  • Core:
  • Fixed bug #79650 (php-win.exe 100% cpu lockup). (cmb)
  • Fixed bug #79668 (get_defined_functions(true) may miss functions). (cmb, Nikita)
  • Fixed possibly unsupported timercmp() usage. (cmb)
  • Exif:
  • Fixed bug #79687 (Sony picture - PHP Warning - Make, Model, MakerNotes)
  • Filter:
  • Fixed bug #73527 (Invalid memory access in php_filter_strip). (cmb)
  • GD:
  • Fixed bug #79676 (imagescale adds black border with IMG_BICUBIC). (cmb)
  • OpenSSL:
  • Fixed bug #62890 (default_socket_timeout=-1 causes connection to timeout).
  • PDO SQLite:
  • Fixed bug #79664 (PDOStatement::getColumnMeta fails on empty result set).
  • SPL:
  • Fixed bug #79710 (Reproducible segfault in error_handler during GC involved an SplFileObject). (Nikita)
  • Standard:
  • Fixed bug #74267 (segfault with streams and invalid data). (cmb)
  • Fixed bug #79579 (ZTS build of PHP 7.3.17 doesn't handle ERANGE for posix_getgrgid and others). (Böszörményi Zoltán)

New in PHP 7.4.6 (May 12, 2020)

  • Core:
  • Fixed bug #78434 (Generator yields no items after valid() call). (Nikita)
  • Fixed bug #79477 (casting object into array creates references). (Nikita)
  • Fixed bug #79514 (Memory leaks while including unexistent file). (cmb,
  • Nikita)
  • Fixed bug #79470 (PHP incompatible with 3rd party file system on demand).
  • (cmb)
  • Fixed bug #78784 (Unable to interact with files inside a VFS for Git
  • Repository). (cmb)
  • Fixed bug #78875 (Long variables cause OOM and temp files are not cleaned).
  • (cmb) (CVE-2019-11048)
  • Fixed bug #78876 (Long variables cause OOM and temp files are not cleaned). (cmb) (CVE-2019-11048)
  • DOM:
  • Fixed bug #78221 (DOMNode::normalize() doesn't remove empty text nodes). (cmb)
  • EXIF:
  • Fixed bug #79336 (ext/exif/tests/bug79046.phpt fails on Big endian arch) (Nikita)
  • FCGI:
  • Fixed bug #79491 (Search for .user.ini extends up to root dir). (cmb)
  • MBString:
  • Fixed bug #79441 (Segfault in mb_chr() if internal encoding is unsupported). (Girgias)
  • OpenSSL:
  • Fixed bug #79497 (stream_socket_client() throws an unknown error sometimes with <1s timeout). (Joe Cai)
  • PCRE:
  • Upgraded to PCRE2 10.34. (cmb)
  • Phar:
  • Fixed bug #79503 (Memory leak on duplicate metadata). (cmb)
  • SimpleXML:
  • Fixed bug #79528 (Different object of the same xml between 7.4.5 and 7.4.4). (cmb)
  • SPL:
  • Fixed bug #69264 (__debugInfo() ignored while extending SPL classes). (cmb)
  • Fixed bug #67369 (ArrayObject serialization drops the iterator class). (Alex Dowad)
  • Standard:
  • Fixed bug #79468 (SIGSEGV when closing stream handle with a stream filter appended). (dinosaur)
  • Fixed bug #79447 (Serializing uninitialized typed properties with __sleep should not throw). (nicolas-grekas)

New in PHP 7.2.30 (Apr 18, 2020)

  • Standard:
  • Fixed bug #79468 (SIGSEGV when closing stream handle with a stream filter appended).
  • Fixed bug #79330 (shell_exec() silently truncates after a null byte).
  • Fixed bug #79465 (OOB Read in urldecode()).

New in PHP 7.3.9 (Sep 24, 2019)

  • Core:
  • Fixed bug #78363 (Buffer overflow in zendparse).
  • Fixed bug #78379 (Cast to object confuses GC, causes crash).
  • Fixed bug #78412 (Generator incorrectly reports non-releasable $this as GC child).
  • Curl:
  • Fixed bug #77946 (Bad cURL resources returned by curl_multi_info_read()).
  • Exif:
  • Fixed bug #78333 (Exif crash (bus error) due to wrong alignment and invalid cast).
  • FPM:
  • Fixed bug #77185 (Use-after-free in FPM master event handling).
  • Iconv:
  • Fixed bug #78342 (Bus error in configure test for iconv //IGNORE).
  • LiteSpeed:
  • Updated to LiteSpeed SAPI V7.5 (Fixed clean shutdown).
  • MBString:
  • Fixed bug #78380 (Oniguruma 6.9.3 fixes CVEs). (CVE-2019-13224)
  • MySQLnd:
  • Fixed bug #78179 (MariaDB server version incorrectly detected).
  • Fixed bug #78213 (Empty row pocket).
  • Opcache:
  • Fixed bug #77191 (Assertion failure in dce_live_ranges() when silencing is used).
  • Standard:
  • Fixed bug #69100 (Bus error from stream_copy_to_stream (file -> SSL stream) with invalid length).
  • Fixed bug #78282 (atime and mtime mismatch).
  • Fixed bug #78326 (improper memory deallocation on stream_get_contents() with fixed length buffer).
  • Fixed bug #78346 (strip_tags no longer handling nested php tags).

New in PHP 7.2.19 (May 30, 2019)

  • EXIF:
  • Fixed bug #77950 (Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG).
  • Mail:
  • Fixed bug #77821 (Potential heap corruption in TSendMail()).

New in PHP 7.3.5 (May 1, 2019)

  • Core:
  • Fixed bug #77903 (ArrayIterator stops iterating after offsetSet call).
  • CLI:
  • Fixed bug #77794 (Incorrect Date header format in built-in server).
  • EXIF
  • Fixed bug #77950 (Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG).
  • (CVE-2019-11036)
  • Interbase:
  • Fixed bug #72175 (Impossibility of creating multiple connections to Interbase with php 7.x).
  • Intl:
  • Fixed bug #77895 (IntlDateFormatter::create fails in strict mode if $locale = null).
  • litespeed:
  • LiteSpeed SAPI 7.3.1, better process management, new API function itespeed_finish_request(). (George Wang)
  • LDAP:
  • Fixed bug #77869 (Core dump when using server controls) (mcmic)
  • Mail:
  • Fixed bug #77821 (Potential heap corruption in TSendMail()). (cmb)
  • mbstring:
  • Implemented FR #72777 (Implement regex stack limits for mbregex functions).
  • MySQLi:
  • Fixed bug #77773 (Unbuffered queries leak memory - MySQLi / mysqlnd).
  • PCRE:
  • Fixed bug #77827 (preg_match does not ignore r in regex flags). (requinix,
  • cmb)
  • PDO:
  • Fixed bug #77849 (Disable cloning of PDO handle/connection objects).
  • phpdbg:
  • Fixed bug #76801 (too many open files).
  • Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints).
  • Fixed bug #77805 (phpdbg build fails when readline is shared).
  • Reflection:
  • Fixed bug #77772 (ReflectionClass::getMethods(null) doesn't work).
  • Fixed bug #77882 (Different behavior: always calls destructor).
  • Standard:
  • Fixed bug #77793 (Segmentation fault in extract() when overwriting reference with itself).
  • Fixed bug #77844 (Crash due to null pointer in parse_ini_string with INI_SCANNER_TYPED).
  • Fixed bug #77853 (Inconsistent substr_compare behaviour with empty
  • haystack).

New in PHP 7.2.17 (Apr 4, 2019)

  • Core:
  • Fixed bug #77738 (Nullptr deref in zend_compile_expr).
  • Fixed bug #77660 (Segmentation fault on break 2147483648).
  • Fixed bug #77652 (Anonymous classes can lose their interface information).
  • Fixed bug #77676 (Unable to run tests when building shared extension on AIX).
  • Bcmath:
  • Fixed bug #77742 (bcpow() implementation related to gcc compiler optimization).
  • COM:
  • Fixed bug #77578 (Crash when php unload).
  • Date:
  • Fixed bug #50020 (DateInterval:createDateFromString() silently fails).
  • Fixed bug #75113 (Added DatePeriod::getRecurrences() method).
  • EXIF:
  • Fixed bug #77753 (Heap-buffer-overflow in php_ifd_get32s).
  • Fixed bug #77831 (Heap-buffer-overflow in exif_iif_add_value).
  • FPM:
  • Fixed bug #77677 (FPM fails to build on AIX due to missing WCOREDUMP).
  • GD:
  • Fixed bug #77700 (Writing truecolor images as GIF ignores interlace flag).
  • MySQLi:
  • Fixed bug #77597 (mysqli_fetch_field hangs scripts).
  • Opcache:
  • Fixed bug #77691 (Opcache passes wrong value for inline array push assignments).
  • Fixed bug #77743 (Incorrect pi node insertion for jmpznz with identical successors).
  • phpdbg:
  • Fixed bug #77767 (phpdbg break cmd aliases listed in help do not match actual aliases).
  • sodium:
  • Fixed bug #77646 (sign_detached() strings not terminated).
  • SQLite3:
  • Added sqlite3.defensive INI directive.
  • Standard:
  • Fixed bug #77664 (Segmentation fault when using undefined constant in custom wrapper).
  • Fixed bug #77669 (Crash in extract() when overwriting extracted array).
  • Fixed bug #76717 (var_export() does not create a parsable value for PHP_INT_MIN).
  • Fixed bug #77765 (FTP stream wrapper should set the directory as executable).

New in PHP 7.2.17 RC1 (Mar 22, 2019)

  • Core:
  • Fixed bug #77738 (Nullptr deref in zend_compile_expr). (Laruence)
  • Fixed bug #77660 (Segmentation fault on break 2147483648). (Laruence)
  • Fixed bug #77652 (Anonymous classes can lose their interface information). (Nikita)
  • Fixed bug #77676 (Unable to run tests when building shared extension on AIX). (Kevin Adler)
  • Bcmath:
  • Fixed bug #77742 (bcpow() implementation related to gcc compiler optimization). (Nikita)
  • COM:
  • Fixed bug #77578 (Crash when php unload). (cmb)
  • Date:
  • Fixed bug #50020 (DateInterval:createDateFromString() silently fails). (Derick)
  • Fixed bug #75113 (Added DatePeriod::getRecurrences() method). (Ignace Nyamagana Butera)
  • FPM:
  • Fixed bug #77677 (FPM fails to build on AIX due to missing WCOREDUMP). (Kevin Adler)
  • GD:
  • Fixed bug #77700 (Writing truecolor images as GIF ignores interlace flag). (cmb)
  • MySQLi:
  • Fixed bug #77597 (mysqli_fetch_field hangs scripts). (Nikita)
  • Opcache:
  • Fixed bug #77691 (Opcache passes wrong value for inline array push assignments). (Nikita)
  • Fixed bug #77743 (Incorrect pi node insertion for jmpznz with identical successors). (Nikita)
  • phpdbg:
  • Fixed bug #77767 (phpdbg break cmd aliases listed in help do not match actual aliases). (Miriam Lauter)
  • sodium:
  • Fixed bug #77646 (sign_detached() strings not terminated). (Frank)
  • SQLite3:
  • Added sqlite3.defensive INI directive. (BohwaZ)
  • Standard:
  • Fixed bug #77664 (Segmentation fault when using undefined constant in custom wrapper). (Laruence)
  • Fixed bug #77669 (Crash in extract() when overwriting extracted array). (Nikita)
  • Fixed bug #76717 (var_export() does not create a parsable value for PHP_INT_MIN). (Nikita)
  • Fixed bug #77765 (FTP stream wrapper should set the directory as executable). (Vlad Temian)

New in PHP 7.3.4 RC1 (Mar 22, 2019)

  • Core:
  • Fixed bug #77738 (Nullptr deref in zend_compile_expr). (Laruence)
  • Fixed bug #77660 (Segmentation fault on break 2147483648). (Laruence)
  • Fixed bug #77652 (Anonymous classes can lose their interface information). (Nikita)
  • Fixed bug #77345 (Stack Overflow caused by circular reference in garbage collection). (Alexandru Patranescu, Nikita, Dmitry)
  • Fixed bug #76956 (Wrong value for 'syslog.filter' documented in php.ini). (cmb)
  • Apache2Handler:
  • Fixed bug #77648 (BOM in sapi/apache2handler/php_functions.c). (cmb)
  • Bcmath:
  • Fixed bug #77742 (bcpow() implementation related to gcc compiler optimization). (Nikita)
  • CLI Server:
  • Fixed bug #77722 (Incorrect IP set to $_SERVER['REMOTE_ADDR'] on the localhost). (Nikita)
  • COM:
  • Fixed bug #77578 (Crash when php unload). (cmb)
  • FPM:
  • Fixed bug #77677 (FPM fails to build on AIX due to missing WCOREDUMP). (Kevin Adler)
  • GD:
  • Fixed bug #77700 (Writing truecolor images as GIF ignores interlace flag). (cmb)
  • MySQLi:
  • Fixed bug #77597 (mysqli_fetch_field hangs scripts). (Nikita)
  • Opcache:
  • Fixed bug #77743 (Incorrect pi node insertion for jmpznz with identical successors). (Nikita)
  • Phar:
  • Fxied bug #77697 (Crash on Big_Endian platform). (Laruence)
  • phpdbg:
  • Fixed bug #77767 (phpdbg break cmd aliases listed in help do not match actual aliases). (Miriam Lauter)
  • sodium:
  • Fixed bug #77646 (sign_detached() strings not terminated). (Frank)
  • SQLite3:
  • Added sqlite3.defensive INI directive. (BohwaZ)
  • Standard:
  • Fixed bug #77664 (Segmentation fault when using undefined constant in custom wrapper). (Laruence)
  • Fixed bug #77669 (Crash in extract() when overwriting extracted array). (Nikita)
  • Fixed bug #76717 (var_export() does not create a parsable value for PHP_INT_MIN). (Nikita)
  • Fixed bug #77765 (FTP stream wrapper should set the directory as executable). (Vlad Temian)

New in PHP 7.1.27 (Mar 8, 2019)

  • Core:
  • Fixed bug #77630 (rename() across the device may allow unwanted access during processing).
  • EXIF:
  • Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF).
  • Fixed bug #77540 (Invalid Read on exif_process_SOFn).
  • Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).
  • Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).
  • PHAR:
  • Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename).
  • Fixed bug #77586 (phar_tar_writeheaders_int() buffer overflow).
  • SPL:
  • Fixed bug #77431 (openFile() silently truncates after a null byte).

New in PHP 7.2.16 (Mar 8, 2019)

  • Core:
  • Fixed bug #77589 (Core dump using parse_ini_string with numeric sections).
  • Fixed bug #77630 (rename() across the device may allow unwanted access during processing).
  • COM:
  • Fixed bug #77621 (Already defined constants are not properly reported).
  • EXIF:
  • Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF).
  • Fixed bug #77540 (Invalid Read on exif_process_SOFn).
  • Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).
  • Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).
  • PDO_OCI:
  • Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO, and CLIENT_IDENTIFIER.
  • PHAR:
  • Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename).
  • SPL:
  • Fixed bug #51068 (DirectoryIterator glob:// don't support current path relative queries).
  • Fixed bug #77431 (openFile() silently truncates after a null byte).
  • Standard:
  • Fixed bug #77552 (Unintialized php_stream_statbuf in stat functions).
  • MySQL:
  • Disabled LOCAL INFILE by default, can be enabled using php.ini directive mysqli.allow_local_infile for mysqli, or PDO::MYSQL_ATTR_LOCAL_INFILE attribute for pdo_mysql.

New in PHP 7.3.3 (Mar 8, 2019)

  • Core:
  • Fixed bug #77589 (Core dump using parse_ini_string with numeric sections).
  • Fixed bug #77329 (Buffer Overflow via overly long Error Messages).
  • Fixed bug #77494 (Disabling class causes segfault on member access).
  • Fixed bug #77498 (Custom extension Segmentation fault when declare static property).
  • Fixed bug #77530 (PHP crashes when parsing `(2)::class`).
  • Fixed bug #77546 (iptcembed broken function).
  • Fixed bug #77630 (rename() across the device may allow unwanted access during processing).
  • COM:
  • Fixed bug #77621 (Already defined constants are not properly reported).
  • Fixed bug #77626 (Persistence confusion in php_com_import_typelib()).
  • EXIF:
  • Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF).
  • Fixed bug #77540 (Invalid Read on exif_process_SOFn).
  • Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).
  • Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).
  • Mbstring:
  • Fixed bug #77514 (mb_ereg_replace() with trailing backslash adds null byte).
  • MySQL:
  • Disabled LOCAL INFILE by default, can be enabled using php.ini directive mysqli.allow_local_infile for mysqli, or PDO::MYSQL_ATTR_LOCAL_INFILE attribute for pdo_mysql.
  • OpenSSL:
  • Fixed bug #77390 (feof might hang on TLS streams in case of fragmented TLS records).
  • PDO_OCI:
  • Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO, and CLIENT_IDENTIFIER.
  • PHAR:
  • Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename).
  • Fixed bug #77586 (phar_tar_writeheaders_int() buffer overflow).
  • phpdbg:
  • Fixed bug #76596 (phpdbg support for display_errors=stderr).
  • SPL:
  • Fixed bug #51068 (DirectoryIterator glob:// don't support current path relative queries).
  • Fixed bug #77431 (openFile() silently truncates after a null byte).
  • Standard:
  • Fixed bug #77552 (Unintialized php_stream_statbuf in stat functions).
  • Fixed bug #77612 (setcookie() sets incorrect SameSite header if all of its options filled).

New in PHP 7.1.26 (Jan 11, 2019)

  • Core:
  • Fixed bug #77369 (memcpy with negative length via crafted DNS response).
  • GD:
  • Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free).
  • Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap).
  • IMAP:
  • Fixed bug #77020 (null pointer dereference in imap_mail).
  • Mbstring:
  • Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token).
  • Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node).
  • Fixed bug #77381 (heap buffer overflow in multibyte match_at).
  • Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string).
  • Fixed bug #77385 (buffer overflow in fetch_token).
  • Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode).
  • Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code).
  • Phar:
  • Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext).
  • Xmlrpc:
  • Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()).
  • Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code).

New in PHP 7.1.25 (Jan 3, 2019)

  • Core:
  • Fixed bug #71041 (zend_signal_startup() needs ZEND_API).
  • Fixed bug #77231 (Segfault when using convert.quoted-printable-encode filter).
  • ftp:
  • Fixed bug #77151 (ftp_close(): SSL_read on shutdown).
  • iconv:
  • Fixed bug #77147 (Fixing 60494 ignored ICONV_MIME_DECODE_CONTINUE_ON_ERROR).
  • IMAP:
  • Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter).
  • ODBC:
  • Fixed bug #77079 (odbc_fetch_object has incorrect type signature).
  • Opcache:
  • Fixed bug #77058 (Type inference in opcache causes side effects).
  • Phar:
  • Fixed bug #77022 (PharData always creates new files with mode 0666).
  • Fixed bug #77143 (Heap Buffer Overflow (READ: 4) in phar_parse_pharfile).
  • PGSQL:
  • Fixed bug #77047 (pg_convert has a broken regex for the 'TIME WITHOUT TIMEZONE' data type).
  • SOAP:
  • Fixed bug #76348 (WSDL_CACHE_MEMORY causes Segmentation fault).
  • Fixed bug #77141 (Signedness issue in SOAP when precision=-1).
  • Sockets:
  • Fixed bug #67619 (Validate length on socket_write).

New in PHP 7.0.33 (Dec 7, 2018)

  • Core:
  • Fixed bug #77231 (Segfault when using convert.quoted-printable-encode filter).
  • IMAP:
  • Fixed bug #77020 (null pointer dereference in imap_mail).
  • Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter).
  • Phar:
  • Fixed bug #77022 (PharData always creates new files with mode 0666).
  • Fixed bug #77143 (Heap Buffer Overflow (READ: 4) in phar_parse_pharfile).

New in PHP 7.1.23 (Oct 12, 2018)

  • Core:
  • Fixed bug #76901 (method_exists on SPL iterator passthrough method corrupts memory).
  • Fixed bug #76846 (Segfault in shutdown function after memory limit error).
  • CURL:
  • Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected).
  • iconv:
  • Fixed bug #66828 (iconv_mime_encode Q-encoding longer than it should be).
  • Opcache:
  • Fixed bug #76832 (ZendOPcache.MemoryBase periodically deleted by the OS).
  • POSIX:
  • Fixed bug #75696 (posix_getgrnam fails to print details of group).
  • Reflection:
  • Fixed bug #74454 (Wrong exception being thrown when using ReflectionMethod).
  • Standard:
  • Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open data connection).
  • Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with stream_socket_client).
  • Fixed bug #75533 (array_reduce is slow when $carry is large array).
  • Zlib:
  • Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed).

New in PHP 7.2.11 (Oct 12, 2018)

  • Core:
  • Fixed bug #76800 (foreach inconsistent if array modified during loop).
  • Fixed bug #76901 (method_exists on SPL iterator passthrough method corrupts memory).
  • CURL:
  • Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected).
  • iconv:
  • Fixed bug #66828 (iconv_mime_encode Q-encoding longer than it should be).
  • Opcache:
  • Fixed bug #76832 (ZendOPcache.MemoryBase periodically deleted by the OS).
  • Fixed bug #76796 (Compile-time evaluation of disabled function in opcache causes segfault).
  • POSIX:
  • Fixed bug #75696 (posix_getgrnam fails to print details of group).
  • Reflection:
  • Fixed bug #74454 (Wrong exception being thrown when using ReflectionMethod).
  • Standard:
  • Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open data connection).
  • Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with stream_socket_client).
  • Fixed bug #75533 (array_reduce is slow when $carry is large array).
  • XMLRPC:
  • Fixed bug #76886 (Can't build xmlrpc with expat).
  • Zlib:
  • Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed).

New in PHP 7.1.22 (Sep 14, 2018)

  • Core:
  • Fixed bug #76754 (parent private constant in extends class memory leak).
  • Fixed bug #72443 (Generate enabled extension).
  • Apache2:
  • Fixed bug #76582 (Apache bucket brigade sometimes becomes invalid).
  • Bz2:
  • Fixed arginfo for bzcompress.
  • gettext:
  • Fixed bug #76517 (incorrect restoring of LDFLAGS).
  • iconv:
  • Fixed bug #68180 (iconv_mime_decode can return extra characters in a header).
  • Fixed bug #63839 (iconv_mime_decode_headers function is skipping headers).
  • Fixed bug #60494 (iconv_mime_decode does ignore special characters).
  • Fixed bug #55146 (iconv_mime_decode_headers() skips some headers).
  • intl:
  • Fixed bug #74484 (MessageFormatter::formatMessage memory corruption with 11+ named placeholders).
  • libxml:
  • Fixed bug #76777 ("public id" parameter of libxml_set_external_entity_loader callback undefined).
  • mbstring:
  • Fixed bug #76704 (mb_detect_order return value varies based on argument type).
  • Opcache:
  • Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file).
  • OpenSSL:
  • Fixed bug #76705 (unusable ssl => peer_fingerprint in stream_context_create()).
  • phpdbg:
  • Fixed bug #76595 (phpdbg man page contains outdated information).
  • SPL:
  • Fixed bug #68825 (Exception in DirectoryIterator::getLinkTarget()).
  • Fixed bug #68175 (RegexIterator pregFlags are NULL instead of 0).
  • Standard:
  • Fixed bug #76778 (array_reduce leaks memory if callback throws exception).
  • zlib:
  • Fixed bug #65988 (Zlib version check fails when an include/zlib/ style dir is passed to the --with-zlib configure option).
  • Fixed bug #76709 (Minimal required zlib library is 1.2.0.4).

New in PHP 7.3.0 RC1 (Sep 13, 2018)

  • 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)

New in PHP 7.1.20 (Jul 20, 2018)

  • Core:
  • Fixed bug #76534 (PHP hangs on 'illegal string offset on string references with an error handler).
  • Fixed bug #76502 (Chain of mixed exceptions and errors does not serialize properly).
  • Date:
  • Fixed bug #76462 (Undefined property: DateInterval::$f).
  • exif:
  • Fixed bug #76423 (Int Overflow lead to Heap OverFlow in exif_thumbnail_extract of exif.c).
  • Fixed bug #76557 (heap-buffer-overflow (READ of size 48) while reading exif data).
  • FPM:
  • Fixed bug #73342 (Vulnerability in php-fpm by changing stdin to non-blocking).
  • GMP:
  • Fixed bug #74670 (Integer Underflow when unserializing GMP and possible other classes).
  • intl:
  • Fixed bug #76556 (get_debug_info handler for BreakIterator shows wrong type).
  • mbstring:
  • Fixed bug #76532 (Integer overflow and excessive memory usage in mb_strimwidth).
  • PGSQL:
  • Fixed bug #76548 (pg_fetch_result did not fetch the next row).
  • phpdbg:
  • Fix arginfo wrt. optional/required parameters.
  • Reflection:
  • Fixed bug #76536 (PHP crashes with core dump when throwing exception in error handler).
  • Fixed bug #75231 (ReflectionProperty#getValue() incorrectly works with inherited classes).
  • Standard:
  • Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys).
  • Fixed bug #71848 (getimagesize with $imageinfo returns false).
  • Win32:
  • Fixed bug #76459 (windows linkinfo lacks openbasedir check).

New in PHP 7.0.31 - Old Stable (Jul 20, 2018)

  • Exif:
  • Fixed bug #76423 (Int Overflow lead to Heap OverFlow in exif_thumbnail_extract of exif.c).
  • Fixed bug #76557 (heap-buffer-overflow (READ of size 48) while reading exif data).
  • Win32:
  • Fixed bug #76459 (windows linkinfo lacks openbasedir check).

New in PHP 7.2.7 (Jun 21, 2018)

  • Core:
  • Fixed bug #76337 (segfault when opcache enabled + extension use zend_register_class_alias).
  • CLI Server:
  • Fixed bug #76333 (PHP built-in server does not find files if root path contains special characters).
  • OpenSSL:
  • Fixed bug #76296 (openssl_pkey_get_public does not respect open_basedir).
  • Fixed bug #76174 (openssl extension fails to build with LibreSSL 2.7).
  • SPL:
  • Fixed bug #76367 (NoRewindIterator segfault 11).
  • Standard:
  • Fixed bug #76410 (SIGV in zend_mm_alloc_small).
  • Fixed bug #76335 ("link(): Bad file descriptor" with non-ASCII path).

New in PHP 7.2.6 (May 25, 2018)

  • EXIF:
  • Fixed bug #76164 (exif_read_data zend_mm_heap corrupted).
  • FPM:
  • Fixed bug #76075 --with-fpm-acl wrongly tries to find libacl on FreeBSD.
  • intl:
  • Fixed bug #74385 (Locale::parseLocale() broken with some arguments).
  • Opcache:
  • Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).
  • Fixed bug #76275 (Assertion failure in file cache when unserializing empty try_catch_array).
  • Fixed bug #76281 (Opcache causes incorrect "undefined variable" errors).
  • Reflection:
  • Fixed arginfo of array_replace(_recursive) and array_merge(_recursive).
  • Session:
  • Fixed bug #74892 (Url Rewriting (trans_sid) not working on urls that start with "#").

New in PHP 7.2.5 (May 10, 2018)

  • Core:
  • Fixed bug #75722 (Convert valgrind detection to configure option).
  • Date:
  • Fixed bug #76131 (mismatch arginfo for date_create).
  • Exif:
  • Fixed bug #76130 (Heap Buffer Overflow (READ: 1786) in exif_iif_add_value). (CVE-2018-10549)
  • FPM:
  • Fixed bug #68440 (ERROR: failed to reload: execvp() failed: Argument list too long).
  • Fixed incorrect write to getenv result in FPM reload.
  • GD:
  • Fixed bug #52070 (imagedashedline() - dashed line sometimes is not visible).
  • iconv:
  • Fixed bug #76249 (stream filter convert.iconv leads to infinite loop on invalid sequence). (CVE-2018-10546)
  • intl:
  • Fixed bug #76153 (Intl compilation fails with icu4c 61.1).
  • ldap:
  • Fixed bug #76248 (Malicious LDAP-Server Response causes Crash). (CVE-2018-10548)
  • mbstring:
  • Fixed bug #75944 (Wrong cp1251 detection).
  • Fixed bug #76113 (mbstring does not build with Oniguruma 6.8.1).
  • ODBC:
  • Fixed bug #76088 (ODBC functions are not available by default on Windows).
  • Opcache:
  • Fixed bug #76094 (Access violation when using opcache).
  • Phar:
  • Fixed bug #76129 (fix for CVE-2018-5712 may not be complete). (CVE-2018-10547)
  • phpdbg:
  • Fixed bug #76143 (Memory corruption: arbitrary NUL overwrite).
  • SPL:
  • Fixed bug #76131 (mismatch arginfo for splarray constructor).
  • standard:
  • Fixed bug #74139 (mail.add_x_header default inconsistent with docs).
  • Fixed bug #75996 (incorrect url in header for mt_rand).

New in PHP 7.2.4 (Mar 29, 2018)

  • Core:
  • Fixed bug #76025 (Segfault while throwing exception in error_handler).
  • Fixed bug #76044 ('date: illegal option -- -' in ./configure on FreeBSD).
  • FPM:
  • Fixed bug #75605 (Dumpable FPM child processes allow bypassing opcache access controls).
  • FTP:
  • Fixed ftp_pasv arginfo.
  • GD:
  • Fixed bug #73957 (signed integer conversion in imagescale()).
  • Fixed bug #76041 (null pointer access crashed php).
  • Fixed imagesetinterpolation arginfo.
  • iconv:
  • Fixed bug #75867 (Freeing uninitialized pointer).
  • Mbstring:
  • Fixed bug #62545 (wrong unicode mapping in some charsets).
  • Opcache:
  • Fixed bug #75969 (Assertion failure in live range DCE due to block pass misoptimization).
  • OpenSSL:
  • Fixed openssl_* arginfos.
  • PCNTL:
  • Fixed bug #75873 (pcntl_wexitstatus returns incorrect on Big_Endian platform (s390x)).
  • Phar:
  • Fixed bug #76085 (Segmentation fault in buildFromIterator when directory name contains a n).
  • Standard:
  • Fixed bug #75961 (Strange references behavior).
  • Fixed some arginfos.
  • Fixed bug #76068 (parse_ini_string fails to parse "[foo]nbar=1|>baz" with segfault).

New in PHP 7.2.3 (Mar 28, 2018)

  • Core:
  • Fixed bug #75864 ("stream_isatty" returns wrong value on s390x).
  • Apache2Handler:
  • Fixed bug #75882 (a simple way for segfaults in threadsafe php just with configuration).
  • Date:
  • Fixed bug #75857 (Timezone gets truncated when formatted).
  • Fixed bug #75928 (Argument 2 for `DateTimeZone::listIdentifiers()` should accept `null`).
  • Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it).
  • LDAP:
  • Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros).
  • libxml2:
  • Fixed bug #75871 (use pkg-config where available).
  • PGSQL:
  • Fixed bug #75838 (Memory leak in pg_escape_bytea()).
  • Phar:
  • Fixed bug #54289 (Phar::extractTo() does not accept specific directories to be extracted).
  • Fixed bug #65414 (deal with leading slash while adding files correctly).
  • Fixed bug #65414 (deal with leading slash when adding files correctly).
  • ODBC:
  • Fixed bug #73725 (Unable to retrieve value of varchar(max) type).
  • Opcache:
  • Fixed bug #75729 (opcache segfault when installing Bitrix).
  • Fixed bug #75893 (file_get_contents $http_response_header variable bugged with opcache).
  • Fixed bug #75938 (Modulus value not stored in variable).
  • SPL:
  • Fixed bug #74519 (strange behavior of AppendIterator).
  • Standard:
  • Fixed bug #75916 (DNS_CAA record results contain garbage).
  • Fixed bug #75981 (stack-buffer-overflow while parsing HTTP response). (CVE-2018-7584)

New in PHP 7.2.2 (Feb 1, 2018)

  • Core:
  • Fixed bug #75742 (potential memleak in internal classes's static members).
  • Fixed bug #75679 (Path 260 character problem).
  • Fixed bug #75614 (Some non-portable == in shell scripts).
  • Fixed bug #75786 (segfault when using spread operator on generator passed by reference).
  • Fixed bug #75799 (arg of get_defined_functions is optional).
  • Fixed bug #75396 (Exit inside generator finally results in fatal error).
  • FCGI:
  • Fixed bug #75794 (getenv() crashes on Windows 7.2.1 when second parameter is false).
  • IMAP:
  • Fixed bug #75774 (imap_append HeapCorruction).
  • Opcache:
  • Fixed bug #75720 (File cache not populated after SHM runs full).
  • Fixed bug #75687 (var 8 (TMP) has array key type but not value type).
  • Fixed bug #75698 (Using @ crashes php7.2-fpm).
  • Fixed bug #75579 (Interned strings buffer overflow may cause crash).
  • PDO:
  • Fixed bug #75616 (PDO extension doesn't allow to be built shared on Darwin).
  • PDO MySQL:
  • Fixed bug #75615 (PDO Mysql module can't be built as module).
  • PGSQL:
  • Fixed bug #75671 (pg_version() crashes when called on a connection to cockroach).
  • Readline:
  • Fixed bug #75775 (readline_read_history segfaults with empty file).
  • SAPI:
  • Fixed bug #75735 ([embed SAPI] Segmentation fault in sapi_register_post_entry).
  • SOAP:
  • Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is used).
  • Fixed bug #75502 (Segmentation fault in zend_string_release).
  • SPL:
  • Fixed bug #75717 (RecursiveArrayIterator does not traverse arrays by reference).
  • Fixed bug #75242 (RecursiveArrayIterator doesn't have constants from parent class).
  • Fixed bug #73209 (RecursiveArrayIterator does not iterate object properties)
  • Standard:
  • Fixed bug #75781 (substr_count incorrect result).
  • Fixed bug #75653 (array_values don't work on empty array).
  • Zip:
  • Display headers (buildtime) and library (runtime) versions in phpinfo with libzip >= 1.3.1)

New in PHP 7.2.1 (Jan 4, 2018)

  • Core:
  • Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26).
  • Fixed bug #75384 (PHP seems incompatible with OneDrive files on demand).
  • Fixed bug #75525 (Access Violation in vcruntime140.dll).
  • Fixed bug #74862 (Unable to clone instance when private __clone defined).
  • Fixed bug #75074 (php-process crash when is_file() is used with strings longer 260 chars).
  • CLI server:
  • Fixed bug #73830 (Directory does not exist).
  • FPM:
  • Fixed bug #64938 (libxml_disable_entity_loader setting is shared between requests).
  • GD:
  • Fixed bug #75571 (Potential infinite loop in gdImageCreateFromGifCtx).
  • Opcache:
  • Fixed bug #75608 ("Narrowing occurred during type inference" error).
  • Fixed bug #75579 (Interned strings buffer overflow may cause crash).
  • Fixed bug #75570 ("Narrowing occurred during type inference" error).
  • Fixed bug #75556 (Invalid opcode 138/1/1).
  • PCRE:
  • Fixed bug #74183 (preg_last_error not returning error code after error).
  • Phar:
  • Fixed bug #74782 (remove file name from output to avoid XSS).
  • Standard:
  • Fixed bug #75511 (fread not free unused buffer).
  • Fixed bug #75514 (mt_rand returns value outside [$min,$max]+ on 32-bit) (Remi)
  • Fixed bug #75535 (Inappropriately parsing HTTP response leads to PHP segment fault).
  • Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator that getrandom() is missing).
  • Fixed bug #73124 (php_ini_scanned_files() not reporting correctly).
  • Fixed bug #75574 (putenv does not work properly if parameter contains non-ASCII unicode character).
  • Zip:
  • Fixed bug #75540 (Segfault with libzip 1.3.1).

New in PHP 7.1.12 (Nov 29, 2017)

  • Core:
  • Fixed bug #75420 (Crash when modifing property name in __isset for BP_VAR_IS).
  • Fixed bug #75368 (mmap/munmap trashing on unlucky allocations).
  • CLI:
  • Fixed bug #75287 (Builtin webserver crash after chdir in a shutdown function).
  • Enchant:
  • Fixed bug #53070 (enchant_broker_get_path crashes if no path is set).
  • Fixed bug #75365 (Enchant still reports version 1.1.0).
  • Exif:
  • Fixed bug #75301 (Exif extension has built in revision version).
  • GD:
  • Fixed bug #65148 (imagerotate may alter image dimensions).
  • Fixed bug #75437 (Wrong reflection on imagewebp).
  • intl:
  • Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead of destination).
  • interbase:
  • Fixed bug #75453 (Incorrect reflection for ibase_[p]connect).
  • Mysqli:
  • Fixed bug #75434 (Wrong reflection for mysqli_fetch_all function).
  • OCI8:
  • Fixed valgrind issue.
  • OpenSSL:
  • Fixed bug #75363 (openssl_x509_parse leaks memory).
  • Fixed bug #75307 (Wrong reflection for openssl_open function).
  • Opcache:
  • Fixed bug #75373 (Warning Internal error: wrong size calculation).
  • PGSQL:
  • Fixed bug #75419 (Default link incorrectly cleared/linked by pg_close()).
  • SOAP:
  • Fixed bug #75464 (Wrong reflection on SoapClient::__setSoapHeaders).
  • Zlib:
  • Fixed bug #75299 (Wrong reflection on inflate_init and inflate_add).

New in PHP 7.2.0 RC 6 (Nov 9, 2017)

  • Core:
  • Fixed bug #75420 (Crash when modifing property name in __isset for BP_VAR_IS).
  • GD:
  • Fixed bug #75437 (Wrong reflection on imagewebp).
  • interbase:
  • Fixed bug #75453 (Incorrect reflection for ibase_[p]connect).
  • Mysqli:
  • Fixed bug #75434 (Wrong reflection for mysqli_fetch_all function).
  • SOAP:
  • Fixed bug #75464 (Wrong reflection on SoapClient::__setSoapHeaders).

New in PHP 7.2.0 RC 5 (Oct 27, 2017)

  • Core:
  • Fixed bug #75368 (mmap/munmap trashing on unlucky allocations). (Nikita, Dmitry)
  • CLI:
  • Fixed bug #75287 (Builtin webserver crash after chdir in a shutdown function).
  • (Laruence)
  • Date:
  • Fixed bug #75055 (Out-Of-Bounds Read in timelib_meridian()). (Derick)
  • Enchant:
  • Fixed bug #53070 (enchant_broker_get_path crashes if no path is set). (jelle van der Waa, cmb)
  • Fixed bug #75365 (Enchant still reports version 1.1.0). (cmb)
  • Exif:
  • Fixed bug #75301 (Exif extension has built in revision version). (Peter Kokot)
  • Fileinfo:
  • Upgrade bundled libmagic to 5.31. (Anatol)
  • GD:
  • Fixed bug #65148 (imagerotate may alter image dimensions). (cmb)
  • Intl:
  • Fixed bug #75378 ([REGRESSION] IntlDateFormatter::parse() does not change $position argument). (Laruence)
  • Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead of destination). (andrewnester)
  • JSON:
  • Fixed bug #68567 (JSON_PARTIAL_OUTPUT_ON_ERROR can result in JSON with null key). (Jakub Zelenka)
  • OCI8:
  • Fixed valgrind issue. (Tianfang Yang)
  • Opcache:
  • Fixed bug (assertion fails with extended info generated). (Laruence)
  • Fixed bug (Phi sources removel). (Laruence)
  • Fixed bug #75370 (Webserver hangs on valid PHP text). (Laruence)
  • Fixed bug #75357 (segfault loading WordPress wp-admin). (Laruence)
  • Fixed bug #75373 (Warning Internal error: wrong size calculation). (Laruence, Dmitry)
  • Openssl:
  • Fixed bug #75363 (openssl_x509_parse leaks memory). (Bob)
  • PCRE:
  • Fixed bug #75207 (applied upstream patch for CVE-2016-1283). (Anatol)
  • PGSQL:
  • Fixed bug #75419 (Default link incorrectly cleared/linked by pg_close()). (Sara)
  • Standard:
  • Fixed bug #75221 (Argon2i always throws NUL at the end). (cmb)
  • Zlib:
  • Fixed bug #75299 (Wrong reflection on inflate_init and inflate_add). (Fabien Villepinte)

New in PHP 7.2.0 RC 4 (Oct 12, 2017)

  • Core
  • Fixed bug #75220 (Segfault when calling is_callable on parent)
  • (andrewnester)
  • Fixed bug #75290 (debug info of Closures of internal functions contain
  • garbage argument names)(Andrea)
  • Apache2Handler:
  • Fixed bug #75311 (error: 'zend_hash_key' has no member named 'arKey' in
  • apache2handler)(mcarbonneaux)
  • Date:
  • Fixed bug #75222 (DateInterval microseconds property always 0)(jhdxr)
  • Hash:
  • Fixed Bug #75284 (sha3 is not supported on bigendian machine)(Remi)
  • Intl:
  • Fixed bug #75318 (The parameter of UConverter::getAliases() is not
  • optional)(cmb)
  • 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)
  • OCI8:
  • Fixed incorrect reference counting(Dmitry, Tianfang Yang)
  • Opcache
  • Fixed bug #75255 (Request hangs and not finish)(Dmitry)
  • PCRE:
  • Fixed bug #75285 (Broken build when system libpcre don't have jit support).
  • (Remi)
  • Sodium:
  • Added missing bindings for libsodium > 1.0.13(Frank)

New in PHP 7.1.10 (Sep 27, 2017)

  • Core:
  • Fixed bug #75042 (run-tests.php issues with EXTENSION block).
  • BCMath:
  • Fixed bug #44995 (bcpowmod() fails if scale != 0).
  • Fixed bug #46781 (BC math handles minus zero incorrectly).
  • Fixed bug #54598 (bcpowmod() may return 1 if modulus is 1).
  • Fixed bug #75178 (bcpowmod() misbehaves for non-integer base or modulus).
  • CLI server:
  • Fixed bug #70470 (Built-in server truncates headers spanning over TCP packets).
  • CURL:
  • Fixed bug #75093 (OpenSSL support not detected).
  • GD:
  • Fixed bug #75124 (gdImageGrayScale() may produce colors).
  • Fixed bug #75139 (libgd/gd_interpolation.c:1786: suspicious if ?).
  • Gettext:
  • Fixed bug #73730 (textdomain(null) throws in strict mode).
  • Intl:
  • Fixed bug #75090 (IntlGregorianCalendar doesn't have constants from parent class).
  • Fixed bug #75193 (segfault in collator_convert_object_to_string).
  • PDO_OCI:
  • Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized before PHP-FPM sets it up).
  • SPL:
  • Fixed bug #75155 (AppendIterator::append() is broken when appending another AppendIterator).
  • Fixed bug #75173 (incorrect behavior of AppendIterator::append in foreach loop).
  • Standard:
  • Fixed bug #75152 (signed integer overflow in parse_iv).
  • Fixed bug #75097 (gethostname fails if your host name is 64 chars long).

New in PHP 7.1.9 (Aug 31, 2017)

  • Core:
  • Fixed bug #74947 (Segfault in scanner on INF number).
  • Fixed bug #74954 (null deref and segfault in zend_generator_resume()).
  • Fixed bug #74725 (html_errors=1 breaks unhandled exceptions).
  • Fixed bug #75063 (Main CWD initialized with wrong codepage).
  • cURL:
  • Fixed bug #74125 (Fixed finding CURL on systems with multiarch support).
  • Date:
  • Fixed bug #75002 (Null Pointer Dereference in timelib_time_clone).
  • Intl:
  • Fixed bug #74993 (Wrong reflection on some locale_* functions).
  • Mbstring:
  • Fixed bug #71606 (Segmentation fault mb_strcut with HTML-ENTITIES encoding).
  • cmb)
  • Fixed bug #62934 (mb_convert_kana() does not convert iteration marks).
  • Nikita)
  • Fixed bug #75001 (Wrong reflection on mb_eregi_replace).
  • MySQLi:
  • Fixed bug #74968 (PHP crashes when calling mysqli_result::fetch_object with an abstract class).
  • OCI8:
  • Expose oci_unregister_taf_callback()
  • Opcache:
  • Fixed bug #74980 (Narrowing occurred during type inference).
  • phar:
  • Fixed bug #74991 (include_path has a 4096 char limit in some cases).
  • Reflection:
  • Fixed bug #74949 (null pointer dereference in _function_string).
  • Session:
  • Fixed bug #74892 (Url Rewriting (trans_sid) not working on urls that start with "#").
  • Fixed bug #74833 (SID constant created with wrong module number).
  • SimpleXML:
  • Fixed bug #74950 (nullpointer deref in simplexml_element_getDocNamespaces).
  • SPL:
  • Fixed bug #75049 (spl_autoload_unregister can't handle spl_autoload_functions results).
  • Fixed bug #74669 (Unserialize ArrayIterator broken).
  • Fixed bug #74977 (Appending AppendIterator leads to segfault).
  • Fixed bug #75015 (Crash in recursive iterator destructors).
  • Standard:
  • Fixed bug #75075 (unpack with X* causes infinity loop).
  • Fixed bug #74103 (heap-use-after-free when unserializing invalid array size).
  • Fixed bug #75054 (A Denial of Service Vulnerability was found when performing deserialization).
  • WDDX:
  • Fixed bug #73793 (WDDX uses wrong decimal seperator).
  • XMLRPC:
  • Fixed bug #74975 (Incorrect xmlrpc serialization for classes with declared properties).

New in PHP 7.2.0 RC 1 (Aug 30, 2017)

  • Core:
  • Fixed #75042 run-tests.php issues with EXTENSION block).
  • CURL:
  • Fixed bug #75093 (OpenSSL support not detected).
  • Better fix for #74125 (use pkg-config instead of curl-config).
  • GD:
  • Fixed bug #75111 (Memory disclosure or DoS via crafted .bmp image).
  • Fixed bug #75124 (gdImageGrayScale() may produce colors).
  • Intl:
  • Fixed bug #75090 (IntlGregorianCalendar doesn't have constants from parent
  • class).
  • PCRE:
  • Fixed bug #75089 (preg_grep() is not reporting PREG_BAD_UTF8_ERROR after
  • first input string).
  • PDO_OCI:
  • Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized
  • before PHP-FPM sets it up).
  • SQLite3:
  • Update to Sqlite 3.20.1.
  • Standard:
  • Fixed bug #75097 (gethostname fails if your host name is 64 chars long).

New in PHP 7.2.0 Beta 3 (Aug 17, 2017)

  • Core:
  • Fixed bug #75063 (Main CWD initialized with wrong codepage).
  • Date:
  • Fixed bug #75002 (Null Pointer Dereference in timelib_time_clone).
  • FTP:
  • Added ftp_append() function.
  • Mbstring:
  • Fixed bug #75001 (Wrong reflection on mb_eregi_replace).
  • SQLite3:
  • Updated to SQLite 3.20.0.
  • SPL:
  • Fixed bug #75049 (spl_autoload_unregister can't handle spl_autoload_functions results).
  • Added spl_object_id().
  • Standard:
  • Fixed bug #75075 (unpack with X* causes infinity loop).
  • Fixed bug #74103 (heap-use-after-free when unserializing invalid array size).
  • Fixed bug #75054 (A Denial of Service Vulnerability was found when performing deserialization).
  • WDDX:
  • Fixed bug #73793 (WDDX uses wrong decimal seperator).
  • XMLRPC:
  • Fixed bug #74975 (Incorrect xmlrpc serialization for classes with declared properties).

New in PHP 7.1.8 (Aug 3, 2017)

  • Core:
  • Fixed bug #74832 (Loading PHP extension with already registered function
  • name leads to a crash).
  • Fixed bug #74780 (parse_url() broken when query string contains colon).
  • Fixed bug #74761 (Unary operator expected error on some systems).
  • Fixed bug #73900 (Use After Free in unserialize() SplFixedArray).
  • Fixed bug #74923 (Crash when crawling through network share).
  • Fixed bug #74913 (fixed incorrect poll.h include).
  • Fixed bug #74906 (fixed incorrect errno.h include).
  • Date:
  • Fixed bug #74852 (property_exists returns true on unknown DateInterval
  • property).
  • OCI8:
  • Fixed bug #74625 (Integer overflow in oci_bind_array_by_name).
  • Opcache:
  • Fixed bug #74623 (Infinite loop in type inference when using HTMLPurifier).
  • OpenSSL:
  • Fixed bug #74798 (pkcs7_en/decrypt does not work if x0a is used in content).
  • Added OPENSSL_DONT_ZERO_PAD_KEY constant to prevent key padding and fix bug
  • 71917 (openssl_open() returns junk on envelope < 16 bytes) and bug #72362
  • OpenSSL Blowfish encryption is incorrect for short keys).
  • PDO:
  • Fixed bug #69356 (PDOStatement::debugDumpParams() truncates query).
  • SPL:
  • Fixed bug #73471 (PHP freezes with AppendIterator).
  • SQLite3:
  • Fixed bug #74883 (SQLite3::__construct() produces "out of memory" exception with invalid flags).
  • Wddx:
  • Fixed bug #73173 (huge memleak when wddx_unserialize).
  • zlib:
  • Fixed bug #73944 (dictionary option of inflate_init() does not work).

New in PHP 7.2.0 Beta 1 (Jul 20, 2017)

  • The much anticipated Sodium extension
  • Opcache improvements
  • Countable support for DOMNodeList and DOMNamedNodeMap
  • Improved handling for invalid UTF8 in json_decode()
  • And many bugfixes

New in PHP 7.1.7 (Jul 7, 2017)

  • Core:
  • Fixed bug #74738 (Multiple [PATH=] and [HOST=] sections not properly parsed).
  • Fixed bug #74658 (Undefined constants in array properties result in broken properties).
  • Fixed misparsing of abstract unix domain socket names.
  • Fixed bug #74603 (PHP INI Parsing Stack Buffer Overflow Vulnerability).
  • Fixed bug #74101, bug #74614 (Unserialize Heap Use-After-Free (READ: 1) in zval_get_type).
  • Fixed bug #74111 (Heap buffer overread (READ: 1) finish_nested_data from unserialize).
  • Fixed bug #74819 (wddx_deserialize() heap out-of-bound read via php_parse_date()).
  • Date:
  • Fixed bug #74639 (implement clone for DatePeriod and DateInterval).
  • DOM:
  • Fixed bug #69373 (References to deleted XPath query results).
  • GD:
  • Fixed bug #74435 (Buffer over-read into uninitialized memory).
  • Intl:
  • Fixed bug #73473 (Stack Buffer Overflow in msgfmt_parse_message).
  • Fixed bug #74705 (Wrong reflection on Collator::getSortKey and collator_get_sort_key).
  • Mbstring:
  • Add oniguruma upstream fix (CVE-2017-9224, CVE-2017-9226, CVE-2017-9227, CVE-2017-9228, CVE-2017-9229) (Remi, Mamoru TASAKA)
  • OCI8:
  • Add TAF callback (PR #2459).
  • Opcache:
  • Fixed bug #74663 (Segfault with opcache.memory_protect and validate_timestamp).
  • Revert opcache.enable_cli to default disabled.
  • OpenSSL:
  • Fixed bug #74720 (pkcs7_en/decrypt does not work if x1a is used in content).
  • Fixed bug #74651 (negative-size-param (-1) in memcpy in zif_openssl_seal()).
  • PDO_OCI:
  • Support Instant Client 12.2 in --with-pdo-oci configure option.
  • Reflection:
  • Fixed bug #74673 (Segfault when cast Reflection object to string with undefined constant).
  • SPL:
  • Fixed bug #74478 (null coalescing operator failing with SplFixedArray).
  • FTP:
  • Fixed bug #74598 (ftp:// wrapper ignores context arg).
  • PHAR:
  • Fixed bug #74386 (Phar::__construct reflection incorrect).
  • SOAP:
  • Fixed bug #74679 (Incorrect conversion array with WSDL_CACHE_MEMORY).
  • Streams:
  • Fixed bug #74556 (stream_socket_get_name() returns '').

New in PHP 7.1.6 (Jun 12, 2017)

  • Core:
  • Fixed bug #74600 (crash (SIGSEGV) in _zend_hash_add_or_update_i).
  • Fixed bug #74546 (SIGILL in ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST).
  • Fixed bug #74589 (__DIR__ wrong for unicode character).
  • intl:
  • Fixed bug #74468 (wrong reflection on Collator::sortWithSortKeys).
  • MySQLi:
  • Fixed bug #74547 (mysqli::change_user() doesn't accept null as $database argument w/strict_types).
  • Opcache:
  • Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled).
  • phar:
  • Fixed bug #51918 (Phar::webPhar() does not handle requests sent through PUT and DELETE method).
  • Readline:
  • Fixed bug #74490 (readline() moves the cursor to the beginning of the line).
  • Standard:
  • Fixed bug #74510 (win32/sendmail.c anchors CC header but not BCC).
  • xmlreader:
  • Fixed bug #74457 (Wrong reflection on XMLReader::expand).

New in PHP 7.1.4 (Apr 12, 2017)

  • Core:
  • Fixed bug #74149 (static embed SAPI linkage error).
  • Fixed bug #73370 (falsely exits with "Out of Memory" when using
  • USE_ZEND_ALLOC=0).
  • Fixed bug #73960 (Leak with instance method calling static method with
  • referenced return).
  • Fixed bug #69676 (Resolution of self::FOO in class constants not correct).
  • Fixed bug #74265 (Build problems after 7.0.17 release: undefined reference
  • to `isfinite').
  • Fixed bug #74302 (yield fromLABEL is over-greedy).
  • Apache:
  • Reverted patch for bug #61471, fixes bug #74318.
  • Date:
  • Fixed bug #72096 (Swatch time value incorrect for dates before 1970).
  • DOM:
  • Fixed bug #74004 (LIBXML_NOWARNING flag ingnored on loadHTML*).
  • iconv:
  • Fixed bug #74230 (iconv fails to fail on surrogates).
  • Opcache:
  • Fixed bug #74250 (OPcache compilation performance regression in PHP 5.6/7 with huge classes).
  • OpenSSL:
  • Fixed bug #72333 (fwrite() on non-blocking SSL sockets doesn't work).
  • PDO MySQL:
  • Fixed bug #71003 (Expose MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT to PDO interface).
  • SPL:
  • Fixed bug #74058 (ArrayObject can not notice changes).
  • Sqlite:
  • Implemented FR #74217 (Allow creation of deterministic sqlite functions).
  • Streams:
  • Fixed bug #74216 (Correctly fail on invalid IP address ports).
  • Zlib:
  • Fixed bug #74240 (deflate_add can allocate too much memory).

New in PHP 7.1.3 (Apr 12, 2017)

  • Core:
  • Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite).
  • Fixed bug #74084 (Out of bound read - zend_mm_alloc_small).
  • Fixed bug #73807 (Performance problem with processing large post request).
  • Fixed bug #73998 (array_key_exists fails on arrays created by get_object_vars).
  • Fixed bug #73954 (NAN check fails on Alpine Linux with musl).
  • Fixed bug #74039 (is_infinite(-INF) returns false).
  • Fixed bug #73677 (Generating phar.phar core dump with gcc ASAN enabled build).
  • Apache:
  • Fixed bug #61471 (Incomplete POST does not timeout but is passed to PHP).
  • Date:
  • Fixed bug #72719 (Relative datetime format ignores weekday on sundays only).
  • Fixed bug #73294 (DateTime wrong when date string is negative).
  • Fixed bug #73489 (wrong timestamp when call setTimeZone multi times with UTC offset).
  • Fixed bug #73858 (first/last day of' flag is not being reset).
  • Fixed bug #73942 ($date->modify('Friday this week') doesn't return a Friday if $date is a Sunday).
  • Fixed bug #74057 (wrong day when using "this week" in strtotime).
  • FPM:
  • Fixed bug #69860 (php-fpm process accounting is broken with keepalive).
  • Hash:
  • Fixed bug #73127 (gost-crypto hash incorrect if input data contains long 0xFF sequence).
  • GD:
  • Fixed bug #74031 (ReflectionFunction for imagepng is missing last two parameters).
  • Mysqlnd:
  • Fixed bug #74021 (fetch_array broken data. Data more then MEDIUMBLOB).
  • Opcache:
  • Fixed bug #74152 (if statement says true to a null variable).
  • Fixed bug #74019 (Segfault with list).
  • OpenSSL:
  • Fixed bug #74022 (PHP Fast CGI crashes when reading from a pfx file).
  • Standard:
  • Fixed bug #74148 (ReflectionFunction incorrectly reports the number of arguments).
  • Fixed bug #74005 (mail.add_x_header causes RFC-breaking lone line feed).
  • Fixed bug #73118 (is_callable callable name reports misleading value for anonymous classes).
  • Fixed bug #74105 (PHP on Linux should use /dev/urandom when getrandom is not available).
  • Streams:
  • Fixed bug #73496 (Invalid memory access in zend_inline_hash_func).
  • Fixed bug #74090 (stream_get_contents maxlength>-1 returns empty string).

New in PHP 7.1.2 (Mar 16, 2017)

  • Released on 16 Feb 2017
  • Core:
  • Improved GENERATOR_CREATE opcode handler.
  • Fixed bug #73877 (readlink() returns garbage for UTF-8 paths).
  • Fixed bug #73876 (Crash when exporting **= in expansion of assign op).
  • Fixed bug #73962 (bug with symlink related to cyrillic directory).
  • Fixed bug #73969 (segfault in debug_print_backtrace).
  • Fixed bug #73994 (arginfo incorrect for unpack).
  • Fixed bug #73973 (assertion error in debug_zval_dump).
  • DOM:
  • Fixed bug #54382 (getAttributeNodeNS doesn't get xmlns* attributes).
  • DTrace:
  • Fixed bug #73965 (DTrace reported as enabled when disabled).
  • FCGI:
  • Fixed bug #73904 (php-cgi fails to load -c specified php.ini file).
  • Fixed bug #72898 (PHP_FCGI_CHILDREN is not included in phpinfo()).
  • FPM:
  • Fixed bug #69865 (php-fpm does not close stderr when using syslog).
  • GD:
  • Fixed bug #73968 (Premature failing of XBM reading).
  • GMP:
  • Fixed bug #69993 (test for gmp.h needs to test machine includes).
  • Hash:
  • Added hash_hkdf() function.
  • Fixed bug #73961 (environmental build dependency in hash sha3 source).
  • Intl:
  • Fix bug #73956 (Link use CC instead of CXX).
  • LDAP:
  • Fixed bug #73933 (error/segfault with ldap_mod_replace and opcache).
  • MySQLi:
  • Fixed bug #73949 (leak in mysqli_fetch_object).
  • Mysqlnd:
  • Fixed bug #69899 (segfault on close() after free_result() with mysqlnd).
  • Opcache:
  • Fixed bug #73983 (crash on finish work with phar in cli + opcache).
  • OpenSSL:
  • Fixed bug #71519 (add serial hex to return value array).
  • Fixed bug #73692 (Compile ext/openssl with openssl 1.1.0 on Win).
  • Fixed bug #73978 (openssl_decrypt triggers bug in PDO).
  • PDO_Firebird:
  • Implemented FR #72583 (All data are fetched as strings).
  • PDO_PgSQL:
  • Fixed bug #73959 (lastInsertId fails to throw an exception for wrong sequence name).
  • Phar:
  • Fixed bug #70417 (PharData::compress() doesn't close temp file).
  • posix:
  • Fixed bug #71219 (configure script incorrectly checks for ttyname_r).
  • Session:
  • Fixed bug #69582 (session not readable by root in CLI).
  • SPL:
  • Fixed bug #73896 (spl_autoload() crashes when calls magic _call()).
  • Standard:
  • Fixed bug #69442 (closing of fd incorrect when PTS enabled).
  • Fixed bug #47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked").
  • Fixed bug #72974 (imap is undefined service on AIX).
  • Fixed bug #72979 (money_format stores wrong length AIX).
  • Fixed bug #73374 (intval() with base 0 should detect binary).
  • Fixed bug #69061 (mail.log = syslog contains double information).
  • ZIP:
  • Fixed bug #70103 (ZipArchive::addGlob ignores remove_all_path option).

New in PHP 7.0.16 (Mar 16, 2017)

  • Released on 16 Feb 2017
  • Core:
  • Fixed bug #73916 (zend_print_flat_zval_r doesn't consider reference).
  • Fixed bug #73876 (Crash when exporting **= in expansion of assign op).
  • Fixed bug #73969 (segfault in debug_print_backtrace).
  • Fixed bug #73973 (assertion error in debug_zval_dump).
  • DOM:
  • Fixed bug #54382 (getAttributeNodeNS doesn't get xmlns* attributes).
  • DTrace:
  • Fixed bug #73965 (DTrace reported as enabled when disabled).
  • FPM:
  • Fixed bug #67583 (double fastcgi_end_request on max_children limit).
  • Fixed bug #69865 (php-fpm does not close stderr when using syslog).
  • GD:
  • Fixed bug #73968 (Premature failing of XBM reading).
  • GMP:
  • Fixed bug #69993 (test for gmp.h needs to test machine includes).
  • Intl:
  • Fixed bug #73956 (Link use CC instead of CXX).
  • LDAP:
  • Fixed bug #73933 (error/segfault with ldap_mod_replace and opcache).
  • MySQLi:
  • Fixed bug #73949 (leak in mysqli_fetch_object).
  • Mysqlnd:
  • Fixed bug #69899 (segfault on close() after free_result() with mysqlnd).
  • Opcache:
  • Fixed bug #73983 (crash on finish work with phar in cli + opcache).
  • OpenSSL:
  • Fixed bug #71519 (add serial hex to return value array).
  • PDO_Firebird:
  • Implemented FR #72583 (All data are fetched as strings).
  • PDO_PgSQL:
  • Fixed bug #73959 (lastInsertId fails to throw an exception for wrong sequence name).
  • Phar:
  • Fixed bug #70417 (PharData::compress() doesn't close temp file).
  • posix:
  • Fixed bug #71219 (configure script incorrectly checks for ttyname_r).
  • Session:
  • Fixed bug #69582 (session not readable by root in CLI).
  • SPL:
  • Fixed bug #73896 (spl_autoload() crashes when calls magic _call()).
  • Standard:
  • Fixed bug #69442 (closing of fd incorrect when PTS enabled).
  • Fixed bug #47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked").
  • Fixed bug #72974 (imap is undefined service on AIX).
  • Fixed bug #72979 (money_format stores wrong length AIX).
  • ZIP:
  • Fixed bug #70103 (ZipArchive::addGlob ignores remove_all_path option).

New in PHP 7.0.15 (Mar 16, 2017)

  • Released on 19 Jan 2017
  • Core:
  • Fixed bug #73792 (invalid foreach loop hangs script).
  • Fixed bug #73663 ("Invalid opcode 65/16/8" occurs with a variable created with list()).
  • Fixed bug #73585 (Logging of "Internal Zend error - Missing class information" missing class name).
  • Fixed bug #73753 (unserialized array pointer not advancing).
  • Fixed bug #73825 (Heap out of bounds read on unserialize in finish_nested_data()). (CVE-2016-10161)
  • Fixed bug #73831 (NULL Pointer Dereference while unserialize php object). (CVE-2016-10162)
  • Fixed bug #73832 (Use of uninitialized memory in unserialize()). (CVE-2017-5340)
  • Fixed bug #73092 (Unserialize use-after-free when resizing object's properties hash table). (CVE-2016-7479)
  • Fixed bug #69425 (Use After Free in unserialize()).
  • Fixed bug #72731 (Type Confusion in Object Deserialization).
  • COM:
  • Fixed bug #73679 (DOTNET read access violation using invalid codepage).
  • DOM:
  • Fixed bug #67474 (getElementsByTagNameNS filter on default ns).
  • EXIF:
  • Fixed bug #73737 (FPE when parsing a tag format). (CVE-2016-10158)
  • GD:
  • Fixed bug #73869 (Signed Integer Overflow gd_io.c). (CVE-2016-10168)
  • Fixed bug #73868 (DOS vulnerability in gdImageCreateFromGd2Ctx()). (CVE-2016-10167)
  • GMP:
  • Fixed bug #70513 (GMP Deserialization Type Confusion Vulnerability).
  • Mysqli:
  • Fixed bug #73462 (Persistent connections don't set $connect_errno).
  • Mysqlnd:
  • Fixed issue with decoding BIT columns when having more than one rows in the result set. 7.0+ problem.
  • Fixed bug #73800 (sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE).
  • PCRE:
  • Fixed bug #73612 (preg_*() may leak memory).
  • PDO_Firebird:
  • Fixed bug #72931 (PDO_FIREBIRD with Firebird 3.0 not work on returning statement).
  • Phar:
  • Fixed bug #73773 (Seg fault when loading hostile phar).
  • Fixed bug #73768 (Memory corruption when loading hostile phar). (CVE-2016-10160)
  • Fixed bug #73764 (Crash while loading hostile phar archive). (CVE-2016-10159)
  • Phpdbg:
  • Fixed bug #73615 (phpdbg without option never load .phpdbginit at startup).
  • Fixed issue getting executable lines from custom wrappers.
  • Fixed bug #73704 (phpdbg shows the wrong line in files with shebang).
  • Reflection:
  • Fixed bug #46103 (ReflectionObject memory leak).
  • Streams:
  • Fixed bug #73586 (php_user_filter::$stream is not set to the stream the filter is working on).
  • SQLite3:
  • Reverted fix for #73530 (Unsetting result set may reset other result set).
  • Standard:
  • Fixed bug #73594 (dns_get_record does not populate $additional out parameter).
  • Fixed bug #70213 (Unserialize context shared on double class lookup).
  • Fixed bug #73154 (serialize object with __sleep function crash).
  • Fixed bug #70490 (get_browser function is very slow).
  • Fixed bug #73265 (Loading browscap.ini at startup causes high memory usage).
  • Fixed bug #31875 (get_defined_functions additional param to exclude disabled functions).
  • Zlib:
  • Fixed bug #73373 (deflate_add does not verify that output was not truncated).

New in PHP 7.1.1 (Mar 16, 2017)

  • Released on 19 Jan 2017
  • Core
  • Fixed bug #73792 (invalid foreach loop hangs script).
  • Fixed bug #73686 (Adding settype()ed values to ArrayObject results in references).
  • Fixed bug #73663 ("Invalid opcode 65/16/8" occurs with a variable created with list()).
  • Fixed bug #73727 (ZEND_MM_BITSET_LEN is "undefined symbol" in zend_bitset.h).
  • Fixed bug #73753 (unserialized array pointer not advancing).
  • Fixed bug #73783 (SIG_IGN doesn't work when Zend Signals is enabled).
  • Fixed bug #73825 (Heap out of bounds read on unserialize in finish_nested_data()). (CVE-2016-10161)
  • Fixed bug #73831 (NULL Pointer Dereference while unserialize php object). (CVE-2016-10162)
  • Fixed bug #73832 (Use of uninitialized memory in unserialize()). (CVE-2017-5340)
  • CLI
  • Fixed bug #72555 (CLI output(japanese) on Windows).
  • COM
  • Fixed bug #73679 (DOTNET read access violation using invalid codepage).
  • DOM
  • Fixed bug #67474 (getElementsByTagNameNS filter on default ns).
  • EXIF
  • Fixed bug #73737 (FPE when parsing a tag format). (CVE-2016-10158)
  • Fixed bug #73869 (Signed Integer Overflow gd_io.c). (CVE-2016-10168)
  • Fixed bug #73868 (DOS vulnerability in gdImageCreateFromGd2Ctx()). (CVE-2016-10167)
  • mbstring
  • Fixed bug #73646 (mb_ereg_search_init null pointer dereference).
  • MySQLi
  • Fixed bug #73462 (Persistent connections don't set $connect_errno).
  • mysqlnd
  • Optimized handling of BIT fields - less memory copies and lower memory usage.
  • Fixed bug #73800 (sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE).
  • opcache
  • Fixed bug #73789 (Strange behavior of class constants in switch/case block).
  • Fixed bug #73746 (Method that returns string returns UNKNOWN:0 instead).
  • Fixed bug #73654 (Segmentation fault in zend_call_function).
  • Fixed bug #73668 ("SIGFPE Arithmetic exception" in opcache when divide by minus 1).
  • Fixed bug #73847 (Recursion when a variable is redefined as array).
  • PDO Firebird
  • Fixed bug #72931 (PDO_FIREBIRD with Firebird 3.0 not work on returning statement).
  • Phar:
  • Fixed bug #73773 (Seg fault when loading hostile phar).
  • Fixed bug #73768 (Memory corruption when loading hostile phar). (CVE-2016-10160)
  • Fixed bug #73764 (Crash while loading hostile phar archive). (CVE-2016-10159)
  • phpdbg
  • Fixed bug #73794 (Crash (out of memory) when using run and # command separator).
  • Fixed bug #73704 (phpdbg shows the wrong line in files with shebang).
  • SQLite3
  • Reverted fix for Fixed bug #73530 (Unsetting result set may reset other result set).
  • Standard
  • Fixed bug #73594 (dns_get_record does not populate $additional out parameter).
  • Fixed bug #70213 (Unserialize context shared on double class lookup).
  • Fixed bug #73154 (serialize object with __sleep function crash).
  • Fixed bug #70490 (get_browser function is very slow).
  • Fixed bug #73265 (Loading browscap.ini at startup causes high memory usage).
  • (add subject to mail log).
  • Fixed bug #31875 (get_defined_functions additional param to exclude disabled functions).
  • zlib
  • Fixed bug #73373 (deflate_add does not verify that output was not truncated).

New in PHP 7.0.14 (Mar 16, 2017)

  • Released on 08 Dec 2016
  • Core:
  • Fixed memory leak(null coalescing operator with Spl hash).
  • Fixed bug #72736 (Slow performance when fetching large dataset with mysqli / PDO).
  • Fixed bug #72978 (Use After Free Vulnerability in unserialize()). (CVE-2016-9936)
  • Calendar:
  • (Fix integer overflows).
  • Date:
  • Fixed bug #69587 (DateInterval properties and isset).
  • DTrace:
  • Disabled PHP call tracing by default (it makes significant overhead). This may be enabled again using envirionment variable USE_ZEND_DTRACE=1.
  • JSON:
  • Fixed bug #73526 (php_json_encode depth issue).
  • Mysqlnd:
  • Fixed bug #64526 (Add missing mysqlnd.* parameters to php.ini-*).
  • ODBC:
  • Fixed bug #73448 (odbc_errormsg returns trash, always 513 bytes).
  • Opcache:
  • Fixed bug #69090 (check cached files permissions).
  • Fixed bug #73546 (Logging for opcache has an empty file name).
  • PCRE:
  • Fixed bug #73483 (Segmentation fault on pcre_replace_callback).
  • Fixed bug #73392 (A use-after-free in zend allocator management).
  • PDO_Firebird:
  • Fixed bug #73087, #61183, #71494 (Memory corruption in bindParam).
  • Phar:
  • Fixed bug #73580 (Phar::isValidPharFilename illegal memory access).
  • Postgres:
  • Fixed bug #73498 (Incorrect SQL generated for pg_copy_to()).
  • Soap:
  • Fixed bug #73538 (SoapClient::__setSoapHeaders doesn't overwrite SOAP headers).
  • Fixed bug #73452 (Segfault (Regression for #69152)).
  • SPL:
  • Fixed bug #73423 (Reproducible crash with GDB backtrace).
  • SQLite3:
  • Fixed bug #73530 (Unsetting result set may reset other result set).
  • Standard:
  • Fixed bug #73297 (HTTP stream wrapper should ignore HTTP 100 Continue).
  • Fixed bug #73645 (version_compare illegal write access).
  • Wddx:
  • Fixed bug #73631 (Invalid read when wddx decodes empty boolean element). (CVE-2016-9935)
  • XML:
  • Fixed bug #72135 (malformed XML causes fault).

New in PHP 7.1.0 (Dec 2, 2016)

  • Core:
  • Added nullable types.
  • Added DFA optimization framework based on e-SSA form.
  • Added specialized opcode handlers (e.g. ZEND_ADD_LONG_NO_OVERFLOW).
  • Added [] = as alternative construct to list() =.
  • Added void return type.
  • Added support for negative string offsets in string offset syntax and various string functions.
  • Added a form of the list() construct where keys can be specified.
  • Implemented safe execution timeout handling, that prevents random crashes after "Maximum execution time exceeded" error.
  • Implemented the RFC `Support Class Constant Visibility`.
  • Implemented the RFC `Catching multiple exception types`.
  • Implemented logging to syslog with dynamic error levels.
  • Implemented FR #72614 (Support "nmake test" on building extensions by phpize).
  • Implemented RFC: Iterable.
  • Implemented RFC: Closure::fromCallable (Danack)
  • Implemented RFC: Replace "Missing argument" warning with "ArgumentCountError" exception.
  • Implemented RFC: Fix inconsistent behavior of $this variable.
  • Fixed bug #73585 (Logging of "Internal Zend error - Missing class information" missing class name).
  • Fixed memory leak(null coalescing operator with Spl hash).
  • Fixed bug #72736 (Slow performance when fetching large dataset with mysqli / PDO).
  • Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow).
  • Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images).
  • Fixed bug #73350 (Exception::__toString() cause circular references).
  • Fixed bug #73329 ((Float)"Nano" == NAN).
  • Fixed bug #73288 (Segfault in __clone > Exception.toString > __get).
  • Fixed for #73240 (Write out of bounds at number_format).
  • Fix pthreads detection when cross-compiling (ffontaine)
  • Fixed bug #73337 (try/catch not working with two exceptions inside a same operation).
  • Fixed bug #73156 (segfault on undefined function).
  • Fixed bug #73163 (PHP hangs if error handler throws while accessing undef const in default value).
  • Fixed bug #73172 (parse error: Invalid numeric literal).
  • Fixed bug #73181 (parse_str() without a second argument leads to crash).
  • Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of zend_virtual_cwd.c).
  • Fixed bug #73058 (crypt broken when salt is 'too' long).
  • Fixed bug #72944 (Null pointer deref in zval_delref_p).
  • Fixed bug #72943 (assign_dim on string doesn't reset hval).
  • Fixed bug #72598 (Reference is lost after array_slice()) (Nikita)
  • Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by password_verify).
  • Fixed bug #72813 (Segfault with __get returned by ref).
  • Fixed bug #72767 (PHP Segfaults when trying to expand an infinite operator).
  • TypeError messages for arg_info type checks will now say "must be ... or null" where the parameter or return type accepts null.
  • Fixed bug #72857 (stream_socket_recvfrom read access violation).
  • Fixed bug #72663 (Create an Unexpected Object and Don't Invoke __wakeup() in Deserialization).
  • Fixed bug #72681 (PHP Session Data Injection Vulnerability).
  • Fixed bug #72742 (memory allocator fails to realloc small block to large one).
  • Fixed URL rewriter. It would not rewrite '//example.com/' URL unconditionally. URL rewrite target hosts whitelist is implemented.
  • Fixed bug #72641 (phpize (on Windows) ignores PHP_PREFIX).
  • Fixed bug #72683 (getmxrr broken).
  • Fixed bug #72629 (Caught exception assignment to variables ignores references).
  • Fixed bug #72594 (Calling an earlier instance of an included anonymous class fatals).
  • Fixed bug #72581 (previous property undefined in Exception after deserialization).
  • Fixed bug #72543 (Different references behavior comparing to PHP 5) (Laruence, Dmitry, Nikita)
  • Fixed bug #72347 (VERIFY_RETURN type casts visible in finally).
  • Fixed bug #72216 (Return by reference with finally is not memory safe).
  • Fixed bug #72215 (Wrong return value if var modified in finally).
  • Fixed bug #71818 (Memory leak when array altered in destructor).
  • Fixed bug #71539 (Memory error on $arr[$a] =& $arr[$b] if RHS rehashes) (Dmitry, Nikita)
  • Added new constant PHP_FD_SETSIZE.
  • Added optind parameter to getopt().
  • Added PHP to SAPI error severity mapping for logs.
  • Fixed bug #71911 (Unable to set --enable-debug on building extensions by phpize on Windows).
  • Fixed bug #29368 (The destructor is called when an exception is thrown from the constructor).
  • Implemented RFC: RNG Fixes.
  • Implemented email validation as per RFC 6531.
  • Fixed bug #72513 (Stack-based buffer overflow vulnerability in virtual_file_ex).
  • Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and applications).
  • Fixed bug #72523 (dtrace issue with reflection (failed test)).
  • Fixed bug #72508 (strange references after recursive function call and "switch" statement).
  • Fixed bug #72441 (Segmentation fault: RFC list_keys).
  • Fixed bug #72395 (list() regression).
  • Fixed bug #72373 (TypeError after Generator function w/declared return type finishes).
  • Fixed bug #69489 (tempnam() should raise notice if falling back to temp dir).
  • Fixed UTF-8 and long path support on Windows.
  • Fixed bug #53432 (Assignment via string index access on an empty string converts to array).
  • Fixed bug #62210 (Exceptions can leak temporary variables).
  • Fixed bug #62814 (It is possible to stiffen child class members visibility).
  • Fixed bug #69989 (Generators don't participate in cycle GC).
  • Fixed bug #70228 (Memleak if return in finally block).
  • Fixed bug #71266 (Missing separation of properties HT in foreach etc).
  • Fixed bug #71604 (Aborted Generators continue after nested finally).
  • Fixed bug #71572 (String offset assignment from an empty string inserts null byte).
  • Fixed bug #71897 (ASCII 0x7F Delete control character permitted in identifiers).
  • Fixed bug #72188 (Nested try/finally blocks losing return value).
  • Fixed bug #72213 (Finally leaks on nested exceptions).
  • Fixed bug #47517 (php-cgi.exe missing UAC manifest).
  • Change statement and fcall extension handlers to accept frame.
  • Number operators taking numeric strings now emit E_NOTICEs or E_WARNINGs when given malformed numeric strings.
  • (int), intval() where $base is 10 or unspecified, settype(), decbin(), decoct(), dechex(), integer operators and other conversions now always respect scientific notation in numeric strings.
  • Raise a compile-time warning on octal escape sequence overflow.
  • Apache2handler:
  • Enable per-module logging in Apache 2.4+.
  • BCmath:
  • Fix bug #73190 (memcpy negative parameter _bc_new_num_ex).
  • Bz2:
  • Fixed bug #72837 (integer overflow in bzdecompress caused heap corruption).
  • Fixed bug #72613 (Inadequate error handling in bzread()).
  • Calendar:
  • Fix integer overflows (Joshua Rogers)
  • Fixed bug #67976 (cal_days_month() fails for final month of the French calendar).
  • Fixed bug #71894 (AddressSanitizer: global-buffer-overflow in zif_cal_from_jd).
  • CLI Server:
  • Fixed bug #73360 (Unable to work in root with unicode chars).
  • Fixed bug #71276 (Built-in webserver does not send Date header).
  • COM:
  • Fixed bug #73126 (Cannot pass parameter 1 by reference).
  • Fixed bug #69579 (Invalid free in extension trait).
  • Fixed bug #72922 (COM called from PHP does not return out parameters).
  • Fixed bug #72569 (DOTNET/COM array parameters broke in PHP7).
  • Fixed bug #72498 (variant_date_from_timestamp null dereference).
  • Curl:
  • Implement support for handling HTTP/2 Server Push.
  • Add curl_multi_errno(), curl_share_errno() and curl_share_strerror() functions.
  • Fixed bug #72674 (Heap overflow in curl_escape).
  • Fixed bug #72541 (size_t overflow lead to heap corruption). (Stas).
  • Fixed bug #71709 (curl_setopt segfault with empty CURLOPT_HTTPHEADER).
  • Fixed bug #71929 (CURLINFO_CERTINFO data parsing error).
  • Date:
  • Fixed bug #69587 (DateInterval properties and isset).
  • Fixed bug #73426 (createFromFormat with 'z' format char results in incorrect time).
  • Fixed bug #45554 (Inconsistent behavior of the u format char).
  • Fixed bug #48225 (DateTime parser doesn't set microseconds for "now").
  • Fixed bug #52514 (microseconds are missing in DateTime class).
  • Fixed bug #52519 (microseconds in DateInterval are missing).
  • Fixed bug #60089 (DateTime::createFromFormat() U after u nukes microtime).
  • Fixed bug #64887 (Allow DateTime modification with subsecond items).
  • Fixed bug #68506 (General DateTime improvments needed for microseconds to become useful).
  • Fixed bug #73109 (timelib_meridian doesn't parse dots correctly).
  • Fixed bug #73247 (DateTime constructor does not initialise microseconds property).
  • Fixed bug #73147 (Use After Free in PHP7 unserialize()).
  • Fixed bug #73189 (Memcpy negative size parameter php_resolve_path).
  • Fixed bug #66836 (DateTime::createFromFormat 'U' with pre 1970 dates fails parsing).
  • Invalid serialization data for a DateTime or DatePeriod object will now throw an instance of Error from __wakeup() or __set_state() instead of resulting in a fatal error.
  • Timezone initialization failure from serialized data will now throw an instance of Error from __wakeup() or __set_state() instead of resulting in a fatal error.
  • Export date_get_interface_ce() for extension use.
  • Fixed bug #63740 (strtotime seems to use both sunday and monday as start of week).
  • Dba:
  • Fixed bug #70825 (Cannot fetch multiple values with group in ini file).
  • Data modification functions (e.g.: dba_insert()) now throw an instance of Error instead of triggering a catchable fatal error if the key is does not contain exactly two elements.
  • DOM:
  • Fixed bug #73150 (missing NULL check in dom_document_save_html).
  • Fixed bug #66502 (DOM document dangling reference).
  • Invalid schema or RelaxNG validation contexts will throw an instance of Error instead of resulting in a fatal error.
  • Attempting to register a node class that does not extend the appropriate base class will now throw an instance of Error instead of resulting in a fatal error.
  • Attempting to read an invalid or write to a readonly property will throw an instance of Error instead of resulting in a fatal error.
  • DTrace:
  • Disabled PHP call tracing by default (it makes significant overhead). This may be enabled again using envirionment variable USE_ZEND_DTRACE=1.
  • EXIF:
  • Fixed bug #72735 (Samsung picture thumb not read (zero size)).
  • Fixed bug #72627 (Memory Leakage In exif_process_IFD_in_TIFF).
  • Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE).
  • Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment).
  • Filter:
  • Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and FILTER_FLAG_NO_PRIV_RANGE).
  • Fixed bug #73054 (default option ignored when object passed to int filter).
  • Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 range).
  • FPM:
  • Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user).
  • FTP:
  • Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with require_ssl_reuse).
  • Implemented FR #55651 (Option to ignore the returned FTP PASV address).
  • GD:
  • Fixed bug #73213 (Integer overflow in imageline() with antialiasing).
  • Fixed bug #73272 (imagescale() is not affected by, but affects imagesetinterpolation()).
  • Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()).
  • Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf).
  • Fixed bug #50194 (imagettftext broken on transparent background w/o alphablending).
  • Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c).
  • Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box).
  • Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given).
  • Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries).
  • Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted files).
  • Fixed bug #73161 (imagecreatefromgd2() may leak memory).
  • Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette).
  • Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor images).
  • Fixed bug #72913 (imagecopy() loses single-color transparency on palette images).
  • Fixed bug #68716 (possible resource leaks in _php_image_convert()).
  • Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles).
  • Fixed bug #72697 (select_colors write out-of-bounds).
  • Fixed bug #72730 (imagegammacorrect allows arbitrary write access).
  • Fixed bug #72596 (imagetypes function won't advertise WEBP support).
  • Fixed bug #72604 (imagearc() ignores thickness for full arcs).
  • Fixed bug #70315 (500 Server Error but page is fully rendered).
  • Fixed bug #43828 (broken transparency of imagearc for truecolor in blendingmode).
  • Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read access).
  • Fixed bug #72519 (imagegif/output out-of-bounds access).
  • Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()).
  • Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow).
  • Fixed bug #72494 (imagecropauto out-of-bounds access).
  • Fixed bug #72404 (imagecreatefromjpeg fails on selfie).
  • Fixed bug #43475 (Thick styled lines have scrambled patterns).
  • Fixed bug #53640 (XBM images require width to be multiple of 8).
  • Fixed bug #64641 (imagefilledpolygon doesn't draw horizontal line).
  • Hash:
  • Added SHA3 fixed mode algorithms (224, 256, 384, and 512 bit).
  • Added SHA512/256 and SHA512/224 algorithms.
  • iconv:
  • Fixed bug #72320 (iconv_substr returns false for empty strings).
  • IMAP:
  • Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads to crash).
  • An email address longer than 16385 bytes will throw an instance of Error instead of resulting in a fatal error.
  • Interbase:
  • Fixed bug #73512 (Fails to find firebird headers as don't use fb_config output).
  • Intl:
  • Fixed bug #73007 (add locale length check).
  • Fixed bug #73218 (add mitigation for ICU int overflow).
  • Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF sequence).
  • Fixed bug #73007 (add locale length check).
  • Fixed bug #72639 (Segfault when instantiating class that extends IntlCalendar and adds a property).
  • Fixed bug #72658 (Locale::lookup() / locale_lookup() hangs if no match found).
  • Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain names).
  • Fixed bug #72533 (locale_accept_from_http out-of-bounds access).
  • Failure to call the parent constructor in a class extending Collator before invoking the parent methods will throw an instance of Error instead of resulting in a recoverable fatal error.
  • Cloning a Transliterator object may will now throw an instance of Error instead of resulting in a fatal error if cloning the internal transliterator fails.
  • Added IntlTimeZone::getWindowsID() and IntlTimeZone::getIDForWindowsID().
  • Fixed bug #69374 (IntlDateFormatter formatObject returns wrong utf8 value).
  • Fixed bug #69398 (IntlDateFormatter formatObject returns wrong value when time style is NONE).
  • JSON:
  • Introduced encoder struct instead of global which fixes bugs #66025 and #73254 related to pretty print indentation.
  • Fixed bug #73113 (Segfault with throwing JsonSerializable).
  • Implemented earlier return when json_encode fails, fixes bugs #68992 (Stacking exceptions thrown by JsonSerializable) and #70275 (On recursion error, json_encode can eat up all system memory).
  • Implemented FR #46600 ("_empty_" key in objects).
  • Exported JSON parser API including json_parser_method that can be used for implementing custom logic when parsing JSON.
  • Escaped U+2028 and U+2029 when JSON_UNESCAPED_UNICODE is supplied as json_encode options and added JSON_UNESCAPED_LINE_TERMINATORS to restore the previous behaviour.
  • LDAP:
  • Providing an unknown modification type to ldap_batch_modify() will now throw an instance of Error instead of resulting in a fatal error.
  • Mbstring:
  • Fixed bug #73532 (Null pointer dereference in mb_eregi).
  • Fixed bug #66964 (mb_convert_variables() cannot detect recursion) (Yasuo)
  • Fixed bug #72992 (mbstring.internal_encoding doesn't inherit default_charset).
  • Fixed bug #66797 (mb_substr only takes 32-bit signed integer).
  • Fixed bug #72711 (`mb_ereg` does not clear the `$regs` parameter on failure).
  • Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width).
  • Fixed bug #72693 (mb_ereg_search increments search position when a match zero-width).
  • Fixed bug #72694 (mb_ereg_search_setpos does not accept a string's last position).
  • Fixed bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error).
  • Deprecated mb_ereg_replace() eval option.
  • Fixed bug #69151 (mb_ereg should reject ill-formed byte sequence).
  • Fixed bug #72405 (mb_ereg_replace - mbc_to_code (oniguruma) - oob read access).
  • Fixed bug #72399 (Use-After-Free in MBString (search_re)).
  • mb_ereg() and mb_eregi() will now throw an instance of ParseError if an invalid PHP expression is provided and the 'e' option is used.
  • Mcrypt:
  • Deprecated ext/mcrypt.
  • Fixed bug #72782 (Heap Overflow due to integer overflows).
  • Fixed bug #72551, bug #72552 (In correct casting from size_t to int lead to heap overflow in mdecrypt_generic).
  • mcrypt_encrypt() and mcrypt_decrypt() will throw an instance of Error instead of resulting in a fatal error if mcrypt cannot be initialized.
  • Mysqli:
  • Attempting to read an invalid or write to a readonly property will throw an instance of Error instead of resulting in a fatal error.
  • Mysqlnd:
  • Fixed bug #64526 (Add missing mysqlnd.* parameters to php.ini-*).
  • Fixed bug #71863 (Segfault when EXPLAIN with "Unknown column" error when using MariaDB).
  • Fixed bug #72701 (mysqli_get_host_info() wrong output).
  • OCI8:
  • Fixed bug #71148 (Bind reference overwritten on PHP 7).
  • Fixed invalid handle error with Implicit Result Sets.
  • Fixed bug #72524 (Binding null values triggers ORA-24816 error).
  • ODBC:
  • Fixed bug #73448 (odbc_errormsg returns trash, always 513 bytes).
  • Opcache:
  • Fixed bug #73583 (Segfaults when conditionally declared class and function have the same name).
  • Fixed bug #69090 (check cached files permissions)
  • Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp() function).
  • Fixed bug #72949 (Typo in opcache error message).
  • Fixed bug #72762 (Infinite loop while parsing a file with opcache enabled).
  • Fixed bug #72590 (Opcache restart with kill_all_lockers does not work).
  • OpenSSL:
  • Fixed bug #73478 (openssl_pkey_new() generates wrong pub/priv keys with Diffie Hellman).
  • Fixed bug #73276 (crash in openssl_random_pseudo_bytes function).
  • Fixed bug #73072 (Invalid path SNI_server_certs causes segfault).
  • Fixed bug #72360 (ext/openssl build failure with OpenSSL 1.1.0).
  • Bumped a minimal version to 1.0.1.
  • Dropped support for SSL2.
  • Implemented FR #61204 (Add elliptic curve support for OpenSSL).
  • Implemented FR #67304 (Added AEAD support [CCM and GCM modes] to openssl_encrypt and openssl_decrypt).
  • Implemented error storing to the global queue and cleaning up the OpenSSL error queue (resolves bugs #68276 and #69882).
  • Pcntl:
  • Implemented asynchronous signal handling without TICKS.
  • Added pcntl_signal_get_handler() that returns the current signal handler for a particular signal. Addresses FR #72409.
  • Add signinfo to pcntl_signal() handler args (Bishop Bettini, David Walker)
  • PCRE:
  • Fixed bug #73483 (Segmentation fault on pcre_replace_callback).
  • Fixed bug #73612 (preg_*() may leak memory).
  • Fixed bug #73392 (A use-after-free in zend allocator management).
  • Fixed bug #73121 (Bundled PCRE doesn't compile because JIT isn't supported on s390).
  • Fixed bug #72688 (preg_match missing group names in matches).
  • Downgraded to PCRE 8.38.
  • Fixed bug #72476 (Memleak in jit_stack).
  • Fixed bug #72463 (mail fails with invalid argument).
  • Upgraded to PCRE 8.39.
  • PDO:
  • Fixed bug #72788 (Invalid memory access when using persistent PDO connection).
  • Fixed bug #72791 (Memory leak in PDO persistent connection handling).
  • Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY returns false).
  • PDO_DBlib:
  • Fixed bug #72414 (Never quote values as raw binary data).
  • Allow PDO::setAttribute() to set query timeouts.
  • Handle SQLDECIMAL/SQLNUMERIC types, which are used by later TDS versions.
  • Add common PDO test suite.
  • Free error and message strings when cleaning up PDO instances.
  • Fixed bug #67130 (PDOStatement::nextRowset() should succeed when all rows in current rowset haven't been fetched).
  • Ignore potentially misleading dberr values.
  • Implemented stringify 'uniqueidentifier' fields.
  • PDO_Firebird:
  • Fixed bug #73087, #61183, #71494 (Memory corruption in bindParam).
  • Fixed bug #60052 (Integer returned as a 64bit integer on X86_64).
  • PDO_pgsql:
  • Fixed bug #70313 (PDO statement fails to throw exception).
  • Fixed bug #72570 (Segmentation fault when binding parameters on a query without placeholders).
  • Implemented FR #72633 (Postgres PDO lastInsertId() should work without specifying a sequence).
  • Phar:
  • Fixed bug #72928 (Out of bound when verify signature of zip phar in phar_parse_zipfile).
  • Fixed bug #73035 (Out of bound when verify signature of tar phar in phar_parse_tarfile).
  • phpdbg:
  • Added generator command for inspection of currently alive generators.
  • Postgres:
  • Fixed bug #73498 (Incorrect SQL generated for pg_copy_to()).
  • Implemented FR #31021 (pg_last_notice() is needed to get all notice messages).
  • Implemented FR #48532 (Allow pg_fetch_all() to index numerically).
  • Readline:
  • Fixed bug #72538 (readline_redisplay crashes php).
  • Reflection:
  • Undo backwards compatiblity break in ReflectionType->__toString() and deprecate via documentation instead.
  • Reverted prepending for class names.
  • Implemented request #38992 (invoke() and invokeArgs() static method calls should match). (cmb).
  • Add ReflectionNamedType::getName(). This method should be used instead of ReflectionType::__toString()
  • Prepend for class names and ? for nullable types returned from ReflectionType::__toString().
  • Fixed bug #72661 (ReflectionType::__toString crashes with iterable).
  • Fixed bug #72222 (ReflectionClass::export doesn't handle array constants).
  • Failure to retrieve a reflection object or retrieve an object property will now throw an instance of Error instead of resulting in a fatal error.
  • Fix #72209 (ReflectionProperty::getValue() doesn't fail if object doesn't match type).
  • Session:
  • Fixed bug #73273 (session_unset() empties values from all variables in which is $_session stored).
  • Fixed bug #73100 (session_destroy null dereference in ps_files_path_create).
  • Fixed bug #68015 (Session does not report invalid uid for files save handler).
  • Fixed bug #72940 (SID always return "name=ID", even if session cookie exist).
  • Implemented session_gc() (Yasuo) https://wiki.php.net/rfc/session-create-id
  • Implemented session_create_id() (Yasuo) https://wiki.php.net/rfc/session-gc
  • Implemented RFC: Session ID without hashing. (Yasuo) https://wiki.php.net/rfc/session-id-without-hashing
  • Fixed bug #72531 (ps_files_cleanup_dir Buffer overflow).
  • Custom session handlers that do not return strings for session IDs will now throw an instance of Error instead of resulting in a fatal error when a function is called that must generate a session ID.
  • An invalid setting for session.hash_function will throw an instance of Error instead of resulting in a fatal error when a session ID is created.
  • Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session Deserialization).
  • Improved fix for bug #68063 (Empty session IDs do still start sessions).
  • Fixed bug #71038 (session_start() returns TRUE on failure). Session save handlers must return 'string' always for successful read. i.e. Non-existing session read must return empty string. PHP 7.0 is made not to tolerate buggy return value.
  • Fixed bug #71394 (session_regenerate_id() must close opened session on errors).
  • SimpleXML:
  • Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()).
  • Fixed bug #72971 (SimpleXML isset/unset do not respect namespace).
  • Fixed bug #72957 (Null coalescing operator doesn't behave as expected with SimpleXMLElement).
  • Fixed bug #72588 (Using global var doesn't work while accessing SimpleXML element).
  • Creating an unnamed or duplicate attribute will throw an instance of Error instead of resulting in a fatal error.
  • SNMP:
  • Fixed bug #72708 (php_snmp_parse_oid integer overflow in memory allocation).
  • Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and unserialize()).
  • Soap:
  • Fixed bug #73538 (SoapClient::__setSoapHeaders doesn't overwrite SOAP headers).
  • Fixed bug #73452 (Segfault (Regression for #69152)).
  • Fixed bug #73037 (SoapServer reports Bad Request when gzipped).
  • Fixed bug #73237 (Nested object in "any" element overwrites other fields).
  • Fixed bug #69137 (Peer verification fails when using a proxy with SoapClient) (Keith Smiley)
  • Fixed bug #71711 (Soap Server Member variables reference bug).
  • Fixed bug #71996 (Using references in arrays doesn't work like expected).
  • SPL:
  • Fixed bug #73423 (Reproducible crash with GDB backtrace).
  • Fixed bug #72888 (Segfault on clone on splFileObject).
  • Fixed bug #73029 (Missing type check when unserializing SplArray).
  • Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape character).
  • Fixed bug #72684 (AppendIterator segfault with closed generator).
  • Attempting to clone an SplDirectory object will throw an instance of Error instead of resulting in a fatal error.
  • Calling ArrayIterator::append() when iterating over an object will throw an instance of Error instead of resulting in a fatal error.
  • Fixed bug #55701 (GlobIterator throws LogicException).
  • SQLite3:
  • Update to SQLite 3.15.1.
  • Fixed bug #73530 (Unsetting result set may reset other result set).
  • Fixed bug #73333 (2147483647 is fetched as string).
  • Fixed bug #72668 (Spurious warning when exception is thrown in user defined function).
  • Implemented FR #72653 (SQLite should allow opening with empty filename).
  • Fixed bug #70628 (Clearing bindings on an SQLite3 statement doesn't work).
  • Implemented FR #71159 (Upgraded bundled SQLite lib to 3.9.2).
  • Standard:
  • Fixed bug #73297 (HTTP stream wrapper should ignore HTTP 100 Continue).
  • Fixed bug #73303 (Scope not inherited by eval in assert()).
  • Fixed bug #73192 (parse_url return wrong hostname).
  • Fixed bug #73203 (passing additional_parameters causes mail to fail).
  • Fixed bug #73203 (passing additional_parameters causes mail to fail).
  • Fixed bug #72920 (Accessing a private constant using constant() creates an exception AND warning).
  • Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign).
  • Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory).
  • Fixed bug #55451 (substr_compare NULL length interpreted as 0).
  • Fixed bug #72278 (getimagesize returning FALSE on valid jpg).
  • Fixed bug #61967 (unset array item in array_walk_recursive cause inconsistent array).
  • Fixed bug #62607 (array_walk_recursive move internal pointer).
  • Fixed bug #69068 (Exchanging array during array_walk -> memory errors).
  • Fixed bug #70713 (Use After Free Vulnerability in array_walk()/ array_walk_recursive()).
  • Fixed bug #72622 (array_walk + array_replace_recursive create references from nothing).
  • Fixed bug #72330 (CSV fields incorrectly split if escape char followed by UTF chars).
  • Implemented RFC: More precise float values.
  • array_multisort now uses zend_sort instead zend_qsort.
  • Fixed bug #72505 (readfile() mangles files larger than 2G).
  • assert() will throw a ParseError when evaluating a string given as the first argument if the PHP code is invalid instead of resulting in a catchable fatal error.
  • Calling forward_static_call() outside of a class scope will now throw an instance of Error instead of resulting in a fatal error.
  • Added is_iterable() function.
  • Fixed bug #72306 (Heap overflow through proc_open and $env parameter).
  • Fixed bug #71100 (long2ip() doesn't accept integers in strict mode).
  • Implemented FR #55716 (Add an option to pass a custom stream context to get_headers()).
  • Additional validation for parse_url() for login/pass components).
  • Implemented FR #69359 (Provide a way to fetch the current environment variables).
  • unpack() function accepts an additional optional argument $offset.
  • Implemented #51879 stream context socket option tcp_nodelay (Joe)
  • Streams:
  • Fixed bug #73586 (php_user_filter::$stream is not set to the stream the filter is working on).
  • Fixed bug #72853 (stream_set_blocking doesn't work).
  • Fixed bug #72743 (Out-of-bound read in php_stream_filter_create).
  • Implemented FR #27814 (Multiple small packets send for HTTP request).
  • Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails with IIS FTP 7.5, 8.5).
  • Fixed bug #72810 (Missing SKIP_ONLINE_TESTS checks).
  • Fixed bug #41021 (Problems with the ftps wrapper).
  • Fixed bug #54431 (opendir() does not work with ftps:// wrapper).
  • Fixed bug #72667 (opendir() with ftp:// attempts to open data stream for non-existent directories).
  • Fixed bug #72771 (ftps:// wrapper is vulnerable to protocol downgrade attack).
  • Fixed bug #72534 (stream_socket_get_name crashes).
  • Fixed bug #72439 (Stream socket with remote address leads to a segmentation fault).
  • sysvshm:
  • Fixed bug #72858 (shm_attach null dereference).
  • Tidy:
  • Implemented support for libtidy 5.0.0 and above.
  • Creating a tidyNode manually will now throw an instance of Error instead of resulting in a fatal error.
  • Wddx:
  • Fixed bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization with PDORow).
  • Fixed bug #72142 (WDDX Packet Injection Vulnerability in wddx_serialize_value()).
  • Fixed bug #72749 (wddx_deserialize allows illegal memory access) (Stas)
  • Fixed bug #72750 (wddx_deserialize null dereference).
  • Fixed bug #72790 (wddx_deserialize null dereference with invalid xml).
  • Fixed bug #72799 (wddx_deserialize null dereference in php_wddx_pop_element).
  • Fixed bug #72860 (wddx_deserialize use-after-free).
  • Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element).
  • Fixed bug #72564 (boolean always deserialized as "true") (Remi)
  • A circular reference when serializing will now throw an instance of Error instead of resulting in a fatal error.
  • XML:
  • Fixed bug #72135 (malformed XML causes fault) (edgarsandi)
  • Fixed bug #72714 (_xml_startElementHandler() segmentation fault).
  • Fixed bug #72085 (SEGV on unknown address zif_xml_parse).
  • XMLRPC:
  • Fixed bug #72647 (xmlrpc_encode() unexpected output after referencing array elements).
  • Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn simplestring.c).
  • A circular reference when serializing will now throw an instance of Error instead of resulting in a fatal error.
  • Zip:
  • Fixed bug #68302 (impossible to compile php with zip support).
  • Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd).
  • Fixed bug #72520 (Stack-based buffer overflow vulnerability in php_stream_zip_opener).
  • ZipArchive::addGlob() will throw an instance of Error instead of resulting in a fatal error if glob support is not available.

New in PHP 7.0.12 (Oct 14, 2016)

  • Core:
  • Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of zend_virtual_cwd.c).
  • Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by password_verify).
  • Fixed bug #73058 (crypt broken when salt is 'too' long).
  • Fixed bug #69579 (Invalid free in extension trait).
  • Fixed bug #73156 (segfault on undefined function).
  • Fixed bug #73163 (PHP hangs if error handler throws while accessing undef const in default value).
  • Fixed bug #73172 (parse error: Invalid numeric literal).
  • Fixed for #73240 (Write out of bounds at number_format).
  • Fixed bug #73147 (Use After Free in PHP7 unserialize()).
  • Fixed bug #73189 (Memcpy negative size parameter php_resolve_path).
  • BCmath:
  • Fixed bug #73190 (memcpy negative parameter _bc_new_num_ex).
  • COM:
  • Fixed bug #73126 (Cannot pass parameter 1 by reference).
  • Date:
  • Fixed bug #73091 (Unserializing DateInterval object may lead to __toString invocation).
  • DOM:
  • Fixed bug #73150 (missing NULL check in dom_document_save_html).
  • Filter:
  • Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and FILTER_FLAG_NO_PRIV_RANGE).
  • Fixed bug #73054 (default option ignored when object passed to int filter).
  • GD:
  • Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette).
  • Fixed bug #50194 (imagettftext broken on transparent background w/o alphablending).
  • Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c).
  • Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box).
  • Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given).
  • Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries).
  • Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted files).
  • Fixed bug #73161 (imagecreatefromgd2() may leak memory).
  • Intl:
  • Fixed bug #73218 (add mitigation for ICU int overflow).
  • Mbstring:
  • Fixed bug #66797 (mb_substr only takes 32-bit signed integer).
  • Fixed bug #66964 (mb_convert_variables() cannot detect recursion).
  • Fixed bug #72992 (mbstring.internal_encoding doesn't inherit default_charset).
  • Mysqlnd:
  • Fixed bug #72489 (PHP Crashes When Modifying Array Containing MySQLi Result Data).
  • Opcache:
  • Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp() function).
  • OpenSSL:
  • Fixed bug #73072 (Invalid path SNI_server_certs causes segfault).
  • Fixed bug #73276 (crash in openssl_random_pseudo_bytes function).
  • Fixed bug #73275 (crash in openssl_encrypt function).
  • PCRE:
  • Fixed bug #73121 (Bundled PCRE doesn't compile because JIT isn't supported on s390).
  • Fixed bug #73174 (heap overflow in php_pcre_replace_impl).
  • PDO_DBlib:
  • Fixed bug #72414 (Never quote values as raw binary data).
  • Allow PDO::setAttribute() to set query timeouts.
  • Handle SQLDECIMAL/SQLNUMERIC types, which are used by later TDS versions.
  • Add common PDO test suite.
  • Free error and message strings when cleaning up PDO instances.
  • Fixed bug #67130 (PDOStatement::nextRowset() should succeed when all rows in current rowset haven't been fetched).
  • Ignore potentially misleading dberr values.
  • phpdbg:
  • Fixed bug #72996 (phpdbg_prompt.c undefined reference to DL_LOAD).
  • Fixed next command not stopping when leaving function.
  • Session:
  • Fixed bug #68015 (Session does not report invalid uid for files save handler).
  • Fixed bug #73100 (session_destroy null dereference in ps_files_path_create).
  • SimpleXML:
  • Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()).
  • SOAP:
  • Fixed bug #71711 (Soap Server Member variables reference bug).
  • Fixed bug #71996 (Using references in arrays doesn't work like expected).
  • SPL:
  • Fixed bug #73257, Fixed bug #73258 (SplObjectStorage unserialize allows use of non-object as key).
  • SQLite3:
  • Updated bundled SQLite3 to 3.14.2.
  • Zip:
  • Fixed bug #70752 (Depacking with wrong password leaves 0 length files).

New in PHP 7.0.11 (Sep 15, 2016)

  • Core:
  • Fixed bug #72944 (Null pointer deref in zval_delref_p).
  • Fixed bug #72943 (assign_dim on string doesn't reset hval).
  • Fixed bug #72911 (Memleak in zend_binary_assign_op_obj_helper).
  • Fixed bug #72813 (Segfault with __get returned by ref).
  • Fixed bug #72767 (PHP Segfaults when trying to expand an infinite operator).
  • Fixed bug #72854 (PHP Crashes on duplicate destructor call).
  • Fixed bug #72857 (stream_socket_recvfrom read access violation).
  • COM:
  • Fixed bug #72922 (COM called from PHP does not return out parameters).
  • Dba:
  • Fixed bug #70825 (Cannot fetch multiple values with group in ini file).
  • FTP:
  • Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with require_ssl_reuse).
  • GD:
  • Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles).
  • Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor images).
  • Fixed bug #72913 (imagecopy() loses single-color transparency on palette images).
  • Fixed bug #68716 (possible resource leaks in _php_image_convert()).
  • iconv:
  • Fixed bug #72320 (iconv_substr returns false for empty strings).
  • IMAP:
  • Fixed bug #72852 (imap_mail null dereference).
  • Intl:
  • Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF sequence).
  • Fixed bug #73007 (add locale length check).
  • Mysqlnd:
  • Fixed bug #72293 (Heap overflow in mysqlnd related to BIT fields).
  • OCI8:
  • Fixed invalid handle error with Implicit Result Sets.
  • Fixed bug #72524 (Binding null values triggers ORA-24816 error).
  • Opcache:
  • Fixed bug #72949 (Typo in opcache error message).
  • PDO:
  • Fixed bug #72788 (Invalid memory access when using persistent PDO connection).
  • Fixed bug #72791 (Memory leak in PDO persistent connection handling).
  • Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY returns false).
  • PDO_DBlib:
  • Implemented stringify 'uniqueidentifier' fields.
  • PDO_pgsql:
  • Implemented FR #72633 (Postgres PDO lastInsertId() should work without specifying a sequence).
  • Fixed bug #72759 (Regression in pgo_pgsql).
  • Phar:
  • Fixed bug #72928 (Out of bound when verify signature of zip phar in phar_parse_zipfile).
  • Fixed bug #73035 (Out of bound when verify signature of tar phar in phar_parse_tarfile).
  • Reflection:
  • Fixed bug #72846 (getConstant for a array constant with constant values returns NULL/NFC/UKNOWN).
  • Session:
  • Fixed bug #72724 (PHP7: session-uploadprogress kills httpd).
  • Fixed bug #72940 (SID always return "name=ID", even if session cookie exist).
  • SimpleXML:
  • Fixed bug #72971 (SimpleXML isset/unset do not respect namespace).
  • Fixed bug #72957 (Null coalescing operator doesn't behave as expected with SimpleXMLElement).
  • SPL:
  • Fixed bug #73029 (Missing type check when unserializing SplArray).
  • Standard:
  • Fixed bug #55451 (substr_compare NULL length interpreted as 0).
  • Fixed bug #72278 (getimagesize returning FALSE on valid jpg).
  • Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign).
  • Streams:
  • Fixed bug #72853 (stream_set_blocking doesn't work).
  • Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails with IIS FTP 7.5, 8.5).
  • Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory).
  • SQLite3:
  • Downgraded bundled SQLite to 3.8.10.2, see #73068
  • Sysvshm:
  • Fixed bug #72858 (shm_attach null dereference).
  • XML:
  • Fixed bug #72085 (SEGV on unknown address zif_xml_parse).
  • Fixed bug #72714 (_xml_startElementHandler() segmentation fault).
  • Wddx:
  • Fixed bug #72860 (wddx_deserialize use-after-free).
  • Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element).
  • ZIP:
  • Fixed bug #68302 (impossible to compile php with zip support).

New in PHP 7.0.8 (Jun 23, 2016)

  • Core:
  • Fixed bug #72218 (If host name cannot be resolved then PHP 7 crashes).
  • Fixed bug #72221 (segfault, past-the-end access).
  • Fixed bug #72268 (Integer Overflow in nl2br()).
  • Fixed bug #72275 (Integer Overflow in json_encode()/json_decode()/ json_utf8_to_utf16()).
  • Fixed bug #72400 (Integer Overflow in addcslashes/addslashes).
  • Fixed bug #72403 (Integer Overflow in Length of String-typed ZVAL).
  • FPM:
  • Fixed bug #72308 (fastcgi_finish_request and logging environment variables).
  • GD:
  • Fixed bug #72298 (pass2_no_dither out-of-bounds access).
  • Fixed bug #72337 (invalid dimensions can lead to crash) (Pierre)
  • Fixed bug #72339 (Integer Overflow in _gd2GetHeader() resulting in heap overflow).
  • Fixed bug #72407 (NULL Pointer Dereference at _gdScaleVert).
  • Intl: Fixed bug #64524 (Add intl.use_exceptions to php.ini-*).
  • mbstring:
  • Fixed bug #72402 (_php_mb_regex_ereg_replace_exec - double free).
  • mcrypt:
  • Fixed bug #72455 (Heap Overflow due to integer overflows).
  • PCRE:
  • Fixed bug #72143 (preg_replace uses int instead of size_t).
  • PDO_pgsql:
  • Fixed bug #71573 (Segfault (core dumped) if paramno beyond bound).
  • Fixed bug #72294 (Segmentation fault/invalid pointer in connection with pgsql_stmt_dtor).
  • Phpdbg:
  • Fixed bug #72284 (phpdbg fatal errors with coverage).
  • Postgres:
  • Fixed bug #72195 (pg_pconnect/pg_connect cause use-after-free).
  • Fixed bug #72197 (pg_lo_create arbitrary read).
  • SPL:
  • Fixed bug #72262 (int/size_t confusion in SplFileObject::fread).
  • Fixed bug #72433 (Use After Free Vulnerability in PHP's GC algorithm and unserialize).
  • Standard:
  • Fixed bug #72017 (range() with float step produces unexpected result).
  • Fixed bug #72193 (dns_get_record returns array containing elements of type 'unknown').
  • Fixed bug #72229 (Wrong reference when serialize/unserialize an object).
  • Fixed bug #72300 (ignore_user_abort(false) has no effect).
  • XML:
  • Fixed bug #72206 (xml_parser_create/xml_parser_free leaks mem).
  • XMLRPC:
  • Fixed bug #72155 (use-after-free caused by get_zval_xmlrpc_type).
  • WDDX:
  • Fixed bug #72340 (Double Free Courruption in wddx_deserialize).
  • Zip:
  • Fixed bug #72258 (ZipArchive converts filenames to unrecoverable form).
  • Fixed bug #72434 (ZipArchive class Use After Free Vulnerability in PHP's GC algorithm and unserialize).

New in PHP 7.0.7 (May 26, 2016)

  • Core:
  • Fixed bug #72162 (use-after-free - error_reporting).
  • Add compiler option to disable special case function calls.
  • Fixed bug #72101 (crash on complex code).
  • Fixed bug #72100 (implode() inserts garbage into resulting string when joins very big integer).
  • Fixed bug #72057 (PHP Hangs when using custom error handler and typehint).
  • Fixed bug #72038 (Function calls with values to a by-ref parameter don't always throw a notice).
  • Fixed bug #71737 (Memory leak in closure with parameter named $this).
  • Fixed bug #72059 (?? is not allowed on constant expressions).
  • Fixed bug #72159 (Imported Class Overrides Local Class Name).
  • Curl:
  • Fixed bug #68658 (Define CURLE_SSL_CACERT_BADFILE).
  • DBA:
  • Fixed bug #72157 (use-after-free caused by dba_open).
  • GD:
  • Fixed bug #72227 (imagescale out-of-bounds read).
  • Intl:
  • Fixed bug #72241 (get_icu_value_internal out-of-bounds read).
  • JSON:
  • Fixed bug #72069 (Behavior \JsonSerializable different from json_encode).
  • Mbstring:
  • Fixed bug #72164 (Null Pointer Dereference - mb_ereg_replace).
  • OCI8:
  • Fixed bug #71600 (oci_fetch_all segfaults when selecting more than eight columns).
  • Opcache:
  • Fixed bug #72014 (Including a file with anonymous classes multiple times leads to fatal error).
  • OpenSSL:
  • Fixed bug #72165 (Null pointer dereference - openssl_csr_new).
  • PCNTL:
  • Fixed bug #72154 (pcntl_wait/pcntl_waitpid array internal structure overwrite).
  • POSIX:
  • Fixed bug #72133 (php_posix_group_to_array crashes if gr_passwd is NULL).
  • Postgres:
  • Fixed bug #72028 (pg_query_params(): NULL converts to empty string).
  • Fixed bug #71062 (pg_convert() doesn't accept ISO 8601 for datatype timestamp).
  • Fixed bug #72151 (mysqli_fetch_object changed behaviour).
  • Reflection:
  • Fixed bug #72174 (ReflectionProperty#getValue() causes __isset call).
  • Session:
  • Fixed bug #71972 (Cyclic references causing session_start(): Failed to decode session object).
  • Sockets:
  • Added socket_export_stream() function for getting a stream compatible resource from a socket resource.
  • SPL:
  • Fixed bug #72051 (The reference in CallbackFilterIterator doesn't work as expected).
  • SQLite3:
  • Fixed bug #68849 (bindValue is not using the right data type).
  • Standard:
  • Fixed bug #72075 (Referencing socket resources breaks stream_select).
  • Fixed bug #72031 (array_column() against an array of objects discards all values matching null).

New in PHP 7.0.6 (May 26, 2016)

  • Core:
  • Fixed bug #71930 (_zval_dtor_func: Assertion `(arr)->gc.refcount

New in PHP 7.0.5 (Mar 31, 2016)

  • Core:
  • Huge pages disabled by default.
  • Added ability to enable huge pages in Zend Memory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=1.
  • Fixed bug #71756 (Call-by-reference widens scope to uninvolved functions when used in switch).
  • Fixed bug #71729 (Possible crash in zend_bin_strtod, zend_oct_strtod, zend_hex_strtod).
  • Fixed bug #71695 (Global variables are reserved before execution).
  • Fixed bug #71629 (Out-of-bounds access in php_url_decode in context php_stream_url_wrap_rfc2397).
  • Fixed bug #71622 (Strings used in pass-as-reference cannot be used to invoke C::$callable()).
  • Fixed bug #71596 (Segmentation fault on ZTS with date function (setlocale)).
  • Fixed bug #71535 (Integer overflow in zend_mm_alloc_heap()).
  • Fixed bug #71470 (Leaked 1 hashtable iterators).
  • Fixed bug #71575 (ISO C does not allow extra ‘;’ outside of a function).
  • Fixed bug #71724 (yield from does not count EOLs).
  • Fixed bug #71767 (ReflectionMethod::getDocComment returns the wrong comment).
  • Fixed bug #71806 (php_strip_whitespace() fails on some numerical values).
  • Fixed bug #71624 (`php -R` (PHP_MODE_PROCESS_STDIN) is broken).
  • CLI Server:
  • Fixed bug #69953 (Support MKCALENDAR request method).
  • Curl:
  • Fixed bug #71694 (Support constant CURLM_ADDED_ALREADY).
  • Date:
  • Fixed bug #71635 (DatePeriod::getEndDate segfault).
  • Fileinfo:
  • Fixed bug #71527 (Buffer over-write in finfo_open with malformed magic file).
  • libxml:
  • Fixed bug #71536 (Access Violation crashes php-cgi.exe).
  • mbstring:
  • Fixed bug #71906 (AddressSanitizer: negative-size-param (-1) in mbfl_strcut).
  • ODBC:
  • Fixed bug #47803, #69526 (Executing prepared statements is succesfull only for the first two statements).
  • PCRE:
  • Fixed bug #71659 (segmentation fault in pcre running twig tests).
  • PDO_DBlib:
  • Fixed bug #54648 (PDO::MSSQL forces format of datetime fields).
  • Phar:
  • Fixed bug #71625 (Crash in php7.dll with bad phar filename).
  • Fixed bug #71317 (PharData fails to open specific file).
  • Fixed bug #71860 (Invalid memory write in phar on filename with \0 in name).
  • phpdbg:
  • Fixed crash when advancing (except step) inside an internal function.
  • Session:
  • Fixed bug #71683 (Null pointer dereference in zend_hash_str_find_bucket).
  • SNMP:
  • Fixed bug #71704 (php_snmp_error() Format String Vulnerability).
  • SPL:
  • Fixed bug #71617 (private properties lost when unserializing ArrayObject).
  • Standard:
  • Fixed bug #71660 (array_column behaves incorrectly after foreach by reference).
  • Fixed bug #71798 (Integer Overflow in php_raw_url_encode).
  • Zip:
  • Update bundled libzip to 1.1.2.

New in PHP 7.0.4 (Mar 3, 2016)

  • Core:
  • Fixed bug (Low probability segfault in zend_arena).
  • Fixed bug #71441 (Typehinted Generator with return in try/finally crashes).
  • Fixed bug #71442 (forward_static_call crash).
  • Fixed bug #71443 (Segfault using built-in webserver with intl using symfony).
  • Fixed bug #71449 (An integer overflow bug in php_implode()).
  • Fixed bug #71450 (An integer overflow bug in php_str_to_str_ex()).
  • Fixed bug #71474 (Crash because of VM stack corruption on Magento2).
  • Fixed bug #71485 (Return typehint on internal func causes Fatal error when it throws exception).
  • Fixed bug #71529 (Variable references on array elements don't work when using count).
  • Fixed bug #71601 (finally block not executed after yield from).
  • Fixed bug #71637 (Multiple Heap Overflow due to integer overflows in xml/filter_url/addcslashes).
  • CLI server:
  • Fixed bug #71559 (Built-in HTTP server, we can download file in web by bug).
  • CURL:
  • Fixed bug #71523 (Copied handle with new option CURLOPT_HTTPHEADER crashes while curl_multi_exec).
  • Fixed memory leak in curl_getinfo().
  • Date:
  • Fixed bug #71525 (Calls to date_modify will mutate timelib_rel_time, causing date_date_set issues).
  • Fileinfo:
  • Fixed bug #71434 (finfo throws notice for specific python file).
  • FPM:
  • Fixed bug #62172 (FPM not working with Apache httpd 2.4 balancer/fcgi setup).
  • Fixed bug #71269 (php-fpm dumped core).
  • Opcache:
  • Fixed bug #71584 (Possible use-after-free of ZCG(cwd) in Zend Opcache).
  • PCRE:
  • Fixed bug #71537 (PCRE segfault from Opcache).
  • phpdbg:
  • Fixed inherited functions from unspecified files being included in phpdbg_get_executable().
  • SOAP:
  • Fixed bug #71610 (Type Confusion Vulnerability - SOAP / make_http_soap_request()).
  • Standard:
  • Fixed bug #71603 (compact() maintains references in php7).
  • Fixed bug #70720 (strip_tags improper php code parsing).
  • XMLRPC:
  • Fixed bug #71501 (xmlrpc_encode_request ignores encoding option).
  • Zip:
  • Fixed bug #71561 (NULL pointer dereference in Zip::ExtractTo).

New in PHP 7.0.3 (Mar 3, 2016)

  • Core:
  • Added support for new HTTP 451 code.
  • Fixed bug #71039 (exec functions ignore length but look for NULL termination).
  • Fixed bug #71089 (No check to duplicate zend_extension).
  • Fixed bug #71201 (round() segfault on 64-bit builds).
  • Fixed bug #71221 (Null pointer deref (segfault) in get_defined_vars via ob_start).
  • Fixed bug #71248 (Wrong interface is enforced).
  • Fixed bug #71273 (A wrong ext directory setup in php.ini leads to crash).
  • Fixed bug #71275 (Bad method called on cloning an object having a trait).
  • Fixed bug #71297 (Memory leak with consecutive yield from).
  • Fixed bug #71300 (Segfault in zend_fetch_string_offset).
  • Fixed bug #71314 (var_export(INF) prints INF.0).
  • Fixed bug #71323 (Output of stream_get_meta_data can be falsified by its input).
  • Fixed bug #71336 (Wrong is_ref on properties as exposed via get_object_vars()).
  • Fixed bug #71459 (Integer overflow in iptcembed()).
  • Apache2handler:
  • Fix >2G Content-Length headers in apache2handler.
  • CURL:
  • Fixed bug #71227 (Can't compile php_curl statically).
  • Fixed bug #71225 (curl_setopt() fails to set CURLOPT_POSTFIELDS with reference to CURLFile).
  • GD:
  • Improved fix for bug #70976.
  • Interbase:
  • Fixed bug #71305 (Crash when optional resource is omitted).
  • LDAP:
  • Fixed bug #71249 (ldap_mod_replace/ldap_mod_add store value as string "Array").
  • mbstring:
  • Fixed bug #71397 (mb_send_mail segmentation fault).
  • OpenSSL:
  • Fixed bug #71475 (openssl_seal() uninitialized memory usage).
  • PCRE:
  • Upgraded bundled PCRE library to 8.38. (CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394)
  • Phar:
  • Fixed bug #71354 (Heap corruption in tar/zip/phar parser).
  • Fixed bug #71391 (NULL Pointer Dereference in phar_tar_setupmetadata()).
  • Fixed bug #71488 (Stack overflow when decompressing tar archives).
  • SOAP:
  • Fixed bug #70979 (crash with bad soap request).
  • SPL:
  • Fixed bug #71204 (segfault if clean spl_autoload_funcs while autoloading).
  • Fixed bug #71202 (Autoload function registered by another not activated immediately).
  • Fixed bug #71311 (Use-after-free vulnerability in SPL(ArrayObject, unserialize)).
  • Fixed bug #71313 (Use-after-free vulnerability in SPL(SplObjectStorage, unserialize)).
  • Standard:
  • Fixed bug #71287 (Error message contains hexadecimal instead of decimal number).
  • Fixed bug #71264 (file_put_contents() returns unexpected value when filesystem runs full).
  • Fixed bug #71245 (file_get_contents() ignores "header" context option if it's a reference).
  • Fixed bug #71220 (Null pointer deref (segfault) in compact via ob_start).
  • Fixed bug #71190 (substr_replace converts integers in original $search array to strings).
  • Fixed bug #71188 (str_replace converts integers in original $search array to strings).
  • Fixed bug #71132, #71197 (range() segfaults).
  • WDDX:
  • Fixed bug #71335 (Type Confusion in WDDX Packet Deserialization).

New in PHP 7.0.2 (Jan 7, 2016)

  • Core:
  • Fixed bug #71165 (-DGC_BENCH=1 doesn't work on PHP7).
  • Fixed bug #71163 (Segmentation Fault: cleanup_unfinished_calls).
  • Fixed bug #71109 (ZEND_MOD_CONFLICTS("xdebug") doesn't work).
  • Fixed bug #71092 (Segmentation fault with return type hinting).
  • Fixed bug memleak in header_register_callback.
  • Fixed bug #71067 (Local object in class method stays in memory for each call).
  • Fixed bug #66909 (configure fails utf8_to_mutf7 test).
  • Fixed bug #70781 (Extension tests fail on dynamic ext dependency).
  • Fixed bug #71089 (No check to duplicate zend_extension).
  • Fixed bug #71086 (Invalid numeric literal parse error within highlight_string() function).
  • Fixed bug #71154 (Incorrect HT iterator invalidation causes iterator reuse).
  • Fixed bug #52355 (Negating zero does not produce negative zero).
  • Fixed bug #66179 (var_export() exports float as integer).
  • Fixed bug #70804 (Unary add on negative zero produces positive zero).
  • CURL:
  • Fixed bug #71144 (Sementation fault when using cURL with ZTS).
  • DBA:
  • Fixed key leak with invalid resource.
  • Filter:
  • Fixed bug #71063 (filter_input(INPUT_ENV, ..) does not work).
  • FTP:
  • Implemented FR #55651 (Option to ignore the returned FTP PASV address).
  • FPM:
  • Fixed bug #70755 (fpm_log.c memory leak and buffer overflow).
  • GD:
  • Fixed bug #70976 (Memory Read via gdImageRotateInterpolated Array Index Out of Bounds).
  • Mbstring:
  • Fixed bug #71066 (mb_send_mail: Program terminated with signal SIGSEGV, Segmentation fault).
  • Opcache:
  • Fixed bug #71127 (Define in auto_prepend_file is overwrite).
  • PCRE:
  • Fixed bug #71178 (preg_replace with arrays creates [0] in replace array if not already set).
  • Readline:
  • Fixed bug #71094 (readline_completion_function corrupts static array on second TAB).
  • Session:
  • Fixed bug #71122 (Session GC may not remove obsolete session data).
  • SPL:
  • Fixed bug #71077 (ReflectionMethod for ArrayObject constructor returns wrong number of parameters).
  • Fixed bug #71153 (Performance Degradation in ArrayIterator with large arrays).
  • Standard:
  • Fixed bug #71270 (Heap BufferOver Flow in escapeshell functions).
  • WDDX:
  • Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization).
  • Fixed bug #70741 (Session WDDX Packet Deserialization Type Confusion Vulnerability).
  • XMLRPC:
  • Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker).

New in PHP 7.0.1 (Jan 7, 2016)

  • Core:
  • Fixed bug #71105 (Format String Vulnerability in Class Name Error Message). (CVE-2015-8617)
  • Fixed bug #70831 (Compile fails on system with 160 CPUs).
  • Fixed bug #71006 (symbol referencing errors on Sparc/Solaris).
  • Fixed bug #70997 (When using parentClass:: instead of parent::, static context changed).
  • Fixed bug #70970 (Segfault when combining error handler with output buffering).
  • Fixed bug #70967 (Weird error handling for __toString when Error is thrown).
  • Fixed bug #70958 (Invalid opcode while using ::class as trait method paramater default value).
  • Fixed bug #70944 (try{ } finally{} can create infinite chains of exceptions).
  • Fixed bug #70931 (Two errors messages are in conflict).
  • Fixed bug #70904 (yield from incorrectly marks valid generator as finished).
  • Fixed bug #70899 (buildconf failure in extensions).
  • Fixed bug #61751 (SAPI build problem on AIX: Undefined symbol: php_register_internal_extensions).
  • Fixed \int (or generally every scalar type name with leading backslash) to not be accepted as type name.
  • Fixed exception not being thrown immediately into a generator yielding from an array.
  • Fixed bug #70987 (static::class within Closure::call() causes segfault).
  • Fixed bug #71013 (Incorrect exception handler with yield from).
  • Fixed double free in error condition of format printer.
  • CLI server:
  • Fixed bug #71005 (Segfault in php_cli_server_dispatch_router()).
  • Intl:
  • Fixed bug #71020 (Use after free in Collator::sortWithSortKeys). (CVE-2015-8616)
  • Mysqlnd:
  • Fixed bug #68077 (LOAD DATA LOCAL INFILE / open_basedir restriction).
  • Fixed bug #68344 (MySQLi does not provide way to disable peer certificate validation) by introducing MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT connection flag.
  • OCI8:
  • Fixed LOB implementation size_t/zend_long mismatch reported by gcov.
  • Opcache:
  • Fixed bug #71024 (Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server).
  • Fixed bug #70991 (zend_file_cache.c:710: error: array type has incomplete element type).
  • Fixed bug #70977 (Segmentation fault with opcache.huge_code_pages=1).
  • PDO_Firebird:
  • Fixed bug #60052 (Integer returned as a 64bit integer on X64_86).
  • Phpdbg:
  • Fixed stderr being written to stdout.
  • Reflection:
  • Fixed bug #71018 (ReflectionProperty::setValue() behavior changed).
  • Fixed bug #70982 (setStaticPropertyValue behaviors inconsistently with 5.6).
  • Soap:
  • Fixed bug #70993 (Array key references break argument processing).
  • SPL:
  • Fixed bug #71028 (Undefined index with ArrayIterator).
  • SQLite3:
  • Fixed bug #71049 (SQLite3Stmt::execute() releases bound parameter instead of internal buffer).
  • Standard:
  • Fixed bug #70999 (php_random_bytes: called object is not a function).
  • Fixed bug #70960 (ReflectionFunction for array_unique returns wrong number of parameters).
  • Streams/Socket:
  • Add IPV6_V6ONLY constant / make it usable in stream contexts.

New in PHP 7.0.0 (Dec 3, 2015)

  • Core:
  • Fixed bug #70947 (INI parser segfault with INI_SCANNER_TYPED).
  • Fixed bug #70914 (zend_throw_or_error() format string vulnerability).
  • Fixed bug #70912 (Null ptr dereference instantiating class with invalid array property).
  • Fixed bug #70895, #70898 (null ptr deref and segfault with crafted calable).
  • Fixed bug #70249 (Segmentation fault while running PHPUnit tests on phpBB 3.2-dev).
  • Fixed bug #70805 (Segmentation faults whilst running Drupal 8 test suite).
  • Fixed bug #70842 (Persistent Stream Segmentation Fault).
  • Fixed bug #70862 (Several functions do not check return code of php_stream_copy_to_mem()).
  • Fixed bug #70863 (Incorect logic to increment_function for proxy objects).
  • Fixed bug #70323 (Regression in zend_fetch_debug_backtrace() can cause segfaults).
  • Fixed bug #70873 (Regression on private static properties access).
  • Fixed bug #70748 (Segfault in ini_lex () at Zend/zend_ini_scanner.l).
  • Fixed bug #70689 (Exception handler does not work as expected).
  • Fixed bug #70430 (Stack buffer overflow in zend_language_parser()).
  • Fixed bug #70782 (null ptr deref and segfault (zend_get_class_fetch_type)).
  • Fixed bug #70785 (Infinite loop due to exception during identical comparison).
  • Fixed bug #70630 (Closure::call/bind() crash with ReflectionFunction-> getClosure()).
  • Fixed bug #70662 (Duplicate array key via undefined index error handler).
  • Fixed bug #70681 (Segfault when binding $this of internal instance method to null).
  • Fixed bug #70685 (Segfault for getClosure() internal method rebind with invalid $this).
  • Added zend_internal_function.reserved[] fields.
  • Fixed bug #70557 (Memleak on return type verifying failed).
  • Fixed bug #70555 (fun_get_arg() on unsetted vars return UNKNOW).
  • Fixed bug #70548 (Redundant information printed in case of uncaught engine exception).
  • Fixed bug #70547 (unsetting function variables corrupts backtrace).
  • Fixed bug #70528 (assert() with instanceof adds apostrophes around class name).
  • Fixed bug #70481 (Memory leak in auto_global_copy_ctor() in ZTS build).
  • Fixed bug #70431 (Memory leak in php_ini.c).
  • Fixed bug #70478 (**= does no longer work).
  • Fixed bug #70398 (SIGSEGV, Segmentation fault zend_ast_destroy_ex).
  • Fixed bug #70332 (Wrong behavior while returning reference on object).
  • Fixed bug #70300 (Syntactical inconsistency with new group use syntax).
  • Fixed bug #70321 (Magic getter breaks reference to array property).
  • Fixed bug #70187 (Notice: unserialize(): Unexpected end of serialized data).
  • Fixed bug #70145 (From field incorrectly parsed from headers).
  • Fixed bug #70370 (Bundled libtool.m4 doesn't handle FreeBSD 10 when building extensions).
  • Fixed bug causing exception traces with anon classes to be truncated.
  • Fixed bug #70397 (Segmentation fault when using Closure::call and yield).
  • Fixed bug #70299 (Memleak while assigning object offsetGet result).
  • Fixed bug #70288 (Apache crash related to ZEND_SEND_REF).
  • Fixed bug #70262 (Accessing array crashes PHP 7.0beta3).
  • Fixed bug #70258 (Segfault if do_resize fails to allocated memory).
  • Fixed bug #70253 (segfault at _efree () in zend_alloc.c:1389).
  • Fixed bug #70240 (Segfault when doing unset($var());).
  • Fixed bug #70223 (Incrementing value returned by magic getter).
  • Fixed bug #70215 (Segfault when __invoke is static).
  • Fixed bug #70207 (Finally is broken with opcache).
  • Fixed bug #70173 (ZVAL_COPY_VALUE_EX broken for 32bit Solaris Sparc).
  • Fixed bug #69487 (SAPI may truncate POST data).
  • Fixed bug #70198 (Checking liveness does not work as expected).
  • Fixed bug #70241, #70293 (Skipped assertions affect Generator returns).
  • Fixed bug #70239 (Creating a huge array doesn't result in exhausted, but segfault).
  • Fixed "finally" issues.
  • Fixed bug #70098 (Real memory usage doesn't decrease).
  • Fixed bug #70159 (__CLASS__ is lost in closures).
  • Fixed bug #70156 (Segfault in zend_find_alias_name).
  • Fixed bug #70124 (null ptr deref / seg fault in ZEND_HANDLE_EXCEPTION).
  • Fixed bug #70117 (Unexpected return type error).
  • Fixed bug #70106 (Inheritance by anonymous class).
  • Fixed bug #69674 (SIGSEGV array.c:953).
  • Fixed bug #70164 (__COMPILER_HALT_OFFSET__ under namespace is not defined).
  • Fixed bug #70108 (sometimes empty $_SERVER['QUERY_STRING']).
  • Fixed bug #70179 ($this refcount issue).
  • Fixed bug #69896 ('asm' operand has impossible constraints).
  • Fixed bug #70183 (null pointer deref (segfault) in zend_eval_const_expr).
  • Fixed bug #70182 (Segfault in ZEND_ASSIGN_DIV_SPEC_CV_UNUSED_HANDLER).
  • Fixed bug #69793 (Remotely triggerable stack exhaustion via recursive method calls).
  • Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).
  • Fixed bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref).
  • Fixed bug #70089 (segfault at ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER ()).
  • Fixed bug #70057 (Build failure on 32-bit Mac OS X 10.6.8: recursive inlining).
  • Fixed bug #70012 (Exception lost with nested finally block).
  • Fixed bug #69996 (Changing the property of a cloned object affects the original).
  • Fixed bug #70083 (Use after free with assign by ref to overloaded objects).
  • Fixed bug #70006 (cli - function with default arg = STDOUT crash output).
  • Fixed bug #69521 (Segfault in gc_collect_cycles()).
  • Improved zend_string API.
  • Fixed bug #69955 (Segfault when trying to combine [] and assign-op on ArrayAccess object).
  • Fixed bug #69957 (Different ways of handling div/mod/intdiv).
  • Fixed bug #69900 (Too long timeout on pipes).
  • Fixed bug #69872 (uninitialised value in strtr with array).
  • Fixed bug #69868 (Invalid read of size 1 in zend_compile_short_circuiting).
  • Fixed bug #69849 (Broken output of apache_request_headers).
  • Fixed bug #69840 (iconv_substr() doesn't work with UTF-16BE).
  • Fixed bug #69823 (PHP 7.0.0alpha1 segmentation fault when exactly 33 extensions are loaded).
  • Fixed bug #69805 (null ptr deref and seg fault in zend_resolve_class_name).
  • Fixed bug #69802 (Reflection on Closure::__invoke borks type hint class name).
  • Fixed bug #69761 (Serialization of anonymous classes should be prevented).
  • Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation fault).
  • Fixed bug #69781 (phpinfo() reports Professional Editions of Windows 7/8/8.1/10 as "Business").
  • Fixed bug #69835 (phpinfo() does not report many Windows SKUs).
  • Fixed bug #69889 (Null coalesce operator doesn't work for string offsets).
  • Fixed bug #69891 (Unexpected array comparison result).
  • Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).
  • Fixed bug #69893 (Strict comparison between integer and empty string keys crashes).
  • Fixed bug #69767 (Default parameter value with wrong type segfaults).
  • Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency ? with ===).
  • Fixed bug #69758 (Item added to array not being removed by array_pop/shift ).
  • Fixed bug #68475 (Add support for $callable() sytnax with 'Class::method').
  • Fixed bug #69485 (Double free on zend_list_dtor).
  • Fixed bug #69427 (Segfault on magic method __call of private method in superclass).
  • Improved __call() and __callStatic() magic method handling. Now they are called in a stackless way using ZEND_CALL_TRAMPOLINE opcode, without additional stack frame.
  • Optimized strings concatenation.
  • Fixed weird operators behavior. Division by zero now emits warning and returns +/-INF, modulo by zero and intdid() throws an exception, shifts by negative offset throw exceptions. Compile-time evaluation of division by zero is disabled.
  • Fixed bug #69371 (Hash table collision leads to inaccessible array keys).
  • Fixed bug #68933 (Invalid read of size 8 in zend_std_read_property).
  • Fixed bug #68252 (segfault in Zend/zend_hash.c in function _zend_hash_del_el).
  • Fixed bug #65598 (Closure executed via static autoload incorrectly marked as static).
  • Fixed bug #66811 (Cannot access static::class in lambda, writen outside of a class).
  • Fixed bug #69568 (call a private function in closure failed).
  • Added PHP_INT_MIN constant.
  • Added Closure::call() method.
  • Fixed bug #67959 (Segfault when calling phpversion('spl')).
  • Implemented the RFC `Catchable "Call to a member function bar() on a non-object"`.
  • Added options parameter for unserialize allowing to specify acceptable classes (https://wiki.php.net/rfc/secure_unserialize).
  • Fixed bug #63734 (Garbage collector can free zvals that are still referenced).
  • Removed ZEND_ACC_FINAL_CLASS, promoting ZEND_ACC_FINAL as final class modifier.
  • is_long() & is_integer() is now an alias of is_int().
  • Implemented FR #55467 (phpinfo: PHP Variables with $ and single quotes).
  • Added ?? operator.
  • Added operator.
  • Added \u{xxxxx} Unicode Codepoint Escape Syntax.
  • Fixed oversight where define() did not support arrays yet const syntax did.
  • Use "integer" and "float" instead of "long" and "double" in ZPP, type hint and conversion error messages.
  • Implemented FR #55428 (E_RECOVERABLE_ERROR when output buffering in output buffering handler).
  • Removed scoped calls of non-static methods from an incompatible $this context.
  • Removed support for #-style comments in ini files.
  • Removed support for assigning the result of new by reference.
  • Invalid octal literals in source code now produce compile errors, fixes PHPSadness #31.
  • Removed dl() function on fpm-fcgi.
  • Removed support for hexadecimal numeric strings.
  • Removed obsolete extensions and SAPIs. See the full list in UPGRADING.
  • Added NULL byte protection to exec, system and passthru.
  • Added error_clear_last() function.
  • Fixed bug #68797 (Number 2.2250738585072012e-308 converted incorrectly).
  • Improved zend_qsort(using hybrid sorting algo) for better performance, and also renamed zend_qsort to zend_sort.
  • Added stable sorting algo zend_insert_sort.
  • Improved zend_memnchr(using sunday algo) for better performance.
  • Implemented the RFC `Scalar Type Decalarations v0.5`.
  • Implemented the RFC `Group Use Declarations`.
  • Implemented the RFC `Continue Output Buffering`.
  • Implemented the RFC `Constructor behaviour of internal classes`.
  • Implemented the RFC `Fix "foreach" behavior`.
  • Implemented the RFC `Generator Delegation`.
  • Implemented the RFC `Anonymous Class Support`.
  • Implemented the RFC `Context Sensitive Lexer`.
  • Fixed bug #69511 (Off-by-one buffer overflow in php_sys_readlink).
  • CLI server:
  • Fixed bug #68291 (404 on urls with '+').
  • Fixed bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE).
  • Fixed bug #70264 (CLI server directory traversal).
  • Fixed bug #69655 (php -S changes MKCALENDAR request method to MKCOL).
  • Fixed bug #64878 (304 responses return Content-Type header).
  • Refactor MIME type handling to use a hash table instead of linear search.
  • Update the MIME type list from the one shipped by Apache HTTPD.
  • Added support for SEARCH WebDav method.
  • COM:
  • Fixed bug #69939 (Casting object to bool returns false).
  • Curl:
  • Fixed bug #70330 (Segmentation Fault with multiple "curl_copy_handle").
  • Fixed bug #70163 (curl_setopt_array() type confusion).
  • Fixed bug #70065 (curl_getinfo() returns corrupted values).
  • Fixed bug #69831 (Segmentation fault in curl_getinfo).
  • Fixed bug #68937 (Segfault in curl_multi_exec).
  • Removed support for unsafe file uploads.
  • Date:
  • Fixed bug #70245 (strtotime does not emit warning when 2nd parameter is object or string).
  • Fixed bug #70266 (DateInterval::__construct.interval_spec is not supposed to be optional).
  • Fixed bug #70277 (new DateTimeZone($foo) is ignoring text after null byte).
  • Fixed day_of_week function as it could sometimes return negative values internally.
  • Removed $is_dst parameter from mktime() and gmmktime().
  • Removed date.timezone warning (https://wiki.php.net/rfc/date.timezone_warning_removal).
  • Added "v" DateTime format modifier to get the 3-digit version of fraction of seconds.
  • Implemented FR #69089 (Added DateTime::RFC3339_EXTENDED to output in RFC3339 Extended format which includes fraction of seconds).
  • DBA:
  • Fixed bug #62490 (dba_delete returns true on missing item (inifile)).
  • Fixed bug #68711 (useless comparisons).
  • DOM:
  • Fixed bug #70558 ("Couldn't fetch" error in DOMDocument::registerNodeClass()).
  • Fixed bug #70001 (Assigning to DOMNode::textContent does additional entity encoding).
  • Fixed bug #69846 (Segmenation fault (access violation) when iterating over DOMNodeList).
  • Made DOMNode::textContent writeable.
  • EXIF:
  • Fixed bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytes).
  • Fileinfo:
  • Fixed bug #66242 (libmagic: don't assume char is signed).
  • Filter:
  • New FILTER_VALIDATE_DOMAIN and better RFC conformance for FILTER_VALIDATE_URL.
  • FPM:
  • Fixed bug #70538 ("php-fpm -i" crashes).
  • Fixed bug #70279 (HTTP Authorization Header is sometimes passed to newer reqeusts).
  • Fixed bug #68945 (Unknown admin values segfault pools).
  • Fixed bug #65933 (Cannot specify config lines longer than 1024 bytes).
  • Implemented FR #67106 (Split main fpm config).
  • FTP:
  • Fixed bug #69082 (FTPS support on Windows).
  • GD:
  • Fixed bug #53156 (imagerectangle problem with point ordering).
  • Fixed bug #66387 (Stack overflow with imagefilltoborder).
  • Fixed bug #70102 (imagecreatefromwebm() shifts colors).
  • Fixed bug #66590 (imagewebp() doesn't pad to even length).
  • Fixed bug #66882 (imagerotate by -90 degrees truncates image by 1px).
  • Fixed bug #70064 (imagescale(..., IMG_BICUBIC) leaks memory).
  • Fixed bug #69024 (imagescale segfault with palette based image).
  • Fixed bug #53154 (Zero-height rectangle has whiskers).
  • Fixed bug #67447 (imagecrop() add a black line when cropping).
  • Fixed bug #68714 (copy 'n paste error).
  • Fixed bug #66339 (PHP segfaults in imagexbm).
  • Fixed bug #70047 (gd_info() doesn't report WebP support).
  • Replace libvpx with libwebp for bundled libgd.
  • Fixed bug #61221 (imagegammacorrect function loses alpha channel).
  • Made fontFetch's path parser thread-safe.
  • Removed T1Lib support.
  • GMP:
  • Fixed bug #70284 (Use after free vulnerability in unserialize() with GMP).
  • hash:
  • Fixed bug #70312 (HAVAL gives wrong hashes in specific cases).
  • IMAP:
  • Fixed bug #70158 (Building with static imap fails).
  • Fixed bug #69998 (curl multi leaking memory).
  • Intl:
  • Fixed bug #70453 (IntlChar::foldCase() incorrect arguments and missing constants).
  • Fixed bug #70454 (IntlChar::forDigit second parameter should be optional).
  • Removed deprecated aliases datefmt_set_timezone_id() and IntlDateFormatter::setTimeZoneID().
  • JSON:
  • Fixed bug #62010 (json_decode produces invalid byte-sequences).
  • Fixed bug #68546 (json_decode() Fatal error: Cannot access property started with '\0').
  • Replace non-free JSON parser with a parser from Jsond extension, fixes #63520 (JSON extension includes a problematic license statement).
  • Fixed bug #68938 (json_decode() decodes empty string without error).
  • LDAP:
  • Fixed bug #47222 (Implement LDAP_OPT_DIAGNOSTIC_MESSAGE).
  • LiteSpeed:
  • Updated LiteSpeed SAPI code from V5.5 to V6.6.
  • libxml:
  • Fixed handling of big lines in error messages with libxml >= 2.9.0.
  • Mcrypt:
  • Fixed bug #70625 (mcrypt_encrypt() won't return data when no IV was specified under RC4).
  • Fixed bug #69833 (mcrypt fd caching not working).
  • Fixed possible read after end of buffer and use after free.
  • Removed mcrypt_generic_end() alias.
  • Removed mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ofb().
  • Mysqli:
  • Fixed bug #32490 (constructor of mysqli has wrong name).
  • Mysqlnd:
  • Fixed bug #70949 (SQL Result Sets With NULL Can Cause Fatal Memory Errors).
  • Fixed bug #70384 (mysqli_real_query():Unknown type 245 sent by the server).
  • Fixed bug #70456 (mysqlnd doesn't activate TCP keep-alive when connecting to a server).
  • Fixed bug #70572 segfault in mysqlnd_connect.
  • Fixed bug #69796 (mysqli_stmt::fetch doesn't assign null values to bound variables).
  • OCI8:
  • Fixed memory leak with LOBs.
  • Fixed bug #68298 (OCI int overflow).
  • Corrected oci8 hash destructors to prevent segfaults, and a few other fixes.
  • ODBC:
  • Fixed bug #69975 (PHP segfaults when accessing nvarchar(max) defined columns).
  • Opcache:
  • Fixed bug #70656 (require() statement broken after opcache_reset() or a few hours of use).
  • Fixed bug #70843 (Segmentation fault on MacOSX with opcache.file_cache_only=1).
  • Fixed bug #70724 (Undefined Symbols from opcache.so on Mac OS X 10.10).
  • Fixed compatibility with Windows 10 (see also bug #70652).
  • Attmpt to fix "Unable to reattach to base address" problem.
  • Fixed bug #70423 (Warning Internal error: wrong size calculation).
  • Fixed bug #70237 (Empty while and do-while segmentation fault with opcode on CLI enabled).
  • Fixed bug #70111 (Segfault when a function uses both an explicit return type and an explicit cast).
  • Fixed bug #70058 (Build fails when building for i386).
  • Fixed bug #70022 (Crash with opcache using opcache.file_cache_only=1).
  • Removed opcache.load_comments configuration directive. Now doc comments loading costs nothing and always enabled.
  • Fixed bug #69838 (Wrong size calculation for function table).
  • Fixed bug #69688 (segfault with eval and opcache fast shutdown).
  • Added experimental (disabled by default) file based opcode cache.
  • Fixed bug with try blocks being removed when extended_info opcode generation is turned on.
  • Fixed bug #68644 (strlen incorrect : mbstring + func_overload=2 +UTF-8 + Opcache).
  • OpenSSL:
  • Require at least OpenSSL version 0.9.8.
  • Fixed bug #68312 (Lookup for openssl.cnf causes a message box).
  • Fixed bug #55259 (openssl extension does not get the DH parameters from DH key resource).
  • Fixed bug #70395 (Missing ARG_INFO for openssl_seal()).
  • Fixed bug #60632 (openssl_seal fails with AES).
  • Implemented FR #70438 (Add IV parameter for openssl_seal and openssl_open).
  • Fixed bug #70014 (openssl_random_pseudo_bytes() is not cryptographically secure).
  • Fixed bug #69882 (OpenSSL error "key values mismatch" after openssl_pkcs12_read with extra cert).
  • Added "alpn_protocols" SSL context option allowing encrypted client/server streams to negotiate alternative protocols using the ALPN TLS extension when built against OpenSSL 1.0.2 or newer. Negotiated protocol information is accessible through stream_get_meta_data() output.
  • Removed "CN_match" and "SNI_server_name" SSL context options. Use automatic detection or the "peer_name" option instead.
  • Pcntl:
  • Fixed bug #70386 (Can't compile on NetBSD because of missing WCONTINUED and WIFCONTINUED).
  • Fixed bug #60509 (pcntl_signal doesn't decrease ref-count of old handler when setting SIG_DFL).
  • Implemented FR #68505 (Added wifcontinued and wcontinued).
  • Added rusage support to pcntl_wait() and pcntl_waitpid().
  • PCRE:
  • Fixed bug #70232 (Incorrect bump-along behavior with \K and empty string match).
  • Fixed bug #70345 (Multiple vulnerabilities related to PCRE functions).
  • Fixed bug #70232 (Incorrect bump-along behavior with \K and empty string match).
  • Fixed bug #53823 (preg_replace: * qualifier on unicode replace garbles the string).
  • Fixed bug #69864 (Segfault in preg_replace_callback).
  • PDO:
  • Fixed bug #70861 (Segmentation fault in pdo_parse_params() during Drupal 8 test suite).
  • Fixed bug #70389 (PDO constructor changes unrelated variables).
  • Fixed bug #70272 (Segfault in pdo_mysql).
  • Fixed bug #70221 (persistent sqlite connection + custom function segfaults).
  • Removed support for the /e (PREG_REPLACE_EVAL) modifier.
  • Fixed bug #59450 (./configure fails with "Cannot find php_pdo_driver.h").
  • PDO_DBlib:
  • Fixed bug #69757 (Segmentation fault on nextRowset).
  • PDO_mysql:
  • Fixed bug #68424 (Add new PDO mysql connection attr to control multi statements option).
  • PDO_OCI:
  • Fixed bug #70308 (PDO::ATTR_PREFETCH is ignored).
  • PDO_pgsql:
  • Fixed bug #69752 (PDOStatement::execute() leaks memory with DML Statements when closeCuror() is u).
  • Removed PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute in favor of ATTR_EMULATE_PREPARES).
  • Phar:
  • Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()).
  • Fixed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip entry filename is "/").
  • Improved fix for bug #69441.
  • Fixed bug #70019 (Files extracted from archive may be placed outside of destination directory).
  • Phpdbg:
  • Fixed bug #70614 (incorrect exit code in -rr mode with Exceptions).
  • Fixed bug #70532 (phpdbg must respect set_exception_handler).
  • Fixed bug #70531 (Run and quit mode (-qrr) should not fallback to interactive mode).
  • Fixed bug #70533 (Help overview (-h) does not rpint anything under Windows).
  • Fixed bug #70449 (PHP won't compile on 10.4 and 10.5 because of missing constants).
  • Fixed bug #70214 (FASYNC not defined, needs sys/file.h include).
  • Fixed bug #70138 (Segfault when displaying memory leaks).
  • Reflection:
  • Fixed bug #70650 (Wrong docblock assignment).
  • Fixed bug #70674 (ReflectionFunction::getClosure() leaks memory when used for internal functions).
  • Fixed bug causing bogus traces for ReflectionGenerator::getTrace().
  • Fixed inheritance chain of Reflector interface.
  • Added ReflectionGenerator class.
  • Added reflection support for return types and type declarations.
  • Session:
  • Fixed bug #70876 (Segmentation fault when regenerating session id with strict mode).
  • Fixed bug #70529 (Session read causes "String is not zero-terminated" error).
  • Fixed bug #70013 (Reference to $_SESSION is lost after a call to session_regenerate_id()).
  • Fixed bug #69952 (Data integrity issues accessing superglobals by reference).
  • Fixed bug #67694 (Regression in session_regenerate_id()).
  • Fixed bug #68941 (mod_files.sh is a bash-script).
  • SOAP:
  • Fixed bug #70940 (Segfault in soap / type_to_string).
  • Fixed bug #70900 (SoapClient systematic out of memory error).
  • Fixed bug #70875 (Segmentation fault if wsdl has no targetNamespace attribute).
  • Fixed bug #70715 (Segmentation fault inside soap client).
  • Fixed bug #70709 (SOAP Client generates Segfault).
  • Fixed bug #70388 (SOAP serialize_function_call() type confusion / RCE).
  • Fixed bug #70081 (SoapClient info leak / null pointer dereference via multiple type confusions).
  • Fixed bug #70079 (Segmentation fault after more than 100 SoapClient calls).
  • Fixed bug #70032 (make_http_soap_request calls zend_hash_get_current_key_ex(,,,NULL).
  • Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes).
  • SPL:
  • Fixed bug #70959 (ArrayObject unserialize does not restore protected fields).
  • Fixed bug #70853 (SplFixedArray throws exception when using ref variable as index).
  • Fixed bug #70868 (PCRE JIT and pattern reuse segfault).
  • Fixed bug #70730 (Incorrect ArrayObject serialization if unset is called in serialize()).
  • Fixed bug #70573 (Cloning SplPriorityQueue leads to memory leaks).
  • Fixed bug #70303 (Incorrect constructor reflection for ArrayObject).
  • Fixed bug #70068 (Dangling pointer in the unserialization of ArrayObject items).
  • Fixed bug #70166 (Use After Free Vulnerability in unserialize() with SPLArrayObject).
  • Fixed bug #70168 (Use After Free Vulnerability in unserialize() with SplObjectStorage).
  • Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList).
  • Fixed bug #70053 (MutlitpleIterator array-keys incompatible change in PHP 7).
  • Fixed bug #69970 (Use-after-free vulnerability in spl_recursive_it_move_forward_ex()).
  • Fixed bug #69845 (ArrayObject with ARRAY_AS_PROPS broken).
  • Changed ArrayIterator implementation using zend_hash_iterator_... API. Allowed modification of iterated ArrayObject using the same behavior as proposed in `Fix "foreach" behavior`. Removed "Array was modified outside object and internal position is no longer valid" hack.
  • Implemented FR #67886 (SplPriorityQueue/SplHeap doesn't expose extractFlags nor curruption state).
  • Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME breaks the RecursiveIterator).
  • SQLite3:
  • Fixed bug #70571 (Memory leak in sqlite3_do_callback).
  • Fixed bug #69972 (Use-after-free vulnerability in sqlite3SafetyCheckSickOrOk()).
  • Fixed bug #69897 (segfault when manually constructing SQLite3Result).
  • Fixed bug #68260 (SQLite3Result::fetchArray declares wrong required_num_args).
  • Standard:
  • Fixed count on symbol tables.
  • Fixed bug #70963 (Unserialize shows UNKNOWN in result).
  • Fixed bug #70910 (extract() breaks variable references).
  • Fixed bug #70808 (array_merge_recursive corrupts memory of unset items).
  • Fixed bug #70667 (strtr() causes invalid writes and a crashes).
  • Fixed bug #70668 (array_keys() doesn't respect references when $strict is true).
  • Implemented the RFC `Random Functions Throwing Exceptions in PHP 7`.
  • Fixed bug #70487 (pack('x') produces an error).
  • Fixed bug #70342 (changing configuration with ignore_user_abort(true) isn't working).
  • Fixed bug #70295 (Segmentation fault with setrawcookie).
  • Fixed bug #67131 (setcookie() conditional for empty values not met).
  • Fixed bug #70365 (Use-after-free vulnerability in unserialize() with SplObjectStorage).
  • Fixed bug #70366 (Use-after-free vulnerability in unserialize() with SplDoublyLinkedList).
  • Fixed bug #70250 (extract() turns array elements to references).
  • Fixed bug #70211 (php 7 ZEND_HASH_IF_FULL_DO_RESIZE use after free).
  • Fixed bug #70208 (Assert breaking access on objects).
  • Fixed bug #70140 (str_ireplace/php_string_tolower - Arbitrary Code Execution).
  • Implemented FR #70112 (Allow "dirname" to go up various times).
  • Fixed bug #36365 (scandir duplicates file name at every 65535th file).
  • Fixed bug #70096 (Repeated iptcembed() adds superfluous FF bytes).
  • Fixed bug #70018 (exec does not strip all whitespace).
  • Fixed bug #69983 (get_browser fails with user agent of null).
  • Fixed bug #69976 (Unable to parse "all" urls with colon char).
  • Fixed bug #69768 (escapeshell*() doesn't cater to !).
  • Fixed bug #62922 (Truncating entire string should result in string).
  • Fixed bug #69723 (Passing parameters by reference and array_column).
  • Fixed bug #69523 (Cookie name cannot be empty).
  • Fixed bug #69325 (php_copy_file_ex does not pass the argument).
  • Fixed bug #69299 (Regression in array_filter's $flag argument in PHP 7).
  • Removed call_user_method() and call_user_method_array() functions.
  • Fixed user session handlers (See rfc:session.user.return-value).
  • Added intdiv() function.
  • Improved precision of log() function for base 2 and 10.
  • Remove string category support in setlocale().
  • Remove set_magic_quotes_runtime() and its alias magic_quotes_runtime().
  • Fixed bug #65272 (flock() out parameter not set correctly in windows).
  • Added preg_replace_callback_array function.
  • Deprecated salt option to password_hash.
  • Fixed bug #69686 (password_verify reports back error on PHP7 will null string).
  • Added Windows support for getrusage().
  • Removed hardcoded limit on number of pipes in proc_open().
  • Streams:
  • Fixed bug #70361 (HTTP stream wrapper doesn't close keep-alive connections).
  • Fixed bug #68532 (convert.base64-encode omits padding bytes).
  • Removed set_socket_blocking() in favor of its alias stream_set_blocking().
  • Tokenizer:
  • Fixed bug #69430 (token_get_all has new irrecoverable errors).
  • XMLReader:
  • Fixed bug #70309 (XmlReader read generates extra output).
  • XMLRPC:
  • Fixed bug #70526 (xmlrpc_set_type returns false on success).
  • XSL:
  • Fixed bug #70678 (PHP7 returns true when false is expected).
  • Fixed bug #70535 (XSLT: free(): invalid pointer).
  • Fixed bug #69782 (NULL pointer dereference).
  • Fixed bug #64776 (The XSLT extension is not thread safe).
  • Removed xsl.security_prefs ini option.
  • Zlib:
  • Added deflate_init(), deflate_add(), inflate_init(), inflate_add() functions allowing incremental/streaming compression/decompression.
  • Zip:
  • Fixed bug #70322 (ZipArchive::close() doesn't indicate errors).
  • Fixed bug #70350 (ZipArchive::extractTo allows for directory traversal when creating directories).
  • Added ZipArchive::setCompressionName and ZipArchive::setCompressionIndex methods.
  • Update bundled libzip to 1.0.1.
  • Fixed bug #67161 (ZipArchive::getStream() returns NULL for certain file).

New in PHP 5.6.16 (Nov 27, 2015)

  • Core:
  • Fixed bug #70828 (php-fpm 5.6 with opcache crashes when referencing a non-existent constant).
  • Fixed bug #70748 (Segfault in ini_lex () at Zend/zend_ini_scanner.l).
  • Mysqlnd:
  • Fixed bug #68344 (MySQLi does not provide way to disable peer certificate validation) by introducing MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT connection flag.
  • OCI8:
  • Fixed bug #68298 (OCI int overflow).
  • PDO_DBlib:
  • Fixed bug #69757 (Segmentation fault on nextRowset).
  • SOAP:
  • Fixed bug #70875 (Segmentation fault if wsdl has no targetNamespace attribute).
  • SPL:
  • Fixed bug #70852 (Segfault getting NULL offset of an ArrayObject).

New in PHP 7.0.0 RC 8 (Nov 26, 2015)

  • Improved performance: PHP 7 is up to twice as fast as PHP 5.6
  • Consistent 64-bit support
  • Many fatal errors are now Exceptions
  • Removal of old and unsupported SAPIs and extensions
  • The null coalescing operator (??)
  • Combined comparison Operator ()
  • Return Type Declarations
  • Scalar Type Declarations
  • Anonymous Classes

New in PHP 7.0.0 RC 7 (Nov 12, 2015)

  • PHP 7.0.0 RC 7 contains fixes for 17 reported bugs
  • PHP 7.0.0 comes with new version of the Zend Engine with features such as (incomplete list):
  • Improved performance: PHP 7 is up to twice as fast as PHP 5.6
  • Consistent 64-bit support
  • Many fatal errors are now Exceptions
  • Removal of old and unsupported SAPIs and extensions
  • The null coalescing operator (??)
  • Combined comparison Operator ()
  • Return Type Declarations
  • Scalar Type Declarations
  • Anonymous Classes

New in PHP 5.6.15 (Oct 30, 2015)

  • Core:
  • Fixed bug #70681 (Segfault when binding $this of internal instance method to null).
  • Fixed bug #70685 (Segfault for getClosure() internal method rebind with invalid $this).
  • Date:
  • Fixed bug #70619 (DateTimeImmutable segfault).
  • Mcrypt:
  • Fixed bug #70625 (mcrypt_encrypt() won't return data when no IV was specified under RC4).
  • Mysqlnd:
  • Fixed bug #70384 (mysqli_real_query():Unknown type 245 sent by the server).
  • Fixed bug #70572 segfault in mysqlnd_connect.
  • Opcache:
  • Fixed bug #70632 (Third one of segfault in gc_remove_from_buffer).
  • Fixed bug #70631 (Another Segfault in gc_remove_from_buffer()).
  • Fixed bug #70601 (Segfault in gc_remove_from_buffer()).
  • Fixed compatibility with Windows 10 (see also #70652).

New in PHP 7.0.0 RC 6 (Oct 30, 2015)

  • Core:
  • Fixed bug #70748 (Segfault in ini_lex () at Zend/zend_ini_scanner.l).
  • Fixed bug #70689 (Exception handler does not work as expected).
  • Fixed bug #70430 (Stack buffer overflow in zend_language_parser()).
  • Fixed bug #70782 (null ptr deref and segfault (zend_get_class_fetch_type)).
  • Fixed bug #70785 (Infinite loop due to exception during identical
  • comparison).
  • PDO_DBlib:
  • Fixed bug #69757 (Segmentation fault on nextRowset).
  • SOAP:
  • Fixed bug #70715 (Segmentation fault inside soap client).
  • Fixed bug #70709 (SOAP Client generates Segfault).
  • SPL:
  • Fixed bug #70730 (Incorrect ArrayObject serialization if unset is called
  • in serialize()).

New in PHP 7.0.0 RC 5 (Oct 19, 2015)

  • Core:
  • Fixed bug #70630 (Closure::call/bind() crash with ReflectionFunction-> getClosure()).
  • Fixed bug #70662 (Duplicate array key via undefined index error handler).
  • Fixed bug #70681 (Segfault when binding $this of internal instance method to null).
  • Fixed bug #70685 (Segfault for getClosure() internal method rebind with invalid $this).
  • Mcrypt:
  • Fixed bug #70625 (mcrypt_encrypt() won't return data when no IV was
  • specified under RC4).
  • Opcache:
  • Fixed compatibility with Windows 10 (see also bug #70652).
  • Phpdbg:
  • Fixed bug #70614 (incorrect exit code in -rr mode with Exceptions).
  • Reflection:
  • Fixed bug #70650 (Wrong docblock assignment).
  • Fixed bug #70674 (ReflectionFunction::getClosure() leaks memory when used for internal functions).
  • Standard:
  • Fixed bug #70667 (strtr() causes invalid writes and a crashes).
  • Fixed bug #70668 (array_keys() doesn't respect references when $strict is
  • true).

New in PHP 5.6.14 (Oct 2, 2015)

  • Core:
  • Fixed bug #70370 (Bundled libtool.m4 doesn't handle FreeBSD 10 when building extensions).
  • CLI server:
  • Fixed bug #68291 (404 on urls with '+').
  • DOM:
  • Fixed bug #70001 (Assigning to DOMNode::textContent does additional entity encoding).
  • Mysqlnd:
  • Fixed bug #70456 (mysqlnd doesn't activate TCP keep-alive when connecting to a server).
  • OpenSSL:
  • Fixed bug #55259 (openssl extension does not get the DH parameters from DH key resource).
  • Fixed bug #70395 (Missing ARG_INFO for openssl_seal()).
  • Fixed bug #60632 (openssl_seal fails with AES).
  • Fixed bug #68312 (Lookup for openssl.cnf causes a message box).
  • PDO:
  • Fixed bug #70389 (PDO constructor changes unrelated variables).
  • Phar:
  • Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()).
  • Fixed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip entry filename is "/").
  • Phpdbg:
  • Fix phpdbg_break_next() sometimes not breaking.
  • Standard:
  • Fixed bug #67131 (setcookie() conditional for empty values not met).
  • Streams:
  • Fixed bug #70361 (HTTP stream wrapper doesn't close keep-alive connections).
  • Zip:
  • Fixed bug #70322 (ZipArchive::close() doesn't indicate errors).

New in PHP 7.0.0 RC 4 (Oct 1, 2015)

  • Core:
  • Added zend_internal_function.reserved[] fields.
  • Fixed bug #70557 (Memleak on return type verifying failed).
  • Fixed bug #70555 (fun_get_arg() on unsetted vars return UNKNOW).
  • Fixed bug #70548 (Redundant information printed in case of uncaught engine exception).
  • Fixed bug #70547 (unsetting function variables corrupts backtrace)
  • Fixed bug #70528 (assert() with instanceof adds apostrophes around class name).
  • Fixed bug #70481 (Memory leak in auto_global_copy_ctor() in ZTS build).
  • DOM:
  • Fixed bug #70558 ("Couldn't fetch" error in DOMDocument::registerNodeClass()).
  • FPM:
  • Fixed bug #70538 ("php-fpm -i" crashes).
  • Fixed bug #70279 (HTTP Authorization Header is sometimes passed to newer requests).
  • Opcache:
  • Attmpt to fix "Unable to reattach to base address" problem.
  • OpenSSL:
  • Require at least OpenSSL version 0.9.8.
  • Fixed bug #68312 (Lookup for openssl.cnf causes a message box).
  • Phar:
  • Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()).
  • FIxed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip entry filename is "/").
  • Phpdbg:
  • Fixed bug #70532 (phpdbg must respect set_exception_handler). (Bob)
  • Fixed bug #70531 (Run and quit mode (-qrr) should not fallback to interactive mode).
  • Fixed bug #70533 (Help overview (-h) does not rpint anything under Windows).
  • Session:
  • Fixed bug #70529 (Session read causes "String is not zero-terminated" error).
  • SQLite3:
  • Fixed bug #70571 (Memory leak in sqlite3_do_callback).
  • SPL:
  • Fixed bug #70573 (Cloning SplPriorityQueue leads to memory leaks).
  • XMLRPC:
  • Fixed bug #70526 (xmlrpc_set_type returns false on success).
  • XSL:
  • Fixed bug #70535 (XSLT: free(): invalid pointer).

New in PHP 7.0.0 RC 3 (Sep 17, 2015)

  • Core:
  • Fixed bug #70431 (Memory leak in php_ini.c).
  • Fixed bug #70478 (**= does no longer work).
  • CLI server:
  • Fixed bug #68291 (404 on urls with '+').
  • DOM:
  • Fixed bug #70001 (Assigning to DOMNode::textContent does additional entity encoding).
  • Intl:
  • Fixed bug #70453 (IntlChar::foldCase() incorrect arguments and missing
  • constants).
  • Fixed bug #70454 (IntlChar::forDigit second parameter should be optional).
  • Mysqlnd:
  • Fixed bug #70384 (mysqli_real_query():Unknown type 245 sent by the server).
  • Fixed bug #70456 (mysqlnd doesn't activate TCP keep-alive when connecting to a server).
  • Fixed bug #70572 segfault in mysqlnd_connect.
  • Opcache:
  • Fixed bug #70423 (Warning Internal error: wrong size calculation).
  • OpenSSL:
  • Fixed bug #55259 (openssl extension does not get the DH parameters from
  • DH key resource).
  • Fixed bug #70395 (Missing ARG_INFO for openssl_seal()).
  • Fixed bug #60632 (openssl_seal fails with AES).
  • Implemented FR #70438 (Add IV parameter for openssl_seal and openssl_open)
  • Phpdbg:
  • Fixed bug #70449 (PHP won't compile on 10.4 and 10.5 because of missing
  • constants).
  • Session:
  • Fixed bug #70013 (Reference to $_SESSION is lost after a call to
  • session_regenerate_id()).
  • Standard:
  • Implemented the RFC `Random Functions Throwing Exceptions in PHP 7`.
  • Fixed bug #70487 (pack('x') produces an error).
  • Streams:
  • Fixed bug #70361 (HTTP stream wrapper doesn't close keep-alive connections).
  • XMLReader:
  • Fixed bug #70309 (XmlReader read generates extra output).
  • Zip:
  • Fixed bug #70322 (ZipArchive::close() doesn't indicate errors).

New in PHP 5.6.13 (Sep 4, 2015)

  • Core:
  • Fixed bug #69900 (Too long timeout on pipes).
  • Fixed bug #69487 (SAPI may truncate POST data).
  • Fixed bug #70198 (Checking liveness does not work as expected).
  • Fixed bug #70172 (Use After Free Vulnerability in unserialize()).
  • Fixed bug #70219 (Use after free vulnerability in session deserializer).
  • CLI server:
  • Fixed bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE).
  • Fixed bug #70264 (CLI server directory traversal).
  • Date:
  • Fixed bug #70266 (DateInterval::__construct.interval_spec is not supposed to be optional).
  • Fixed bug #70277 (new DateTimeZone($foo) is ignoring text after null byte).
  • EXIF:
  • Fixed bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytes).
  • hash:
  • Fixed bug #70312 (HAVAL gives wrong hashes in specific cases).
  • MCrypt:
  • Fixed bug #69833 (mcrypt fd caching not working).
  • Opcache:
  • Fixed bug #70237 (Empty while and do-while segmentation fault with opcode on CLI enabled).
  • PCRE:
  • Fixed bug #70232 (Incorrect bump-along behavior with \K and empty string match).
  • Fixed bug #70345 (Multiple vulnerabilities related to PCRE functions).
  • SOAP:
  • Fixed bug #70388 (SOAP serialize_function_call() type confusion / RCE).
  • SPL:
  • Fixed bug #70290 (Null pointer deref (segfault) in spl_autoload via ob_start).
  • Fixed bug #70303 (Incorrect constructor reflection for ArrayObject).
  • Fixed bug #70365 (Use-after-free vulnerability in unserialize() with SplObjectStorage).
  • Fixed bug #70366 (Use-after-free vulnerability in unserialize() with SplDoublyLinkedList).
  • Standard:
  • Fixed bug #70052 (getimagesize() fails for very large and very small WBMP).
  • Fixed bug #70157 (parse_ini_string() segmentation fault with INI_SCANNER_TYPED).
  • XSLT:
  • Fixed bug #69782 (NULL pointer dereference).
  • ZIP:
  • Fixed bug #70350 (ZipArchive::extractTo allows for directory traversal when creating directories).

New in PHP 7.0.0 RC 1 (Aug 21, 2015)

  • Core:
  • Fixed bug #70288 (Apache crash related to ZEND_SEND_REF).
  • Fixed bug #70262 (Accessing array crashes PHP 7.0beta3).
  • Fixed bug #70258 (Segfault if do_resize fails to allocated memory).
  • Fixed bug #70253 (segfault at _efree () in zend_alloc.c:1389).
  • Fixed bug #70240 (Segfault when doing unset($var());).
  • Fixed bug #70223 (Incrementing value returned by magic getter).
  • Fixed bug #70215 (Segfault when __invoke is static).
  • Fixed bug #70207 (Finally is broken with opcache).
  • Fixed bug #70173 (ZVAL_COPY_VALUE_EX broken for 32bit Solaris Sparc).
  • Fixed bug #69487 (SAPI may truncate POST data).
  • Fixed bug #70198 (Checking liveness does not work as expected).
  • Fixed bug #70241/#70293 (Skipped assertions affect Generator returns).
  • Fixed bug #70239 (Creating a huge array doesn't result in exhausted,
  • but segfault).
  • CLI server:
  • Fixed bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE).
  • Fixed bug #70264 (CLI server directory traversal).
  • Date:
  • Fixed bug #70245 (strtotime does not emit warning when 2nd parameter is
  • object or string).
  • Fixed bug #70266 (DateInterval::__construct.interval_spec is not supposed to
  • be optional).
  • Fixed bug #70277 (new DateTimeZone($foo) is ignoring text after null byte).
  • MCrypt:
  • Fixed bug #69833 (mcrypt fd caching not working).
  • Opcache:
  • Fixed bug #70237 (Empty while and do-while segmentation fault with opcode
  • on CLI enabled).
  • PCRE:
  • Fixed bug #70232 (Incorrect bump-along behavior with \K and empty string
  • match).
  • PDO:
  • Fixed bug #70272 (Segfault in pdo_mysql).
  • Fixed bug #70221 (persistent sqlite connection + custom function
  • segfaults).
  • Phpdbg:
  • Fixed bug #70214 (FASYNC not defined, needs sys/file.h include).
  • Standard:
  • Fixed bug #70250 (extract() turns array elements to references).
  • Fixed bug #70211 (php 7 ZEND_HASH_IF_FULL_DO_RESIZE use after free).
  • Fixed bug #70208 (Assert breaking access on objects).

New in PHP 7.0.0 Beta 3 (Aug 7, 2015)

  • Core:
  • Fixed "finally" issues.
  • Fixed bug #70098 (Real memory usage doesn't decrease).
  • Fixed bug #70159 (__CLASS__ is lost in closures).
  • Fixed bug #70156 (Segfault in zend_find_alias_name)
  • Fixed bug #70124 (null ptr deref / seg fault in ZEND_HANDLE_EXCEPTION).
  • Fixed bug #70117 (Unexpected return type error).
  • Fixed bug #70106 (Inheritance by anonymous class).
  • Fixed bug #69674 (SIGSEGV array.c:953).
  • Fixed bug #70164 (__COMPILER_HALT_OFFSET__ under namespace is not defined).
  • Fixed bug #70108 (sometimes empty $_SERVER['QUERY_STRING']).
  • Fixed bug #70179 ($this refcount issue).
  • Fixed bug #69896 ('asm' operand has impossible constraints).
  • Fixed bug #70183 (null pointer deref (segfault) in zend_eval_const_expr).
  • Fixed bug #70182 (Segfault in ZEND_ASSIGN_DIV_SPEC_CV_UNUSED_HANDLER).
  • Fixed bug #69793 (Remotely triggerable stack exhaustion via recursive
  • method calls).
  • Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).
  • Fixed bug #70121 (unserialize() could lead to unexpected methods execution NULL pointer deref).
  • Curl:
  • Fixed bug #70163 (curl_setopt_array() type confusion).
  • IMAP:
  • Fixed bug #70158 (Building with static imap fails).
  • Fixed bug #69998 (curl multi leaking memory).
  • Opcache:
  • Fixed bug #70111 (Segfault when a function uses both an explicit return
  • type and an explicit cast).
  • OpenSSL:
  • Fixed bug #70014 (openssl_random_pseudo_bytes() is not cryptographically
  • secure).
  • Phar:
  • Improved fix for bug #69441.
  • Fixed bug #70019 (Files extracted from archive may be placed outside of
  • destination directory).
  • Phpdbg:
  • Fixed bug #70138 (Segfault when displaying memory leaks).
  • SOAP:
  • Fixed bug #70081 (SoapClient info leak / null pointer dereference via
  • multiple type confusions).
  • SPL:
  • Fixed bug #70068 (Dangling pointer in the unserialization of ArrayObject
  • items).
  • Fixed bug #70166 (Use After Free Vulnerability in unserialize() with
  • SPLArrayObject).
  • Fixed bug #70168 (Use After Free Vulnerability in unserialize() with
  • SplObjectStorage).
  • Fixed bug #70169 (Use After Free Vulnerability in unserialize() with
  • SplDoublyLinkedList).
  • Standard:
  • Fixed bug #70140 (str_ireplace/php_string_tolower - Arbitrary Code
  • Implemented #70112 (Allow "dirname" to go up various times).
  • Fixed bug #36365 (scandir duplicates file name at every 65535th file).

New in PHP 7.0.0 Beta 2 (Jul 24, 2015)

  • Core:
  • Fixed bug #70089 (segfault at ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER ()).
  • Fixed bug #70057 (Build failure on 32-bit Mac OS X 10.6.8: recursive
  • inlining).
  • Fixed bug #70012 (Exception lost with nested finally block).
  • Fixed bug #69996 (Changing the property of a cloned object affects the
  • original).
  • Fixed bug #70083 (Use after free with assign by ref to overloaded objects).
  • Curl:
  • Fixed bug #70065 (curl_getinfo() returns corrupted values).
  • GD:
  • Fixed bug #53156 (imagerectangle problem with point ordering).
  • Fixed bug #66387 (Stack overflow with imagefilltoborder).
  • Fixed bug #70102 (imagecreatefromwebm() shifts colors).
  • Fixed bug #66590 (imagewebp() doesn't pad to even length).
  • Fixed bug #66882 (imagerotate by -90 degrees truncates image by 1px).
  • Fixed bug #70064 (imagescale(..., IMG_BICUBIC) leaks memory).
  • Fixed bug #69024 (imagescale segfault with palette based image).
  • Fixed bug #53154 (Zero-height rectangle has whiskers).
  • Fixed bug #67447 (imagecrop() add a black line when cropping).
  • Fixed bug #68714 (copy 'n paste error).
  • Fixed bug #66339 (PHP segfaults in imagexbm).
  • Fixed bug #70047 (gd_info() doesn't report WebP support).
  • Replace libvpx with libwebp for bundled libgd.
  • Opcache:
  • Fixed bug #70058 (Build fails when building for i386).
  • Fixed bug #70022 (Crash with opcache using opcache.file_cache_only=1).
  • Soap:
  • Fixed bug #70079 (Segmentation fault after more than 100 SoapClient
  • calls).
  • Fixed bug #70032 (make_http_soap_request calls
  • zend_hash_get_current_key_ex(,,,NULL).
  • SPL:
  • Fixed bug #70053 (MutlitpleIterator array-keys incompatible change in
  • PHP 7).
  • Standard:
  • Fixed bug #70096 (Repeated iptcembed() adds superfluous FF bytes).
  • Fixed bug #70018 (exec does not strip all whitespace).
  • Tokenizer:
  • Fixed bug #69430 (token_get_all has new irrecoverable errors).

New in PHP 7.0.0 Beta 1 (Jul 13, 2015)

  • Core:
  • Fixed bug #70006 (cli - function with default arg = STDOUT crash output).
  • Fixed bug #69521 (Segfault in gc_collect_cycles()).
  • Improved zend_string API
  • Fixed bug #69955 (Segfault when trying to combine [] and assign-op on
  • ArrayAccess object).
  • Fixed bug #69957 (Different ways of handling div/mod/intdiv).
  • Fixed bug #69900 (Too long timeout on pipes).
  • Fixed bug #62210 (Exceptions can leak temporary variables. As a part of
  • the fix serious refactoring was done. op_array->brk_cont_array was removed,
  • and replaced with more general and speed efficient op_array->T_liveliness.
  • ZEND_GOTO opcode is always replaced by ZEND_JMP at compile time).
  • CLI server:
  • Fixed bug #69655 (php -S changes MKCALENDAR request method to MKCOL).
  • Fixed bug #64878 (304 responses return Content-Type header).
  • COM:
  • Fixed bug #69939 (Casting object to bool returns false).
  • JSON
  • Fixed bug #62010 (json_decode produces invalid byte-sequences).
  • OCI8:
  • Corrected oci8 hash destructors to prevent segfaults, and a few other fixes.
  • ODBC:
  • Fixed bug #69975 (PHP segfaults when accessing nvarchar(max) defined
  • columns).
  • OpenSSL:
  • Fixed bug #69882 (OpenSSL error "key values mismatch" after
  • openssl_pkcs12_read with extra cert)
  • PCRE:
  • Fixed bug #53823 (preg_replace: * qualifier on unicode replace garbles the
  • string).
  • Session:
  • Fixed bug #69952 (Data integrity issues accessing superglobals by
  • reference).
  • SPL:
  • Fixed bug #69970 (Use-after-free vulnerability in
  • spl_recursive_it_move_forward_ex()).
  • Standard:
  • Fixed bug #69983 (get_browser fails with user agent of null).
  • Fixed bug #69976 (Unable to parse "all" urls with colon char).
  • Fixed bug #69768 (escapeshell*() doesn't cater to !).
  • Sqlite3:
  • Fixed bug #69972 (Use-after-free vulnerability in
  • sqlite3SafetyCheckSickOrOk()).

New in PHP 5.6.11 (Jul 13, 2015)

  • Core:
  • Fixed bug #69768 (escapeshell*() doesn't cater to !).
  • Fixed bug #69703 (Use __builtin_clzl on PowerPC).
  • Fixed bug #69732 (can induce segmentation fault with basic php code).
  • Fixed bug #69642 (Windows 10 reported as Windows 8).
  • Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation fault).
  • Fixed bug #69781 (phpinfo() reports Professional Editions of Windows 7/8/8.1/10 as "Business").
  • Fixed bug #69740 (finally in generator (yield) swallows exception in iteration).
  • Fixed bug #69835 (phpinfo() does not report many Windows SKUs).
  • Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).
  • Fixed bug #69874 (Can't set empty additional_headers for mail()), regression from fix to bug #68776.
  • GD:
  • Fixed bug #61221 (imagegammacorrect function loses alpha channel).
  • GMP:
  • Fixed bug #69803 (gmp_random_range() modifies second parameter if GMP number).
  • Mysqlnd:
  • Fixed bug #69669 (mysqlnd is vulnerable to BACKRONYM) (CVE-2015-3152).
  • PCRE:
  • Fixed bug #53823 (preg_replace: * qualifier on unicode replace garbles the string).
  • Fixed bug #69864 (Segfault in preg_replace_callback) (cmb, ab)
  • PDO_pgsql:
  • Fixed bug #69752 (PDOStatement::execute() leaks memory with DML Statements when closeCuror() is u).
  • Fixed bug #69362 (PDO-pgsql fails to connect if password contains a leading single quote).
  • Fixed bug #69344 (PDO PgSQL Incorrect binding numeric array with gaps).
  • SimpleXML:
  • Refactored the fix for bug #66084 (simplexml_load_string() mangles empty node name).
  • SPL:
  • Fixed bug #69737 (Segfault when SplMinHeap::compare produces fatal error).
  • Fixed bug #67805 (SplFileObject setMaxLineLength).
  • Fixed bug #69970 (Use-after-free vulnerability in spl_recursive_it_move_forward_ex()).
  • Sqlite3:
  • Fixed bug #69972 (Use-after-free vulnerability in sqlite3SafetyCheckSickOrOk()).

New in PHP 7.0.0 Alpha 2 (Jun 25, 2015)

  • Core:
  • Fixed bug #69872 (uninitialised value in strtr with array).
  • Fixed bug #69868 (Invalid read of size 1 in zend_compile_short_circuiting).
  • Fixed bug #69849 (Broken output of apache_request_headers).
  • Fixed bug #69840 (iconv_substr() doesn't work with UTF-16BE).
  • Fixed bug #69823 (PHP 7.0.0alpha1 segmentation fault when exactly 33
  • extensions are loaded).
  • Fixed bug #69805 (null ptr deref and seg fault in zend_resolve_class_name).
  • Fixed bug #69802 (Reflection on Closure::__invoke borks type hint class
  • name).
  • Fixed bug #69761 (Serialization of anonymous classes should be prevented).
  • Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation
  • fault).
  • Fixed bug #69781 (phpinfo() reports Professional Editions of Windows
  • 7/8/8.1/10 as "Business").
  • Fixed bug #69835 (phpinfo() does not report many Windows SKUs).
  • Fixed bug #69889 (Null coalesce operator doesn't work for string offsets).
  • Fixed bug #69891 (Unexpected array comparison result).
  • Fixed bug #69892 (Different arrays compare indentical due to integer key
  • truncation).
  • Fixed bug #69893 (Strict comparison between integer and empty string keys
  • crashes).
  • DOM:
  • Fixed bug #69846 (Segmenation fault (access violation) when iterating over
  • DOMNodeList).
  • GD:
  • Fixed bug #61221 (imagegammacorrect function loses alpha channel).
  • mysqlnd:
  • Fixed Bug #69796 (mysqli_stmt::fetch doesn't assign null values to
  • bound variables).
  • Curl:
  • Fixed bug #69831 (Segmentation fault in curl_getinfo).
  • Opcache:
  • Removed opcache.load_comments configuration directive. Now doc comments
  • loading costs nothing and always enabled.
  • Fixed bug #69838 (Wrong size calculation for function table).
  • PCRE:
  • Fixed bug #69864 (Segfault in preg_replace_callback) (cmb, ab)
  • PDO_pgsql:
  • Fixed bug #69752 (PDOStatement::execute() leaks memory with DML
  • Statements when closeCuror() is u).
  • SPL:
  • Fixed bug #69845 (ArrayObject with ARRAY_AS_PROPS broken).
  • SQLite3:
  • Fixed bug #69897 (segfault when manually constructing SQLite3Result).
  • Standard:
  • Fixed bug #62922 (Truncating entire string should result in string).

New in PHP 7.0.0 Alpha 1 (Jun 13, 2015)

  • Core:
  • Fixed bug #69767 (Default parameter value with wrong type segfaults).
  • Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency
  • ? with ===).
  • Fixed bug #69758 (Item added to array not being removed by array_pop/shift
  • Fixed bug #68475 (Add support for $callable() sytnax with 'Class::method').
  • Fixed bug #69485 (Double free on zend_list_dtor).
  • Fixed bug #69427 (Segfault on magic method __call of private method in
  • superclass).
  • Improved __call() and __callStatic() magic method handling. Now they are
  • called in a stackless way using ZEND_CALL_TRAMPOLINE opcode, without
  • additional stack frame.
  • Optimized strings concatenation.
  • Fixed weird operators behavior. Division by zero now emits warning and
  • returns +/-INF, modulo by zero and intdid() throws an exception, shifts
  • by negative offset throw exceptions. Compile-time evaluation of division
  • by zero is disabled.
  • Fixed bug #69371 (Hash table collision leads to inaccessible array keys).
  • Fixed bug #68933 (Invalid read of size 8 in zend_std_read_property).
  • Fixed bug #68252 (segfault in Zend/zend_hash.c in function
  • _zend_hash_del_el).
  • Fixed bug #65598 (Closure executed via static autoload incorrectly marked as static).
  • Fixed bug #66811 (Cannot access static::class in lambda, writen outside of a
  • class).
  • Fixed bug #69568 (call a private function in closure failed).
  • Added PHP_INT_MIN constant.
  • Added Closure::call() method.
  • Fixed bug #67959 (Segfault when calling phpversion('spl')).
  • Implemented the RFC `Catchable "Call to a member function bar() on a
  • non-object"`.
  • Added options parameter for unserialize allowing to specify acceptable
  • classes
  • Fixed bug #63734 (Garbage collector can free zvals that are still
  • referenced).
  • Removed ZEND_ACC_FINAL_CLASS, promoting ZEND_ACC_FINAL as final class
  • modifier.
  • is_long() & is_integer() is now an alias of is_int(). (Kalle)
  • Implemented FR #55467 (phpinfo: PHP Variables with $ and single quotes).
  • Added ?? operator.
  • Added operator.
  • Added \u{xxxxx} Unicode Codepoint Escape Syntax. (Andrea)
  • Fixed oversight where define() did not support arrays yet const syntax did.
  • Use "integer" and "float" instead of "long" and "double" in ZPP, type hint
  • and conversion error messages.
  • Implemented FR #55428 (E_RECOVERABLE_ERROR when output buffering in output buffering handler).
  • Removed scoped calls of non-static methods from an incompatible $this
  • context.
  • Removed support for #-style comments in ini files.
  • Removed support for assigning the result of new by reference.
  • Invalid octal literals in source code now produce compile errors, fixes
  • PHPSadness #31.
  • Removed dl() function on fpm-fcgi.
  • Removed support for hexadecimal numeric strings.
  • Removed obsolete extensions and SAPIs. See the full list in UPGRADING.
  • Added NULL byte protection to exec, system and passthru.
  • Added error_clear_last() function.
  • Fixed bug #68797 (Number 2.2250738585072012e-308 converted incorrectly).
  • Improved zend_qsort(using hybrid sorting algo) for better performance,
  • and also renamed zend_qsort to zend_sort.
  • Added stable sorting algo zend_insert_sort.
  • Implemented the RFC `Scalar Type Decalarations v0.5`.
  • Implemented the RFC `Group Use Declarations`.
  • Implemented the RFC `Continue Output Buffering`.
  • Implemented the RFC `Constructor behaviour of internal classes`.
  • Implemented the RFC `Fix "foreach" behavior`.
  • Implemented the RFC `Generator Delegation`.
  • Implemented the RFC `Anonymous Class Support`.
  • Implemented the RFC `Context Sensitive Lexer`.
  • Fixed bug #69511 (Off-by-one buffer overflow in php_sys_readlink).
  • CLI server:
  • Refactor MIME type handling to use a hash table instead of linear search.
  • Update the MIME type list from the one shipped by Apache HTTPD.
  • Added support for SEARCH WebDav method.
  • Curl:
  • Fixed bug #68937 (Segfault in curl_multi_exec).
  • Removed support for unsafe file uploads.
  • Date:
  • Fixed day_of_week function as it could sometimes return negative values
  • internally.
  • Removed $is_dst parameter from mktime() and gmmktime().
  • Removed date.timezone warning
  • (https://wiki.php.net/rfc/date.timezone_warning_removal).
  • Added "v" DateTime format modifier to get the 3-digit version of fraction
  • of seconds.
  • Implemented FR #69089: Added DateTime::RFC3339_EXTENDED to output in
  • RFC3339 Extended format which includes fraction of seconds
  • DBA:
  • Fixed bug #62490 (dba_delete returns true on missing item (inifile)).
  • Fixed bug #68711 (useless comparisons). (bugreports at internot dot info)
  • DOM:
  • Made DOMNode::textContent writeable.
  • GD:
  • Made fontFetch's path parser thread-safe.
  • Removed T1Lib support.
  • Fileinfo:
  • Fixed bug #66242 (libmagic: don't assume char is signed).
  • Filter:
  • New FILTER_VALIDATE_DOMAIN and better RFC conformance for FILTER_VALIDATE_URL.
  • FPM:
  • Fixed bug #68945 (Unknown admin values segfault pools).
  • Fixed bug #65933 (Cannot specify config lines longer than 1024 bytes).
  • Implement request #67106 (Split main fpm config).
  • FTP:
  • Fixed bug #69082 (FTPS support on Windows).
  • Intl:
  • Removed deprecated aliases datefmt_set_timezone_id() and
  • IntlDateFormatter::setTimeZoneID().
  • JSON
  • Replace non-free JSON parser with a parser from Jsond extension, fixes #63520
  • (JSON extension includes a problematic license statement).
  • Fixed bug #68938 (json_decode() decodes empty string without error).
  • LDAP
  • Fixed bug #47222 (Implement LDAP_OPT_DIAGNOSTIC_MESSAGE).
  • LiteSpeed:
  • Updated LiteSpeed SAPI code from V5.5 to V6.6.
  • libxml:
  • Fixed handling of big lines in error messages with libxml >= 2.9.0.
  • Mcrypt:
  • Fixed possible read after end of buffer and use after free.
  • Removed mcrypt_generic_end() alias.
  • Removed mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ofb().
  • Opcache:
  • Fixed bug #69688 (segfault with eval and opcache fast shutdown).
  • Added experimental (disabled by default) file based opcode cache.
  • Fixed bug with try blocks being removed when extended_info opcode
  • generation is turned on.
  • Fixed bug #68644 (strlen incorrect : mbstring + func_overload=2 +UTF-8
  • + Opcache).
  • OpenSSL:
  • Added "alpn_protocols" SSL context option allowing encrypted client/server
  • streams to negotiate alternative protocols using the ALPN TLS extension when
  • built against OpenSSL 1.0.2 or newer. Negotiated protocol information is
  • accessible through stream_get_meta_data() output.
  • Removed "CN_match" and "SNI_server_name" SSL context options. Use automatic
  • detection or the "peer_name" option instead.
  • pcntl:
  • Fixed bug #60509 (pcntl_signal doesn't decrease ref-count of old handler
  • when setting SIG_DFL).
  • Added wifcontinued and wcontinued. (xilon-jul)
  • Added rusage support to pcntl_wait() and pcntl_waitpid().
  • PCRE:
  • Removed support for the /e (PREG_REPLACE_EVAL) modifier.
  • PDO:
  • Fixed bug #59450 (./configure fails with "Cannot find php_pdo_driver.h").
  • (maxime dot besson at smile dot fr)
  • PDO_mysql:
  • Fixed bug #68424 (Add new PDO mysql connection attr to control multi
  • statements option).
  • PDO_pgsql:
  • Removed PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute in favor of ATTR_EMULATE_PREPARES).
  • Reflection
  • Fixed inheritance chain of Reflector interface.
  • Added ReflectionGenerator class.
  • Added reflection support for return types and type declarations.
  • Session:
  • Fixed bug #67694 (Regression in session_regenerate_id()).
  • Fixed bug #68941 (mod_files.sh is a bash-script).
  • SOAP:
  • Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes).
  • SPL:
  • Changed ArrayIterator implementation using zend_hash_iterator_... API.
  • Allowed modification of iterated ArrayObject using the same behavior
  • as proposed in `Fix "foreach" behavior`. Removed "Array was modified
  • outside object and internal position is no longer valid" hack.
  • Implemented #67886 (SplPriorityQueue/SplHeap doesn't expose extractFlags
  • nor curruption state).
  • Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME
  • breaks the RecursiveIterator).
  • Sqlite3:
  • Fixed bug #68260 (SQLite3Result::fetchArray declares wrong
  • required_num_args).
  • Standard:
  • Fixed bug #69723 (Passing parameters by reference and array_column).
  • Fixed bug #69523 (Cookie name cannot be empty).
  • Fixed bug #69325 (php_copy_file_ex does not pass the argument).
  • Fixed bug #69299 (Regression in array_filter's $flag argument in PHP 7).
  • Removed call_user_method() and call_user_method_array() functions.
  • Fixed user session handlers (See rfc:session.user.return-value).
  • Added intdiv() function.
  • Improved precision of log() function for base 2 and 10.
  • Remove string category support in setlocale().
  • Remove set_magic_quotes_runtime() and its alias magic_quotes_runtime().
  • Fixed bug #65272 (flock() out parameter not set correctly in windows).
  • Added preg_replace_callback_array function.
  • Deprecated salt option to password_hash.
  • Fixed bug #69686 (password_verify reports back error on PHP7 will null
  • string).
  • Added Windows support for getrusage().
  • Removed hardcoded limit on number of pipes in proc_open().
  • Streams:
  • Fixed bug #68532 (convert.base64-encode omits padding bytes).
  • Removed set_socket_blocking() in favor of its alias stream_set_blocking().
  • XSL:
  • Fixed bug #64776 (The XSLT extension is not thread safe).
  • Removed xsl.security_prefs ini option.
  • Zlib:
  • Added deflate_init(), deflate_add(), inflate_init(), inflate_add()
  • functions allowing incremental/streaming compression/decompression.
  • Zip:
  • Added ZipArchive::setCompressionName and ZipArchive::setCompressionIndex methods
  • Update bundled libzip to 1.0.1
  • Fixed bug #67161. (ZipArchive::getStream() returns NULL for certain file)

New in PHP 5.6.9 (Jun 11, 2015)

  • Core:
  • Fixed bug #69467 (Wrong checked for the interface by using Trait).
  • Fixed bug #69420 (Invalid read in zend_std_get_method).
  • Fixed bug #60022 ("use statement [...] has no effect" depends on leading backslash).
  • Fixed bug #67314 (Segmentation fault in gc_remove_zval_from_buffer).
  • Fixed bug #68652 (segmentation fault in destructor).
  • Fixed bug #69419 (Returning compatible sub generator produces a warning).
  • Fixed bug #69472 (php_sys_readlink ignores misc errors from GetFinalPathNameByHandleA).
  • Fixed bug #69364 (PHP Multipart/form-data remote dos Vulnerability). (CVE-2015-4024)
  • Fixed bug #69403 (str_repeat() sign mismatch based memory corruption).
  • Fixed bug #69418 (CVE-2006-7243 fix regressions in 5.4+). (CVE-2015-4025)
  • Fixed bug #69522 (heap buffer overflow in unpack()).
  • FTP:
  • Fixed bug #69545 (Integer overflow in ftp_genlist() resulting in heap overflow). (CVE-2015-4022)
  • ODBC:
  • Fixed bug #69354 (Incorrect use of SQLColAttributes with ODBC 3.0).
  • Fixed bug #69474 (ODBC: Query with same field name from two tables returns incorrect result).
  • Fixed bug #69381 (out of memory with sage odbc driver).
  • OpenSSL:
  • Fixed bug #69402 (Reading empty SSL stream hangs until timeout).
  • PCNTL:
  • Fixed bug #68598 (pcntl_exec() should not allow null char). (CVE-2015-4026)
  • PCRE:
  • Upgraded pcrelib to 8.37. (CVE-2015-2325, CVE-2015-2326)
  • Phar:
  • Fixed bug #69453 (Memory Corruption in phar_parse_tarfile when entry filename starts with null). (CVE-2015-4021)

New in PHP 5.6.8 (May 15, 2015)

  • Core:
  • Fixed bug #66609 (php crashes with __get() and ++ operator in some cases).
  • Fixed bug #68021 (get_browser() browser_name_regex returns non-utf-8 characters).
  • Fixed bug #68917 (parse_url fails on some partial urls).
  • Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options).
  • Additional fix for bug #69152 (Type confusion vulnerability in exception::getTraceAsString).
  • Fixed bug #69210 (serialize function return corrupted data when sleep has non-string values).
  • Fixed bug #69212 (Leaking VIA_HANDLER func when exception thrown in __call/... arg passing).
  • Fixed bug #69221 (Segmentation fault when using a generator in combination with an Iterator).
  • Fixed bug #69337 (php_stream_url_wrap_http_ex() type-confusion vulnerability).
  • Fixed bug #69353 (Missing null byte checks for paths in various PHP extensions).
  • Apache2handler:
  • Fixed bug #69218 (potential remote code execution with apache 2.4 apache2handler). (CVE-2015-3330)
  • cURL:
  • Implemented FR #69278 (HTTP2 support).
  • Fixed bug #68739 (Missing break / control flow).
  • Fixed bug #69316 (Use-after-free in php_curl related to CURLOPT_FILE/_INFILE/_WRITEHEADER).
  • Date:
  • Fixed bug #69336 (Issues with "last day of ").
  • Enchant:
  • Fixed bug #65406 (Enchant broker plugins are in the wrong place in windows builds).
  • Ereg:
  • Fixed bug #68740 (NULL Pointer Dereference).
  • Fileinfo:
  • Fixed bug #68819 (Fileinfo on specific file causes spurious OOM and/or segfault).
  • Filter:
  • Fixed bug #69202 (FILTER_FLAG_STRIP_BACKTICK ignored unless other flags are used).
  • Fixed bug #69203 (FILTER_FLAG_STRIP_HIGH doesn't strip ASCII 127).
  • Mbstring:
  • Fixed bug #68846 (False detection of CJK Unified Ideographs Extension E).
  • OPCache:
  • Fixed bug #69297 (function_exists strange behavior with OPCache on disabled function).
  • Fixed bug #69281 (opcache_is_script_cached no longer works).
  • Fixed bug #68677 (Use After Free). (CVE-2015-1351)
  • OpenSSL:
  • Fixed bug #68853, #65137 (Buffered crypto stream data breaks IO polling in stream_select() contexts).
  • Fixed bug #69197 (openssl_pkcs7_sign handles default value incorrectly).
  • Fixed bug #69215 (Crypto servers should send client CA list).
  • Add a check for RAND_egd to allow compiling against LibreSSL.
  • Phar:
  • Fixed bug #64343 (PharData::extractTo fails for tarball created by BSD tar).
  • Fixed bug #64931 (phar_add_file is too restrictive on filename).
  • Fixed bug #65467 (Call to undefined method cli_arg_typ_string).
  • Fixed bug #67761 (Phar::mapPhar fails for Phars inside a path containing ".tar").
  • Fixed bug #69324 (Buffer Over-read in unserialize when parsing Phar). (CVE-2015-2783)
  • Fixed bug #69441 (Buffer Overflow when parsing tar/zip/phar in phar_set_inode). (CVE-2015-3329)
  • Postgres:
  • Fixed bug #68741 (Null pointer dereference). (CVE-2015-1352)
  • SOAP:
  • Fixed bug #69152 (Type Confusion Infoleak Vulnerability in unserialize() with SoapFault).
  • Fixed bug #69293 (NEW segfault when using SoapClient::__setSoapHeader (bisected, regression)).
  • SPL:
  • Fixed bug #69227 (Use after free in zval_scan caused by spl_object_storage_get_gc).
  • Sqlite3:
  • Fixed bug #68760 (SQLITE segfaults if custom collator throws an exception).
  • Fixed bug #69287 (Upgrade bundled libsqlite to 3.8.8.3).
  • Fixed bug #66550 (SQLite prepared statement use-after-free).

New in PHP 5.6.7 (Mar 23, 2015)

  • Core:
  • Fixed bug #69174 (leaks when unused inner class use traits precedence).
  • Fixed bug #69139 (Crash in gc_zval_possible_root on unserialize).
  • Fixed bug #69121 (Segfault in get_current_user when script owner is not in passwd with ZTS build).
  • Fixed bug #65593 (Segfault when calling ob_start from output buffering callback).
  • Fixed bug #68986 (pointer returned by php_stream_fopen_temporary_file not validated in memory.c).
  • Fixed bug #68166 (Exception with invalid character causes segv).
  • Fixed bug #69141 (Missing arguments in reflection info for some builtin functions).
  • Fixed bug #68976 (Use After Free Vulnerability in unserialize()). (CVE-2015-0231)
  • Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options).
  • Fixed bug #69207 (move_uploaded_file allows nulls in path).
  • CGI:
  • Fixed bug #69015 (php-cgi's getopt does not see $argv).
  • CLI:
  • Fixed bug #67741 (auto_prepend_file messes up __LINE__).
  • cURL:
  • Fixed bug #69088 (PHP_MINIT_FUNCTION does not fully initialize cURL on Win32).
  • Add CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5_HOSTNAME constants if supported by libcurl.
  • Ereg:
  • Fixed bug #69248 (heap overflow vulnerability in regcomp.c). (CVE-2015-2305)
  • FPM:
  • Fixed bug #68822 (request time is reset too early).
  • ODBC:
  • Fixed bug #68964 (Allowed memory size exhausted with odbc_exec).
  • Opcache:
  • Fixed bug #69159 (Opcache causes problem when passing a variable variable to a function).
  • Fixed bug #69125 (Array numeric string as key).
  • Fixed bug #69038 (switch(SOMECONSTANT) misbehaves).
  • OpenSSL:
  • Fixed bug #68912 (Segmentation fault at openssl_spki_new).
  • Fixed bug #61285, #68329, #68046, #41631 (encrypted streams don't observe socket timeouts).
  • Fixed bug #68920 (use strict peer_fingerprint input checks)
  • Fixed bug #68879 (IP Address fields in subjectAltNames not used) (Daniel Lowrey)
  • Fixed bug #68265 (SAN match fails with trailing DNS dot)
  • Fixed bug #67403 (Add signatureType to openssl_x509_parse)
  • Fixed bug #69195 (Inconsistent stream crypto values across versions)
  • pgsql:
  • Fixed bug #68638 (pg_update() fails to store infinite values).
  • Readline:
  • Fixed bug #69054 (Null dereference in readline_(read|write)_history() without parameters).
  • SOAP:
  • Fixed bug #69085 (SoapClient's __call() type confusion through unserialize()).
  • SPL:
  • Fixed bug #69108 ("Segmentation fault" when (de)serializing SplObjectStorage).
  • Fixed bug #68557 (RecursiveDirectoryIterator::seek(0) broken after calling getChildren()).
  • ZIP:
  • Fixed bug #69253 (ZIP Integer Overflow leads to writing past heap boundary). (CVE-2015-2331)

New in PHP 5.6.6 (Mar 23, 2015)

  • Core:
  • Removed support for multi-line headers, as they are deprecated by RFC 7230.
  • Fixed bug #67068 (getClosure returns somethings that's not a closure).
  • Fixed bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone). (CVE-2015-0273)
  • Fixed bug #68925 (Mitigation for CVE-2015-0235 – GHOST: glibc gethostbyname buffer overflow).
  • Fixed bug #67988 (htmlspecialchars() does not respect default_charset specified by ini_set).
  • Added NULL byte protection to exec, system and passthru.
  • Dba:
  • Fixed bug #68711 (useless comparisons).
  • Enchant:
  • Fixed bug #68552 (heap buffer overflow in enchant_broker_request_dict()). (CVE-2014-9705)
  • Fileinfo:
  • Fixed bug #68827 (Double free with disabled ZMM).
  • Fixed bug #67647 (Bundled libmagic 5.17 does not detect quicktime files correctly).
  • Fixed bug #68731 (finfo_buffer doesn't extract the correct mime with some gifs).
  • FPM:
  • Fixed bug #66479 (Wrong response to FCGI_GET_VALUES).
  • Fixed bug #68571 (core dump when webserver close the socket).
  • JSON:
  • Fixed bug #50224 (json_encode() does not always encode a float as a float) by adding JSON_PRESERVE_ZERO_FRACTION.
  • LIBXML:
  • Fixed bug #64938 (libxml_disable_entity_loader setting is shared between threads).
  • Mysqli:
  • Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support).
  • Fixed bug #68657 (Reading 4 byte floats with Mysqli and libmysqlclient has rounding errors).
  • Opcache:
  • Fixed bug with try blocks being removed when extended_info opcode generation is turned on.
  • PDO_mysql:
  • Fixed bug #68750 (PDOMysql with mysqlnd does not allow the usage of named pipes).
  • Phar:
  • Fixed bug #68901 (use after free). (CVE-2015-2301)
  • Pgsql:
  • Fixed bug #65199 (pg_copy_from() modifies input array variable).
  • Session:
  • Fixed bug #68941 (mod_files.sh is a bash-script).
  • Fixed bug #66623 (no EINTR check on flock).
  • Fixed bug #68063 (Empty session IDs do still start sessions).
  • Sqlite3:
  • Fixed bug #68260 (SQLite3Result::fetchArray declares wrong required_num_args).
  • Standard:
  • Fixed bug #65272 (flock() out parameter not set correctly in windows).
  • Fixed bug #69033 (Request may get env. variables from previous requests if PHP works as FastCGI).
  • Streams:
  • Fixed bug which caused call after final close on streams filter.

New in PHP 5.6.5 (Feb 19, 2015)

  • Core:
  • Upgraded crypt_blowfish to version 1.3.
  • Fixed bug #60704 (unlink() bug with some files path).
  • Fixed bug #65419 (Inside trait, self::class != __CLASS__).
  • Fixed bug #68536 (pack for 64bits integer is broken on bigendian).
  • Fixed bug #55541 (errors spawn MessageBox, which blocks test automation).
  • Fixed bug #68297 (Application Popup provides too few information).
  • Fixed bug #65769 (localeconv() broken in TS builds).
  • Fixed bug #65230 (setting locale randomly broken).
  • Fixed bug #66764 (configure doesn't define EXPANDED_DATADIR / PHP_DATADIR correctly).
  • Fixed bug #68583 (Crash in timeout thread).
  • Fixed bug #65576 (Constructor from trait conflicts with inherited constructor).
  • Fixed bug #68676 (Explicit Double Free). (CVE-2014-9425)
  • Fixed bug #68710 (Use After Free Vulnerability in PHP's unserialize()). (CVE-2015-0231)
  • CGI:
  • Fixed bug #68618 (out of bounds read crashes php-cgi). (CVE-2014-9427)
  • CLI server:
  • Fixed bug #68745 (Invalid HTTP requests make web server segfault).
  • cURL:
  • Fixed bug #67643 (curl_multi_getcontent returns '' when CURLOPT_RETURNTRANSFER isn't set).
  • Date:
  • Implemented FR #68268 (DatePeriod: Getter for start date, end date and interval).
  • EXIF:
  • Fixed bug #68799 (Free called on unitialized pointer). (CVE-2015-0232)
  • Fileinfo:
  • Fixed bug #68398 (msooxml matches too many archives).
  • Fixed bug #68665 (invalid free in libmagic).
  • Fixed bug #68671 (incorrect expression in libmagic).
  • Removed readelf.c and related code from libmagic sources.
  • Fixed bug #68735 (fileinfo out-of-bounds memory access).
  • FPM:
  • Implemented FR #68526 (Implement POSIX Access Control List for UDS).
  • Fixed bug #68751 (listen.allowed_clients is broken).
  • GD:
  • Fixed bug #68601 (buffer read overflow in gd_gif_in.c).
  • Implemented FR #68656 (Report gd library version).
  • mbstring:
  • Fixed bug #68504 (--with-libmbfl configure option not present on Windows).
  • Opcache:
  • Fixed bug #68644 (strlen incorrect : mbstring + func_overload=2 +UTF-8 + Opcache).
  • Fixed bug #67111 (Memory leak when using "continue 2" inside two foreach loops).
  • OpenSSL:
  • Improved handling of OPENSSL_KEYTYPE_EC keys.
  • pcntl:
  • Fixed bug #60509 (pcntl_signal doesn't decrease ref-count of old handler when setting SIG_DFL).
  • PCRE:
  • Fixed bug #66679 (Alignment Bug in PCRE 8.34 upstream).
  • pgsql:
  • Fixed bug #68697 (lo_export return -1 on failure).
  • PDO:
  • Fixed bug #68371 (PDO#getAttribute() cannot be called with platform-specifi attribute names).
  • PDO_mysql:
  • Fixed bug #68424 (Add new PDO mysql connection attr to control multi statements option).
  • SPL:
  • Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME breaks the RecursiveIterator).
  • Fixed bug #68479 (Added escape parameter to SplFileObject::fputcsv).
  • SQLite:
  • Fixed bug #68120 (Update bundled libsqlite to 3.8.7.2).
  • Streams:
  • Fixed bug #68532 (convert.base64-encode omits padding bytes).

New in PHP 5.6.4 (Jan 22, 2015)

  • Core:
  • Fixed bug #68091 (Some Zend headers lack appropriate extern "C" blocks).
  • Fixed bug #68104 (Segfault while pre-evaluating a disabled function).
  • Fixed bug #68185 ("Inconsistent insteadof definition."- incorrectly triggered).
  • Fixed bug #68355 (Inconsistency in example php.ini comments).
  • Fixed bug #68370 ("unset($this)" can make the program crash).
  • Fixed bug #68422 (Incorrect argument reflection info for array_multisort()).
  • Fixed bug #68545 (NULL pointer dereference in unserialize.c).
  • Fixed bug #68446 (Array constant not accepted for array parameter default).
  • Fixed bug #68594 (Use after free vulnerability in unserialize()). (CVE-2014-8142)
  • Date:
  • Fixed day_of_week function as it could sometimes return negative values internally.
  • FPM:
  • Fixed bug #68381 (fpm_unix_init_main ignores log_level).
  • Fixed bug #68420 (listen=9000 listens to ipv6 localhost instead of all addresses).
  • Fixed bug #68421 (access.format='%R' doesn't log ipv6 address).
  • Fixed bug #68423 (PHP-FPM will no longer load all pools).
  • Fixed bug #68428 (listen.allowed_clients is IPv4 only).
  • Fixed bug #68452 (php-fpm man page is oudated).
  • Implemented FR #68458 (Change pm.start_servers default warning to notice).
  • Fixed bug #68463 (listen.allowed_clients can silently result in no allowed access).
  • Implemented FR #68391 (php-fpm conf files loading order).
  • Fixed bug #68478 (access.log don't use prefix).
  • Mcrypt:
  • Fixed possible read after end of buffer and use after free.
  • GMP:
  • Fixed bug #68419 (build error with gmp 4.1).
  • PDO_pgsql:
  • Fixed bug #67462 (PDO_PGSQL::beginTransaction() wrongly throws exception when not in transaction).
  • Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving).
  • Session:
  • Fixed bug #68331 (Session custom storage callable functions not being called).
  • SOAP:
  • Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes).
  • zlib:
  • Fixed bug #53829 (Compiling PHP with large file support will replace function gzopen by gzopen64).

New in PHP 5.6.3 (Dec 18, 2014)

  • Core:
  • Implemented 64-bit format codes for pack() and unpack().
  • Fixed bug #51800 (proc_open on Windows hangs forever).
  • Fixed bug #67633 (A foreach on an array returned from a function not doing copy-on-write).
  • Fixed bug #67739 (Windows 8.1/Server 2012 R2 OS build number reported as 6.2 (instead of 6.3)).
  • Fixed bug #67949 (DOMNodeList elements should be accessible through array notation)
  • Fixed bug #68095 (AddressSanitizer reports a heap buffer overflow in php_getopt()).
  • Fixed bug #68118 ($a->foo .= 'test'; can leave $a->foo undefined).
  • Fixed bug #68129 (parse_url() - incomplete support for empty usernames and passwords)
  • Fixed bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy).
  • CURL:
  • Add CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, and CURL_SSLVERSION_TLSv1_2 constants if supported by libcurl
  • Fileinfo:
  • Fixed bug #66242 (libmagic: don't assume char is signed).
  • Fixed bug #68224 (buffer-overflow in libmagic/readcdf.c caught by AddressSanitizer).
  • Fixed bug #68283 (fileinfo: out-of-bounds read in elf note headers).
  • FPM:
  • Fixed bug #65641 (PHP-FPM incorrectly defines the SCRIPT_NAME variable when using Apache, mod_proxy-fcgi and ProxyPass).
  • Implemented FR #55508 (listen and listen.allowed_clients should take IPv6 addresses).
  • GD:
  • Fixed bug #65171 (imagescale() fails without height param).
  • GMP:
  • Implemented gmp_random_range() and gmp_random_bits().
  • Fixed bug #63595 (GMP memory management conflicts with other libraries using GMP).
  • Mysqli:
  • Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support)
  • ODBC:
  • Fixed bug #68087 (ODBC not correctly reading DATE column when preceded by a VARCHAR column)
  • OpenSSL:
  • Fixed bug #68074 (Allow to use system cipher list instead of hardcoded value).
  • PDO_pgsql:
  • Fixed bug #68199 (PDO::pgsqlGetNotify doesn't support NOTIFY payloads)
  • Fixed bug #66584 (Segmentation fault on statement deallocation)
  • Reflection:
  • Fixed bug #68103 (Duplicate entry in Reflection for class alias).
  • SPL:
  • Fixed bug #68128 (Regression in RecursiveRegexIterator)

New in PHP 5.6.2 (Nov 13, 2014)

  • Core:
  • Fixed bug #68044 (Integer overflow in unserialize() (32-bits only)). (CVE-2014-3669)
  • cURL:
  • Fixed bug #68089 (NULL byte injection - cURL lib).
  • EXIF:
  • Fixed bug #68113 (Heap corruption in exif_thumbnail()). (CVE-2014-3670)
  • XMLRPC:
  • Fixed bug #68027 (Global buffer overflow in mkgmtime() function). (CVE-2014-3668)

New in PHP 5.6.1 (Oct 17, 2014)

  • Core:
  • Implemented FR #38409 (parse_ini_file() loses the type of booleans).
  • Fixed bug #65463 (SIGSEGV during zend_shutdown()).
  • Fixed bug #66036 (Crash on SIGTERM in apache process).
  • Fixed bug #67878 (program_prefix not honoured in man pages).
  • Fixed bug #67938 (Segfault when extending interface method with variadic).
  • Fixed bug #67985 (Incorrect last used array index copied to new array after unset).
  • Fixed bug #68088 (New Posthandler Potential Illegal efree() vulnerability). (CVE-2014-3622)
  • DOM:
  • Made DOMNode::textContent writeable.
  • Fileinfo:
  • Fixed bug #67731 (finfo::file() returns invalid mime type for binary files).
  • GD:
  • Made fontFetch's path parser thread-safe.
  • GMP:
  • Fixed bug #67917 (Using GMP objects with overloaded operators can cause memory exhaustion).
  • Fixed bug #50175 (gmp_init() results 0 on given base and number starting with 0x or 0b).
  • Implemented gmp_import() and gmp_export().
  • MySQLi:
  • Fixed bug #67839 (mysqli does not handle 4-byte floats correctly).
  • OpenSSL:
  • Fixed bug #67850 (extension won't build if openssl compiled without SSLv3).
  • phpdbg:
  • Fixed issue krakjoe/phpdbg#111 (compile error without ZEND_SIGNALS).
  • SOAP:
  • Fixed bug #67955 (SoapClient prepends 0-byte to cookie names).
  • Session:
  • Fixed bug #67972 (SessionHandler Invalid memory read create_sid()).
  • Sysvsem:
  • Implemented FR #67990 (Add optional nowait argument to sem_acquire).

New in PHP 5.6.0 (Aug 29, 2014)

  • General improvements:
  • Added constant scalar expressions syntax.
  • Added dedicated syntax for variadic functions.
  • Added support for argument unpacking to complement the variadic syntax.
  • Added an exponentiation operator (**).
  • Added phpdbg SAPI.
  • Added unified default encoding.
  • The php://input stream is now re-usable and can be used concurrently with enable_post_data_reading=0.
  • Added use function and use const..
  • Added a function for timing attack safe string comparison.
  • Added the __debugInfo() magic method to allow userland classes to implement the get_debug_info API previously available only to extensions.
  • Added gost-crypto (CryptoPro S-box) hash algorithm.
  • Stream wrappers verify peer certificates and host names by default in encrypted client streams.
  • Uploads equal or greater than 2GB in size are now accepted.
  • Core:
  • Fixed bug #67693 (incorrect push to the empty array).
  • Removed inconsistency regarding behaviour of array in constants at run-time.
  • Fixed bug #67497 (eval with parse error causes segmentation fault in generator).
  • Fixed bug #67151 (strtr with empty array crashes).
  • Fixed bug #67407 (Windows 8.1/Server 2012 R2 reported as Windows 8/Server 2012).
  • Fixed bug #66608 (Incorrect behavior with nested "finally" blocks).
  • Implemented FR #34407 (ucwords and Title Case).
  • Fixed bug #67091 (make install fails to install libphp5.so on FreeBSD 10.0).
  • Fixed bug #67368 (Memory leak with immediately dereferenced array in class constant).
  • Fixed bug #67468 (Segfault in highlight_file()/highlight_string()).
  • Fixed bug #67498 (phpinfo() Type Confusion Information Leak Vulnerability).
  • Fixed bug #67551 (php://input temp file will be located in sys_temp_dir instead of upload_tmp_dir).
  • Fixed bug #67169 (array_splice all elements, then []= gives wrong index).
  • Fixed bug #67198 (php://input regression).
  • Fixed bug #67247 (spl_fixedarray_resize integer overflow).
  • Fixed bug #67250 (iptcparse out-of-bounds read).
  • Fixed bug #67252 (convert_uudecode out-of-bounds read).
  • Fixed bug #67249 (printf out-of-bounds read).
  • Implemented FR #64744 (Differentiate between member function call on a null and non-null, non-objects).
  • Fixed bug #67436 (Autoloader isn't called if two method definitions don't match).
  • Fixed bug #66622 (Closures do not correctly capture the late bound class (static::) in some cases).
  • Fixed bug #67390 (insecure temporary file use in the configure script). (CVE-2014-3981)
  • Fixed bug #67392 (dtrace breaks argument unpack).
  • Fixed bug #67428 (header('Location: foo') will override a 308-399 response code).
  • Fixed bug #67433 (SIGSEGV when using count() on an object implementing Countable).
  • Fixed bug #67399 (putenv with empty variable may lead to crash).
  • Expose get_debug_info class hook as __debugInfo() magic method.
  • Implemented unified default encoding (RFC: https://wiki.php.net/rfc/default_encoding).
  • Added T_POW (**) operator (RFC: https://wiki.php.net/rfc/pow-operator).
  • Improved IS_VAR operands fetching.
  • Improved empty string handling. Now ZE uses an interned string instead of allocation new empty string each time.
  • Implemented internal operator overloading (RFC: https://wiki.php.net/rfc/operator_overloading_gmp).
  • Made calls from incompatible context issue an E_DEPRECATED warning instead of E_STRICT (phase 1 of RFC: https://wiki.php.net/rfc/incompat_ctx).
  • Uploads equal or greater than 2GB in size are now accepted.
  • Reduced POST data memory usage by 200-300%. Changed INI setting always_populate_raw_post_data to throw a deprecation warning when enabling and to accept -1 for never populating the $HTTP_RAW_POST_DATA global variable, which will be the default in future PHP versions.
  • Implemented dedicated syntax for variadic functions (RFC: https://wiki.php.net/rfc/variadics).
  • Fixed bug #50333 Improving multi-threaded scalability by using emalloc/efree/estrdup (Anatol, Dmitry)
  • Implemented constant scalar expressions (with support for constants) (RFC: https://wiki.php.net/rfc/const_scalar_exprs).
  • Fixed bug #65784 (Segfault with finally).
  • Fixed bug #66509 (copy() arginfo has changed starting from 5.4).
  • Allow zero length comparison in substr_compare() (Tjerk)
  • Fixed bug #60602 (proc_open() changes environment array) (Tjerk)
  • Fixed bug #61019 (Out of memory on command stream_get_contents).
  • Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets).
  • Fixed bug #66182 (exit in stream filter produces segfault).
  • Fixed bug #66736 (fpassthru broken).
  • Fixed bug #66822 (Cannot use T_POW in const expression) (Tjerk)
  • Fixed bug #67043 (substr_compare broke by previous change) (Tjerk)
  • Fixed bug #65701 (copy() doesn't work when destination filename is created by tempnam()).
  • Fixed bug #66015 (Unexpected array indexing in class's static property).
  • Added (constant) string/array dereferencing to static scalar expressions to complete the set; now possible thanks to #66015 being fixed.
  • Fixed bug #66568 (Update reflection information for unserialize() function).
  • Fixed bug #66660 (Composer.phar install/update fails).
  • Fixed bug #67024 (getimagesize should recognize BMP files with negative height).
  • Fixed bug #67064 (Countable interface prevents using 2nd parameter ($mode) of count() function).
  • Fixed bug #67072 (Echoing unserialized "SplFileObject" crash).
  • Fixed bug #67033 (Remove reference to Windows 95).
  • Apache2 Handler SAPI:
  • Fixed Apache log issue caused by APR's lack of support for %zu
  • CLI server:
  • Added some MIME types to the CLI web server.
  • Fixed bug #67079 (Missing MIME types for XML/XSL files).
  • Fixed bug #66830 (Empty header causes PHP built-in web server to hang).
  • Fixed bug #67594 (Unable to access to apache_request_headers() elements).
  • Implemented FR #67429 (CLI server is missing some new HTTP response codes).
  • Fixed bug #67406 (built-in web-server segfaults on startup).
  • COM:
  • Fixed bug #41577 (DOTNET is successful once per server run) (Aidas Kasparas)
  • Fixed missing type checks in com_event_sink (Yussuf Khalil, Stas).
  • Fixed bug #66431 (Special Character via COM Interface (CP_UTF8)).
  • Curl:
  • Implemented FR #65646 (re-enable CURLOPT_FOLLOWLOCATION with open_basedir or safe_mode).
  • Check for openssl.cafile ini directive when loading CA certs.
  • Remove cURL close policy related constants as these have no effect and are no longer used in libcurl.
  • Fixed bug #66109 (Can't reset CURLOPT_CUSTOMREQUEST to default behaviour) (Tjerk)
  • Fix compilation on libcurl versions between 7.10.5 and 7.12.2, inclusive.
  • Fixed bug #64247 (CURLOPT_INFILE doesn't allow reset).
  • Fixed bug #66562 (curl_exec returns differently than curl_multi_getcontent).
  • Date:
  • Fixed bug #66060 (Heap buffer over-read in DateInterval). (CVE-2013-6712)
  • Fixed bug #66091 (memory leaks in DateTime constructor) (Tjerk).
  • Fixed bug #67308 (Serialize of DateTime truncates fractions of second).
  • Fixed regression in fix for #67118 (constructor can't be called twice).
  • Fixed bug #67251 (date_parse_from_format out-of-bounds read).
  • Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read).
  • Added DateTimeImmutable::createFromMutable to create a DateTimeImmutable object from an existing DateTime (mutable) object (Derick)
  • Fixed bug #66721 (__wakeup of DateTime segfaults when invalid object data is supplied).
  • Fixed bug #67118 (DateTime constructor crash with invalid data).
  • DOM:
  • Fixed bug #67081 (DOMDocumentType->internalSubset returns entire DOCTYPE tag, not only the subset).
  • Embed:
  • Fixed bug #65715 (php5embed.lib isn't provided anymore). (Anatol).
  • Fileinfo:
  • Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587)
  • Fixed bug #67705 (extensive backtracking in rule regular expression). (CVE-2014-3538)
  • Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS). (CVE-2014-0238)
  • Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation). (CVE-2014-0237)
  • Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check). (CVE-2014-0207)
  • Fixed bug #67329 (fileinfo: NULL pointer deference flaw by processing certain CDF files).
  • Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size). (CVE-2014-3478)
  • Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check). (CVE-2014-3479)
  • Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check). (CVE-2014-3480)
  • Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check). (CVE-2014-3487)
  • Upgraded to libmagic-5.17 (Anatol)
  • Fixed bug #66731 (file: infinite recursion). (CVE-2014-1943)
  • Fixed bug #66820 (out-of-bounds memory access in fileinfo). (CVE-2014-2270)
  • Fixed bug #66946 (fileinfo: extensive backtracking in awk rule regular expression). (CVE-2013-7345)
  • Fixed bug #66987 (Memory corruption in fileinfo ext / bigendian).
  • Fixed bug #66907 (Solaris 10 is missing strcasestr and needs substitute).
  • Fixed bug #66307 (Fileinfo crashes with powerpoint files).
  • FPM:
  • Fixed bug #67606 (revised fix 67541, broke mod_fastcgi BC).
  • Fixed bug #67530 (error_log=syslog ignored).
  • Fixed bug #67635 (php links to systemd libraries without using pkg-config).
  • Fixed bug #67531 (syslog cannot be set in pool configuration).
  • Fixed bug #67541 (Fix Apache 2.4.10+ SetHandler proxy:fcgi:// incompatibilities).
  • Included apparmor support in fpm (RFC: https://wiki.php.net/rfc/fpm_change_hat).
  • Added clear_env configuration directive to disable clearenv() call.
  • Fixed bug #66482 (unknown entry 'priority' in php-fpm.conf).
  • Fixed bug #66908 (php-fpm reload leaks epoll_create() file descriptor).
  • Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration). (CVE-2014-0185)
  • GD:
  • Fixed bug #67730 (Null byte injection possible with imagexxx functions). (CVE-2014-5120)
  • Fixed bug #66901 (php-gd 'c_color' NULL pointer dereference). (CVE-2014-2497)
  • Fixed bug #67248 (imageaffinematrixget missing check of parameters).
  • Fixed imagettftext to load the correct character map rather than the last one.
  • Fixed bug #66356 (Heap Overflow Vulnerability in imagecrop()). (CVE-2013-7226)
  • Fixed bug #66815 (imagecrop(): insufficient fix for NULL defer). (CVE-2013-7327)
  • Fixed bug #66869 (Invalid 2nd argument crashes imageaffinematrixget).
  • Fixed bug #66887 (imagescale - poor quality of scaled image).
  • Fixed bug #66890 (imagescale segfault).
  • Fixed bug #66893 (imagescale ignore method argument).
  • GMP:
  • Fixed bug #66872 (invalid argument crashes gmp_testbit) (Pierre)
  • Fixed crashes in serialize/unserialize.
  • Moved GMP to use object as the underlying structure and implemented various improvements based on this.
  • Added gmp_root() and gmp_rootrem() functions for calculating nth roots.
  • Hash:
  • Added gost-crypto (CryptoPro S-box) GOST hash algo.
  • Fixed bug #66698 (Missing FNV1a32 and FNV1a64 hash functions). (Michael M Slusarz).
  • Implemented timing attack safe string comparison function (RFC: https://wiki.php.net/rfc/timing_attack).
  • hash_pbkdf2() now works correctly if the $length argument is not specified.
  • Intl:
  • Fixed bug #66873 (A reproductible crash in UConverter when given invalid encoding) (Stas)
  • Fixed bug #66921 (Wrong argument type hint for function intltz_from_date_time_zone).
  • Fixed bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting).
  • Fixed bug #67349 (Locale::parseLocale Double Free).
  • Fixed bug #67397 (Buffer overflow in locale_get_display_name and uloc_getDisplayName (libicu 4.8.1)).
  • JSON:
  • Fixed case part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly")
  • Fixed bug #65753 (JsonSerializeable couldn't implement on module extension) ([email protected])
  • Fixed bug #66021 (Blank line inside empty array/object when JSON_PRETTY_PRINT is set).
  • ldap:
  • Added new function ldap_modify_batch().
  • Fixed issue with null bytes in LDAP bindings.
  • litespeed:
  • Fixed bug #63228 (-Werror=format-security error in lsapi code).
  • Mail:
  • Fixed bug #66535 (Don't add newline after X-PHP-Originating-Script) (Tjerk)
  • Mcrypt:
  • No longer allow invalid key sizes, invalid IV sizes or missing required IV in mcrypt_encrypt, mcrypt_decrypt and the deprecated mode functions.
  • Use /dev/urandom as the default source for mcrypt_create_iv().
  • Mbstring:
  • Upgraded to oniguruma 5.9.5 (Anatol)
  • Fixed bug #67199 (mb_regex_encoding mismatch).
  • Milter:
  • Fixed bug #67715 (php-milter does not build and crashes randomly).
  • mysqli:
  • Added new function mysqli_get_links_stats() as well as new INI variable mysqli.rollback_on_cached_plink of type bool (Andrey)
  • Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed) (Remi)
  • Fixed building against an external libmysqlclient.
  • mysqlnd:
  • Disabled flag for SP OUT variables for 5.5+ servers as they are not natively supported by the overlying APIs.
  • Added a new fetching mode to mysqlnd.
  • Added support for gb18030 from MySQL 5.7.
  • Network:
  • Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597)
  • Fixed bug #67432 (Fix potential segfault in dns_get_record()). (CVE-2014-4049)
  • OCI8:
  • Fixed bug #66875 (Improve performance of multi-row OCI_RETURN_LOB queries)
  • ODBC:
  • Fixed bug #60616 (odbc_fetch_into returns junk at end of multi-byte char fields).
  • OpenSSL:
  • Fixed missing type checks in OpenSSL options (Yussuf Khalil, Stas).
  • Fixed bug #67609 (TLS connections fail behind HTTP proxy).
  • Fixed broken build against OpenSSL older than 0.9.8 where ECDH unavailable.
  • Fixed bug #67666 (Subject altNames doesn't support wildcard matching).
  • Fixed bug #67224 (Fall back to crypto_type from context if not specified explicitly in stream_socket_enable_crypto).
  • Fixed bug #65698 (certificates validity parsing does not work past 2050).
  • Fixed bug #66636 (openssl_x509_parse warning with V_ASN1_GENERALIZEDTIME).
  • Peer certificates now verified by default in client socket operations (RFC: https://wiki.php.net/rfc/tls-peer-verification).
  • New openssl.cafile and openssl.capath ini directives.
  • Added crypto_method option for the ssl stream context.
  • Added certificate fingerprint support.
  • Added explicit TLSv1.1 and TLSv1.2 stream transports.
  • Fixed bug #65729 (CN_match gives false positive).
  • Peer name verification matches SAN DNS names for certs using the Subject Alternative Name x509 extension.
  • Fixed segfault when built against OpenSSL>=1.0.1 (Daniel Lowrey)
  • Added SPKAC support.
  • Fallback to Windows CA cert store for peer verification if no openssl.cafile ini directive or "cafile" SSL context option specified in Windows.
  • The openssl.cafile and openssl.capath ini directives introduced in alpha2 now have PHP_INI_PERDIR accessibility (was PHP_INI_ALL).
  • New "peer_name" SSL context option replaces "CN_match" (which still works as before but triggers E_DEPRECATED).
  • Fixed segfault when accessing non-existent context for client SNI use (Daniel Lowrey)
  • Fixed bug #66501 (Add EC key support to php_openssl_is_private_key).
  • Fixed bug #47030 (add new boolean "verify_peer_name" SSL context option allowing clients to verify cert names separately from the cert itself). "verify_peer_name" is enabled by default for client streams.
  • Fixed bug #65538 ("cafile" SSL context option now supports stream wrappers).
  • New openssl_get_cert_locations() function to aid CA file and peer verification debugging.
  • Encrypted stream wrappers now disable TLS compression by default.
  • New "capture_session_meta" SSL context option allows encrypted client and server streams access to negotiated protocol/cipher information.
  • New "honor_cipher_order" SSL context option allows servers to prioritize cipher suites of their choosing when negotiating SSL/TLS handshakes.
  • New "single_ecdh_use" and "single_dh_use" SSL context options allow for improved forward secrecy in encrypted stream servers.
  • New "dh_param" SSL context option allows stream servers control over the parameters when negotiating DHE cipher suites.
  • New "ecdh_curve" SSL context option allowing stream servers to specify the curve to use when negotiating ephemeral ECDHE ciphers (defaults to NIST P-256).
  • New "rsa_key_size" SSL context option gives stream servers control over the key size (in bits) used for RSA key agreements.
  • Crypto methods for encrypted client and server streams now use bitwise flags for fine-grained protocol support.
  • Added new tlsv1.0 stream wrapper to specify TLSv1 client/server method. tls wrapper now negotiates TLSv1, TLSv1.1 or TLSv1.2.
  • Encrypted client streams now enable SNI by default.
  • Encrypted streams now prioritize ephemeral key agreement and high strength ciphers by default.
  • New OPENSSL_DEFAULT_STREAM_CIPHERS constant exposes default cipher list.
  • New STREAM_CRYPTO_METHOD_* constants for enhanced control over the crypto methods negotiated encrypted server/client sessions.
  • Encrypted stream servers now automatically mitigate potential DoS vector arising from client-initiated TLS renegotiation. New "reneg_limit", "reneg_window" and "reneg_limit_callback" SSL context options for custom renegotiation limiting control.
  • Fixed memory leak in windows cert verification on verify failure.
  • Peer certificate capturing via SSL context options now functions even if peer verification fails.
  • Encrypted TLS servers now support the server name indication TLS extension via the new "SNI_server_certs" SSL context option.
  • Fixed bug #66833 (Default disgest algo is still MD5, switch to SHA1).
  • Fixed bug #66942 (memory leak in openssl_seal()).
  • Fixed bug #66952 (memory leak in openssl_open()).
  • Fixed bug #66840 (Fix broken build when extension built separately).
  • OPcache:
  • Added an optimization of class constants and constant calls to some internal functions (Laruence, Dmitry)
  • Added an optimization pass to convert FCALL_BY_NAME into DO_FCALL.
  • Added an optimization pass to merged identical constants (and related cache_slots) in op_array->literals table.
  • Added script level constant replacement optimization pass.
  • Added function opcache_is_script_cached().
  • Added information about interned strings usage.
  • Fixed bug #67215 (php-cgi work with opcache, may be segmentation fault happen)
  • PCRE:
  • Fixed bug #67238 (Ungreedy and min/max quantifier bug, applied patch from the upstream).
  • Upgraded to PCRE 8.34.
  • Added support for (*MARK) backtracking verbs.
  • pgsql:
  • Fixed bug #67550 (Error in code "form" instead of "from", pgsql.c, line 756), which affected builds against libpq < 7.3.
  • pg_insert()/pg_select()/pg_update()/pg_delete() are no longer EXPERIMENTAL.
  • Impremented FR #25854 Return value for pg_insert should be resource instead of bool.
  • Implemented FR #41146 - Add "description" with exteneded flag pg_meta_data(). pg_meta_data(resource $conn, string $table [, bool extended]) It also made pg_meta_data() return "is enum" always.
  • Read-only access to the socket stream underlying database connections is exposed via a new pg_socket() function to allow read/write polling when establishing asynchronous connections and executing queries in non-blocking applications.
  • Asynchronous connections are now possible using the PGSQL_CONNECT_ASYNC flag in conjunction with a new pg_connect_poll() function and connection polling status constants.
  • New pg_flush() and pg_consume_input() functions added to manually complete non-blocking reads/writes to underlying connection sockets.
  • pg_version() returns full report which obtained by PQparameterStatus().
  • Added pg_lo_truncate().
  • Added 64bit large object support for PostgreSQL 9.3 and later.
  • Fixed bug #67555 (Cannot build against libpq 7.3).
  • phpdbg:
  • Fixed bug #67575 (Compilation fails for phpdbg when the build directory != src directory).
  • Fixed bug #67499 (readline feature not enabled when build with libedit).
  • Fix issue krakjoe/phpdbg#94 (List behavior is inconsistent).
  • Fix issue krakjoe/phpdbg#97 (The prompt should always ensure it is on a newline).
  • Fix issue krakjoe/phpdbg#98 (break if does not seem to work).
  • Fix issue krakjoe/phpdbg#99 (register function has the same behavior as run).
  • Fix issue krakjoe/phpdbg#100 (No way to list the current stack/frames) (Help entry was missing).
  • Fixed bug which caused phpdbg to fail immediately on startup in non-debug builds.
  • Fixed bug #67212 (phpdbg uses non-standard TIOCGWINSZ).
  • Included phpdbg sapi (RFC: https://wiki.php.net/rfc/phpdbg).
  • Added watchpoints (watch command).
  • Renamed some commands (next => continue and how to step).
  • Fixed issue #85 (https://github.com/krakjoe/phpdbg/issues/85) (Added stdin/stdout/stderr constants and their php:// wrappers).
  • PDO:
  • Fixed bug #66604 ('pdo/php_pdo_error.h' not copied to the include dir).
  • PDO-ODBC:
  • Fixed bug #50444 (PDO-ODBC changes for 64-bit).
  • PDO_pgsql:
  • Fixed bug #42614 (PDO_pgsql: add pg_get_notify support).
  • Fixed bug #63657 (pgsqlCopyFromFile, pgsqlCopyToArray use Postgres < 7.3 syntax).
  • Cleaned up code by increasing the requirements to libpq versions providing PQexecParams, PQprepare, PQescapeStringConn, PQescapeByteaConn. According to the release notes that means 8.0.8+ or 8.1.4+.
  • Deprecated PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, an undocument constant effectively equivalent to PDO::ATTR_EMULATE_PREPARES.
  • Added PDO::PGSQL_ATTR_DISABLE_PREPARES constant to execute the queries without preparing them, while still passing parameters separately from the command text using PQexecParams.
  • PDO_firebird:
  • Fixed bug #66071 (memory corruption in error handling)
  • Phar:
  • Fixed bug #64498 ($phar->buildFromDirectory can't compress file with an accent in its name).
  • Fixed bug #67587 (Redirection loop on nginx with FPM).
  • readline:
  • Fixed bug #55496 (Interactive mode doesn't force a newline before the prompt).
  • Fixed bug #67496 (Save command history when exiting interactive shell with control-c).
  • Reflection:
  • Implemented FR #67713 (loosen the restrictions on ReflectionClass::newInstanceWithoutConstructor()).
  • Session:
  • Fixed bug #67694 (Regression in session_regenerate_id()).
  • Fixed missing type checks in php_session_create_id (Yussuf Khalil, Stas).
  • Fixed bug #66827 (Session raises E_NOTICE when session name variable is array).
  • Fixed bug #65315 (session.hash_function silently fallback to default md5) (Yasuo)
  • Implemented Request #17860 (Session write short circuit).
  • Implemented Request #20421 (session_abort() and session_reset() function).
  • Remove session_gc() and session_serializer_name() wich were introduced in the first 5.6.0 alpha.
  • SimpleXML:
  • Fixed bug #66084 (simplexml_load_string() mangles empty node name) (Anatol)
  • SQLite:
  • Updated the bundled libsqlite to the version 3.8.3.1 (Anatol)
  • Fixed bug #66967 (Updated bundled libsqlite to 3.8.4.3).
  • SOAP:
  • Implemented FR #49898 (Add SoapClient::__getCookies()).
  • SPL:
  • Revert fix for #67064 (BC issues).
  • Fixed bug #67539 (ArrayIterator use-after-free due to object change during sorting). (CVE-2014-4698)
  • Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670)
  • Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion). (CVE-2014-3515)
  • Fixed bug #67359 (Segfault in recursiveDirectoryIterator).
  • Fixed bug #66127 (Segmentation fault with ArrayObject unset).
  • Fixed request #67453 (Allow to unserialize empty data).
  • Added feature #65545 (SplFileObject::fread()) (Tjerk)
  • Fixed bug #66834 (empty() does not work on classes that extend ArrayObject) (Tjerk)
  • Fixed bug #66702 (RegexIterator::INVERT_MATCH does not invert).
  • Standard:
  • Implemented FR #65634 (HTTP wrapper is very slow with protocol_version 1.1).
  • Implemented Change crypt() behavior w/o salt RFC. (Yasuo) https://wiki.php.net/rfc/crypt_function_salt
  • Implemented request #49824 (Change array_fill() to allow creating empty array).
  • Streams:
  • Fixed bug #67430 (http:// wrapper doesn't follow 308 redirects).
  • Tokenizer:
  • Fixed bug #67395 (token_name() does not return name for T_POW and T_POW_EQUAL token).
  • XMLReader:
  • Fixed bug #55285 (XMLReader::getAttribute/No/Ns methods inconsistency).
  • XSL:
  • Fixed bug #53965 ( cannot find files with relative paths when loaded with "file://").
  • Zip:
  • update libzip to version 1.11.2. PHP don't use any ilibzip private symbol anymore.
  • new method ZipArchive::setPassword($password).
  • add --with-libzip option to build with system libzip.
  • new methods: ZipArchive::setExternalAttributesName($name, $opsys, $attr [, $flags]) ZipArchive::setExternalAttributesIndex($idx, $opsys, $attr [, $flags]) ZipArchive::getExternalAttributesName($name, &$opsys, &$attr [, $flags]) ZipArchive::getExternalAttributesIndex($idx, &$opsys, &$attr [, $flags])
  • Zlib:
  • Fixed bug #67865 (internal corruption phar error). Mike
  • Fixed bug #67724 (chained zlib filters silently fail with large amounts of data).

New in PHP 5.5.16 (Aug 24, 2014)

  • COM:
  • Fixed missing type checks in com_event_sink.
  • Core:
  • Fixed bug #67693 (incorrect push to the empty array).
  • Fileinfo:
  • Fixed bug #67705 (extensive backtracking in rule regular expression). (CVE-2014-3538).
  • Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587)).
  • FPM:
  • Fixed bug #67635 (php links to systemd libraries without using pkg-config).
  • GD:
  • Fixed bug #66901 (php-gd 'c_color' NULL pointer dereference). (CVE-2014-2497).
  • Fixed bug #67730 (Null byte injection possible with imagexxx functions). (CVE-2014-5120).
  • Milter:
  • Fixed bug #67715 (php-milter does not build and crashes randomly).
  • Network:
  • Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597).
  • OpenSSL:
  • Fixed missing type checks in OpenSSL options.
  • readline:
  • Fixed bug #55496 (Interactive mode doesn't force a newline before the prompt).
  • Fixed bug #67496 (Save command history when exiting interactive shell with control-c).
  • Sessions:
  • Fixed missing type checks in php_session_create_id.
  • ODBC:
  • Fixed bug #60616 (odbc_fetch_into returns junk data at end of multi-byte char fields).

New in PHP 5.6.0 RC 4 (Aug 16, 2014)

  • COM:
  • Fixed bug #41577 (DOTNET is successful once per server run)
  • Core:
  • Fixed bug #67693 (incorrect push to the empty array).
  • Removed inconsistency regarding behaviour of array in constants at
  • run-time.
  • Fileinfo:
  • Fixed bug #67705 (extensive backtracking in rule regular expression).
  • (CVE-2014-3538)
  • FPM:
  • Fix bug #67606 (revised fix 67541, broke mod_fastcgi BC).
  • GD:
  • Fixed bug #66901 (php-gd 'c_color' NULL pointer dereference).
  • (CVE-2014-2497)
  • Milter:
  • Fixed bug #67715 (php-milter does not build and crashes randomly).
  • OpenSSL:
  • Fixed bug #41631 (socket timeouts not honored in blocking SSL reads).
  • SPL:
  • Revert fix for bug #67064 (BC issues).
  • Zlib:
  • Fixed bug #67724 (chained zlib filters silently fail with large amounts of
  • data).
  • Date:
  • Fixed bug #66091 (memory leaks in DateTime constructor)

New in PHP 5.6.0 RC 3 (Aug 1, 2014)

  • Core:
  • Fixed bug #67497 (eval with parse error causes segmentation fault in generator).
  • Fixed bug #67151 (strtr with empty array crashes).
  • Fixed bug #67407 (Windows 8.1/Server 2012 R2 reported as Windows 8/Server 2012).
  • Fixed bug #66608 (Incorrect behavior with nested "finally" blocks).
  • Implemented FR #34407 (ucwords and Title Case).
  • COM:
  • Fixed missing type checks in com_event_sink.
  • CLI server:
  • Fixed bug #66830 (Empty header causes PHP built-in web server to hang).
  • Fixed bug #67594 (Unable to access to apache_request_headers() elements).
  • FPM:
  • Fixed bug #67530 (error_log=syslog ignored).
  • Fixed bug #67635 (php links to systemd libraries without using pkg-config).
  • Intl:
  • Fixed bug #66921 (Wrong argument type hint for function intltz_from_date_time_zone). (Stas)
  • Fixed bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting).
  • pgsql:
  • Fixed bug #67555 (Cannot build against libpq 7.3).
  • ODBC:
  • Fixed bug #60616 (odbc_fetch_into returns junk at end of multi-byte char fields).
  • OpenSSL:
  • Fixed missing type checks in OpenSSL options .
  • Fixed bug #67609 (TLS connections fail behind HTTP proxy).
  • Fixed broken build against OpenSSL older than 0.9.8 where ECDH unavailable.
  • Fixed bug #67666 (Subject altNames doesn't support wildcard matching).
  • Phar:
  • Fixed bug #67587 (Redirection loop on nginx with FPM).
  • readline:
  • Fixed bug #55496 (Interactive mode doesn't force a newline before the prompt).
  • Fixed bug #67496 (Save command history when exiting interactive shell with control-c).
  • Reflection:
  • Implemented FR #67713 (loosen the restrictions on ReflectionClass::newInstanceWithoutConstructor()).
  • SPL:
  • Fixed bug #67539 (ArrayIterator use-after-free due to object change during sorting).
  • Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670).
  • Session:
  • Fixed missing type checks in php_session_create_id.
  • Fixed bug #66827 (Session raises E_NOTICE when session name variable is array).
  • OPCache:
  • Fixed bug #67215 (php-cgi work with opcache, may be segmentation fault happen).
  • phpdbg
  • Fixed bug #67575 (Compilation fails for phpdbg when the build directory != src directory).

New in PHP 5.6.0 RC 2 (Jul 4, 2014)

  • Core:
  • Fixed bug #67368 (Memory leak with immediately dereferenced array in class constant).
  • Fixed bug #67468 (Segfault in highlight_file()/highlight_string()).
  • Fixed bug #67091 (make install fails to install libphp5.so on FreeBSD 10.0).
  • Fixed bug #67498 (phpinfo() Type Confusion Information Leak Vulnerability).
  • FPM:
  • Fix bug #67531 (syslog cannot be set in pool configuration).
  • Fix bug #67541 (Fix Apache 2.4.10+ SetHandler proxy:fcgi://
  • incompatibilities).
  • Intl:
  • Fixed bug #67349 (Locale::parseLocale Double Free).
  • Fixed bug #67397 (Buffer overflow in locale_get_display_name and uloc_getDisplayName (libicu 4.8.1)).
  • pgsql:
  • Fix bug #67550 (Error in code "form" instead of "from", pgsql.c, line 756), which affected builds against libpq < 7.3.
  • phpdbg:
  • Fix Bug #67499 (readline feature not enabled when build with libedit).
  • Fix issue krakjoe/phpdbg#94 (List behavior is inconsistent).
  • Fix issue krakjoe/phpdbg#97 (The prompt should always ensure it is on a newline).
  • Fix issue krakjoe/phpdbg#98 (break if does not seem to work).
  • Fix issue krakjoe/phpdbg#99 (register function has the same behavior as run).
  • Fix issue krakjoe/phpdbg#100 (No way to list the current stack/frames) (Help entry was missing).
  • SPL:
  • Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion) (CVE-2014-3515).

New in PHP 5.5.14 (Jun 26, 2014)

  • Core:
  • Fixed BC break introduced by patch for bug #67072.
  • Fixed bug #66622 (Closures do not correctly capture the late bound class
  • static::) in some cases).
  • Fixed bug #67390 (insecure temporary file use in the configure script).
  • CVE-2014-3981)
  • Fixed bug #67399 (putenv with empty variable may lead to crash).
  • Fixed bug #67498 (phpinfo() Type Confusion Information Leak Vulnerability).
  • CLI server:
  • Fixed Bug #67406 (built-in web-server segfaults on startup).
  • Date:
  • Fixed bug #67308 (Serialize of DateTime truncates fractions of second).
  • Fixed regression in fix for bug #67118 (constructor can't be called twice).
  • Fileinfo:
  • Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check).
  • (CVE-2014-0207)
  • Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal
  • string size). (CVE-2014-3478)
  • Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary
  • check). (CVE-2014-3479)
  • Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check).
  • CVE-2014-3480)
  • Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary
  • check). (CVE-2014-3487)
  • Intl:
  • Fixed bug #67349 (Locale::parseLocale Double Free).
  • Fixed bug #67397 (Buffer overflow in locale_get_display_name and
  • uloc_getDisplayName (libicu 4.8.1)).
  • Network:
  • Fixed bug #67432 (Fix potential segfault in dns_get_record()).
  • CVE-2014-4049).
  • OPCache:
  • Fixed issue #183 (TMP_VAR is not only used once).
  • OpenSSL:
  • Fixed bug #65698 (certificates validity parsing does not work past 2050).
  • Fixed bug #66636 (openssl_x509_parse warning with (V_ASN1_GENERALIZEDTIME).
  • PDO-ODBC:
  • Fixed bug #50444 (PDO-ODBC changes for 64-bit).
  • SOAP:
  • Implemented FR #49898 (Add SoapClient::__getCookies()).
  • SPL:
  • Fixed bug #66127 (Segmentation fault with ArrayObject unset).
  • Fixed bug #67359 (Segfault in recursiveDirectoryIterator).
  • Fixed bug #67360 (Missing element after ArrayObject::getIterator).
  • Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type
  • Confusion). (CVE-2014-3515)

New in PHP 5.6.0 Beta 4 (Jun 5, 2014)

  • Core:
  • Fixed bug #67249 (printf out-of-bounds read). (Stas)
  • Date:
  • Fixed bug #67308 (Serialize of DateTime truncates fractions of second). (Adam)
  • Fileinfo:
  • Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS).
  • Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation).
  • Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check).
  • Fixed bug #67329 (fileinfo: NULL pointer deference flaw by processing certain CDF files).
  • SPL:
  • Fixed bug #67359 (Segfault in recursiveDirectoryIterator). (Laruence)
  • phpdbg:
  • Fixed bug which caused phpdbg to fail immediately on startup in non-debug builds. (Bob)

New in PHP 5.6.0 Beta 3 (May 16, 2014)

  • Core:
  • Fixed bug #67169 (array_splice all elements, then []= gives wrong index).
  • Fixed bug #67198 (php://input regression).
  • Fixed bug #67247 (spl_fixedarray_resize integer overflow).
  • Fixed bug #67250 (iptcparse out-of-bounds read).
  • Fixed bug #67252 (convert_uudecode out-of-bounds read).
  • Date:
  • Fixed bug #67251 (date_parse_from_format out-of-bounds read).
  • Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read).
  • GD:
  • Fixed bug #67248 (imageaffinematrixget missing check of parameters).
  • OpenSSL:
  • Fixed bug #67224 (Fall back to crypto_type from context if not specified explicitly in stream_socket_enable_crypto).
  • PCRE:
  • Fixed bug #67238 (Ungreedy and min/max quantifier bug, applied patch from the upstream).
  • -bstring:
  • Fixed bug #67199 (mb_regex_encoding mismatch).

New in PHP 5.6.0 Beta 2 (May 2, 2014)

  • CLI server:
  • Fixed bug #67079 (Missing MIME types for XML/XSL files).
  • COM:
  • Fixed bug #66431 (Special Character via COM Interface (CP_UTF8)).
  • Core:
  • Fixed bug #65701 (copy() doesn't work when destination filename is created by tempnam()).
  • Fixed bug #66015 (Unexpected array indexing in class's static property).
  • Added (constant) string/array dereferencing to static scalar expressions to complete the set; now possible thanks to bug #66015 being fixed.
  • Fixed bug #66568 (Update reflection information for unserialize() function).
  • Fixed bug #66660 (Composer.phar install/update fails).
  • Fixed bug #67024 (getimagesize should recognize BMP files with negative height).
  • Fixed bug #67064 (Countable interface prevents using 2nd parameter ($mode) of count() function).
  • Fixed bug #67072 (Echoing unserialized "SplFileObject" crash).
  • Fixed bug #67033 (Remove reference to Windows 95).
  • cURL:
  • Fixed bug #64247 (CURLOPT_INFILE doesn't allow reset).
  • Fixed bug #66562 (curl_exec returns differently than curl_multi_getcontent).
  • Date:
  • Fixed bug #66721 (__wakeup of DateTime segfaults when invalid object data is supplied).
  • Fixed bug #67118 (DateTime constructor crash with invalid data).
  • DOM:
  • Fixed bug #67081 (DOMDocumentType->internalSubset returns entire DOCTYPE tag, not only the subset).
  • Fileinfo:
  • Fixed bug #66907 (Solaris 10 is missing strcasestr and needs substitute).
  • Fixed bug #66307 (Fileinfo crashes with powerpoint files).
  • FPM:
  • Fixed bug #66482 (unknown entry 'priority' in php-fpm.conf).
  • Fixed bug #66908 (php-fpm reload leaks epoll_create() file descriptor).
  • Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration) (CVE-2014-0185).
  • GMP:
  • Fixed crashes in serialize/unserialize.
  • JSON:
  • Fixed bug #66021 (Blank line inside empty array/object when JSON_PRETTY_PRINT is set).
  • LDAP:
  • Fixed issue with null bytes in LDAP bindings.
  • litespeed
  • Fixed bug #63228 (-Werror=format-security error in lsapi code).
  • mysqlnd:
  • Added a new fetching mode to mysqlnd.
  • OpenSSL:
  • Fix bug #66942 (memory leak in openssl_seal()). (Chuan Ma)
  • Fix bug #66952 (memory leak in openssl_open()). (Chuan Ma)
  • Fix bug #66840 (Fix broken build when extension built separately)
  • phpdbg:
  • Added watchpoints (watch command).
  • Renamed some commands (next => continue and how to step).
  • Fixed issue #85 (https://github.com/krakjoe/phpdbg/issues/85).
  • PDO:
  • Fixed bug #66604 ('pdo/php_pdo_error.h' not copied to the include dir).
  • PDO-ODBC:
  • Fixed bug #50444 (PDO-ODBC changes for 64-bit).
  • Phar:
  • Fix bug #64498 ($phar->buildFromDirectory can't compress file with an accent in its name). (PR #588)
  • SQLite:
  • Fixed bug #66967 (Updated bundled libsqlite to 3.8.4.3).
  • Apache2 Handler SAPI:
  • Fixed Apache log issue caused by APR's lack of support for %zu

New in PHP 5.5.12 (May 1, 2014)

  • Core:
  • Fixed bug #61019 (Out of memory on command stream_get_contents).
  • Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets).
  • Fixed bug #66182 (exit in stream filter produces segfault).
  • Fixed bug #66736 (fpassthru broken).
  • Fixed bug #67024 (getimagesize should recognize BMP files with negative heighty).
  • Fixed bug #67043 (substr_compare broke by previous change).
  • cURL:
  • Fixed bug #66562 (curl_exec returns differently than curl_multi_getcontent).
  • Date:
  • Fixed bug #66721 (__wakeup of DateTime segfaults when invalid object data is supplied).
  • Embed:
  • Fixed bug #65715 (php5embed.lib isn't provided anymore).
  • Fileinfo:
  • Fixed bug #66987 (Memory corruption in fileinfo ext / bigendian).
  • FPM:
  • Fixed bug #66482 (unknown entry 'priority' in php-fpm.conf).
  • Fixed bug #67060 (possible privilege escalation due to insecure default configuration). (CVE-2014-0185)).
  • Json:
  • Fixed bug #66021 (Blank line inside empty array/object when JSON_PRETTY_PRINT is set).
  • LDAP:
  • Fixed issue with null bytes in LDAP bindings.
  • mysqli:
  • Fixed problem in mysqli_commit()/mysqli_rollback() with second parameter (extra comma) and third parameters (lack of escaping).
  • Openssl:
  • Fixed bug #66942 (memory leak in openssl_seal()).
  • Fixed bug #66952 (memory leak in openssl_open()).
  • SimpleXML:
  • Fixed bug #66084 (simplexml_load_string() mangles empty node name).
  • SQLite:
  • Fixed bug #66967 (Updated bundled libsqlite to 3.8.4.3)
  • XSL:
  • Fixed bug #53965 ( cannot find files with relative paths when loaded with "file://")
  • Apache2 Handler SAPI:
  • Fixed Apache log issue caused by APR's lack of support for %zu (APR issue https://issues.apache.org/bugzilla/show_bug.cgi?id=56120)

New in PHP 5.6.0 Beta 1 (Apr 11, 2014)

  • Core:
  • Allow zero length comparison in substr_compare()
  • Fixed bug #60602 (proc_open() changes environment array)
  • Fixed bug #61019 (Out of memory on command stream_get_contents).
  • Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets).
  • Fixed bug #66182 (exit in stream filter produces segfault).
  • Fixed bug #66736 (fpassthru broken).
  • Fixed bug #66822 (Cannot use T_POW in const expression)
  • Fixed bug #67043 (substr_compare broke by previous change)
  • SPL:
  • Added feature #65545 (SplFileObject::fread())
  • Fixed bug #66834 (empty() does not work on classes that extend ArrayObject)
  • Fixed bug #66702 (RegexIterator::INVERT_MATCH does not invert).
  • cURL:
  • Fixed bug #66109 (Can't reset CURLOPT_CUSTOMREQUEST to default behaviour)
  • Fix compilation on libcurl versions between 7.10.5 and 7.12.2, inclusive.
  • Date:
  • Added DateTimeImmutable::createFromMutable to create a DateTimeImmutable object from an existing DateTime (mutable) object
  • Embed:
  • Fixed bug #65715 (php5embed.lib isn't provided anymore).
  • Fileinfo:
  • Fixed bug #66820 (out-of-bounds memory access in fileinfo (CVE-2014-2270).
  • Fixed bug #66946i (fileinfo: extensive backtracking in awk rule regular expression). (CVE-2013-7345)
  • Fixed bug #66987 (Memory corruption in fileinfo ext / bigendian).
  • GD:
  • Fixed bug #66815 (imagecrop(): insufficient fix for NULL defer CVE-2013-7327).
  • Fixed #66869 (Invalid 2nd argument crashes imageaffinematrixget)
  • Fixed bug #66887 (imagescale - poor quality of scaled image).
  • Fixed bug #66890 (imagescale segfault).
  • Fixed bug #66893 (imagescale ignore method argument).
  • GMP:
  • Fixed bug #66872 (invalid argument crashes gmp_testbit)
  • Hash:
  • Fixed bug #66698 (Missing FNV1a32 and FNV1a64 hash functions).
  • Implemented timing attack safe string comparison function
  • hash_pbkdf2() now works correctly if the $length argument is not specified.
  • Intl:
  • Fixed bug #66873 (A reproductible crash in UConverter when given invalid encoding)
  • Mail:
  • Fixed bug #66535 (Don't add newline after X-PHP-Originating-Script)
  • Mbstring:
  • Upgraded to oniguruma 5.9.5
  • Mcrypt:
  • No longer allow invalid key sizes, invalid IV sizes or missing required IV in mcrypt_encrypt, mcrypt_decrypt and the deprecated mode functions.
  • Use /dev/urandom as the default source for mcrypt_create_iv().
  • MySQLi:
  • Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed)
  • OCI8
  • Fixed Bug #66875 (Improve performance of multi-row OCI_RETURN_LOB queries)
  • OpenSSL:
  • Fixed memory leak in windows cert verification on verify failure.
  • Peer certificate capturing via SSL context options now functions even if peer verification fails.
  • Encrypted TLS servers now support the server name indication TLS extension via the new "SNI_server_certs" SSL context option.
  • Fixed bug #66833 (Default disgest algo is still MD5, switch to SHA1).
  • PCRE:
  • Added support for (*MARK) backtracking verbs.
  • PDO_firebird:
  • Fixed Bug #66071 (memory corruption in error handling)
  • PDO_pgsql:
  • Cleaned up code by increasing the requirements to libpq versions providing
  • PQexecParams, PQprepare, PQescapeStringConn, PQescapeByteaConn. According to the release notes that means 8.0.8+ or 8.1.4+.
  • Deprecated PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, an undocument constant effectively equivalent to PDO::ATTR_EMULATE_PREPARES.
  • Added PDO::PGSQL_ATTR_DISABLE_PREPARES constant to execute the queries without preparing them, while still passing parameters separately from the command text using PQexecParams.
  • Pgsql:
  • Read-only access to the socket stream underlying database connections is exposed via a new pg_socket() function to allow read/write polling when
  • establishing asynchronous connections and executing queries in non-blocking applications.
  • Asynchronous connections are now possible using the PGSQL_CONNECT_ASYNC flag in conjunction with a new pg_connect_poll() function and connection polling status constants.
  • New pg_flush() and pg_consume_input() functions added to manually complete non-blocking reads/writes to underlying connection sockets.
  • Session:
  • Remove session_gc() and session_serializer_name() wich were introduced in the first 5.6.0 alpha.
  • SimpleXML:
  • Fixed bug #66084 (simplexml_load_string() mangles empty node name)
  • SQLite:
  • Updated the bundled libsqlite to the version 3.8.3.1
  • XSL:
  • Fixed bug #53965 ( cannot find files with relative paths when loaded with "file://").

New in PHP 5.6.0 Alpha 3 (Apr 3, 2014)

  • Core:
  • Expose get_debug_info class hook as __debugInfo() magic method. (Sara)
  • Implemented unified default encoding
  • RFC: https://wiki.php.net/rfc/default_encoding).
  • Curl:
  • Check for openssl.cafile ini directive when loading CA certs.
  • Remove cURL close policy related constants as these have no effect and are
  • no longer used in libcurl.
  • Fileinfo:
  • Upgraded to libmagic-5.17
  • Fixed bug #66731 (file: infinite recursion). (CVE-2014-1943)
  • FPM:
  • Added clear_env configuration directive to disable clearenv() call
  • GD:
  • Fixed imagettftext to load the correct character map rather than the last one
  • Fixed bug #66714 ( imageconvolution breakage).
  • JSON:
  • Fixed bug #65753 (JsonSerializeable couldn't implement on module
  • OPCache:
  • Added function opcache_is_script_cached(). (Danack)
  • Added information about interned strings usage. (Terry, Julien, Dmitry)
  • Openssl:
  • Fallback to Windows CA cert store for peer verification if no openssl.cafile
  • ini directive or "cafile" SSL context option specified in Windows
  • The openssl.cafile and openssl.capath ini directives introduced in alpha2
  • now have PHP_INI_PERDIR accessibility (was PHP_INI_ALL).
  • New "peer_name" SSL context option replaces "CN_match" (which still works
  • as before but triggers E_DEPRECATED).
  • Fixed segfault when accessing non-existent context for client SNI use
  • Fixed bug #66501 (Add EC key support to php_openssl_is_private_key)
  • Fixed Bug #47030 (add new boolean "verify_peer_name" SSL context option
  • allowing clients to verify cert names separately from the cert itself)
  • "verify_peer_name" is enabled by default for client streams
  • Fixed Bug #65538 ("cafile" SSL context option now supports stream
  • wrappers).
  • New openssl_get_cert_locations() function to aid CA file and peer
  • verification debugging.
  • Encrypted stream wrappers now disable TLS compression by default
  • New "capture_session_meta" SSL context option allows encrypted client and
  • server streams access to negotiated protocol/cipher information
  • New "honor_cipher_order" SSL context option allows servers to prioritize
  • cipher suites of their choosing when negotiating SSL/TLS handshakes
  • New "single_ecdh_use" and "single_dh_use" SSL context options allow for
  • improved forward secrecy in encrypted stream servers.
  • New "dh_param" SSL context option allows stream servers control over
  • the parameters when negotiating DHE cipher suites.
  • New "ecdh_curve" SSL context option allowing stream servers to specify
  • the curve to use when negotiating ephemeral ECDHE ciphers (defaults to
  • NIST P-256)
  • New "rsa_key_size" SSL context option gives stream servers control
  • over the key size (in bits) used for RSA key agreements.
  • Crypto methods for encrypted client and server streams now use
  • bitwise flags for fine-grained protocol support.
  • Added new tlsv1.0 stream wrapper to specify TLSv1 client/server method
  • tls wrapper now negotiates TLSv1, TLSv1.1 or TLSv1.2.
  • Encrypted client streams now enable SNI by default.
  • Encrypted streams now prioritize ephemeral key agreement and high strength
  • ciphers by default.
  • New OPENSSL_DEFAULT_STREAM_CIPHERS constant exposes default cipher
  • list.
  • New STREAM_CRYPTO_METHOD_* constants for enhanced control over the crypto
  • methods negotiated encrypted server/client sessions.
  • Encrypted stream servers now automatically mitigate potential DoS vector
  • arising from client-initiated TLS renegotiation. New "reneg_limit"
  • "reneg_window" and "reneg_limit_callback" SSL context options for custom
  • renegotiation limiting control
  • Pgsql:
  • pg_insert()/pg_select()/pg_update()/pg_delete() are no longer EXPERIMENTAL
  • Impremented FR #25854 Return value for pg_insert should be resource instead of bool
  • Implemented FR #41146 - Add "description" with exteneded flag pg_meta_data()
  • pg_meta_data(resource $conn, string $table [, bool extended])
  • It also made pg_meta_data() return "is enum" always

New in PHP 5.6.0 Alpha 2 (Apr 3, 2014)

  • Core:
  • Added T_POW (**) operator
  • RFC: https://wiki.php.net/rfc/pow-operator)
  • mysqli:
  • Added new function mysqli_get_links_stats() as well as new INI variable
  • mysqli.rollback_on_cached_plink of type bool
  • PCRE:
  • Upgraded to PCRE 8.34.
  • ldap:
  • Added new function ldap_modify_batch().
  • Openssl:
  • Peer certificates now verified by default in client socket operations
  • RFC: https://wiki.php.net/rfc/tls-peer-verification).
  • New openssl.cafile and openssl.capath ini directives.

New in PHP 5.6.0 Alpha 1 (Apr 3, 2014)

  • CLI server:
  • Added some MIME types to the CLI web server.
  • Core:
  • Improved IS_VAR operands fetching.
  • Improved empty string handling. Now ZE uses an interned string instead of
  • allocation new empty string each time.
  • Implemented internal operator overloading
  • RFC: https://wiki.php.net/rfc/operator_overloading_gmp).
  • Made calls from incompatible context issue an E_DEPRECATED warning instead
  • of E_STRICT (phase 1 of RFC: https://wiki.php.net/rfc/incompat_ctx).
  • Uploads equal or greater than 2GB in size are now accepted.
  • Reduced POST data memory usage by 200-300%. Changed INI setting
  • always_populate_raw_post_data to throw a deprecation warning when enabling
  • and to accept -1 for never populating the $HTTP_RAW_POST_DATA global
  • variable, which will be the default in future PHP versions
  • Implemented dedicated syntax for variadic functions
  • RFC: https://wiki.php.net/rfc/variadics).
  • Fixed bug #50333 Improving multi-threaded scalability by using
  • emalloc/efree/estrdup
  • Implemented constant scalar expressions (with support for constants)
  • RFC: https://wiki.php.net/rfc/const_scalar_exprs).
  • Fixed bug #65784 (Segfault with finally).
  • Fixed bug #66509 (copy() arginfo has changed starting from 5.4)
  • cURL:
  • Implemented FR #65646 (re-enable CURLOPT_FOLLOWLOCATION with open_basedir or safe_mode).
  • GMP:
  • Moved GMP to use object as the underlying structure and implemented various
  • improvements based on this.
  • RFC: https://wiki.php.net/rfc/operator_overloading_gmp).
  • Added gmp_root() and gmp_rootrem() functions for calculating nth roots.
  • Hash:
  • Added gost-crypto (CryptoPro S-box) GOST hash algo.
  • JSON:
  • Fixed case part of bug #64874 ("json_decode handles whitespace and
  • case-sensitivity incorrectly")
  • mysqlnd:
  • Disabled flag for SP OUT variables for 5.5+ servers as they are not natively
  • supported by the overlying APIs.
  • OPcache:
  • Added an optimization of class constants and constant calls to some
  • internal functions
  • Added an optimization pass to convert FCALL_BY_NAME into DO_FCALL.
  • Added an optimization pass to merged identical constants (and related cache_slots) in op_array->literals table.
  • Added script level constant replacement optimization pass.
  • Openssl:
  • Added crypto_method option for the ssl stream context.
  • Added certificate fingerprint support.
  • Added explicit TLSv1.1 and TLSv1.2 stream transports.
  • Fixed bug #65729 (CN_match gives false positive).
  • Peer name verification matches SAN DNS names for certs using
  • the Subject Alternative Name x509 extension
  • Fixed segfault when built against OpenSSL>=1.0.1
  • Added SPKAC support.
  • PDO_pgsql:
  • Fixed Bug #42614 (PDO_pgsql: add pg_get_notify support).
  • Fixed Bug #63657 (pgsqlCopyFromFile, pgsqlCopyToArray use Postgres < 7.3
  • syntax).
  • phpdbg:
  • Included phpdbg sapi (RFC: https://wiki.php.net/rfc/phpdbg).
  • pgsql:
  • pg_version() returns full report which obtained by PQparameterStatus().
  • Added pg_lo_truncate().
  • Added 64bit large object support for PostgreSQL 9.3 and later.
  • Session:
  • Fixed Bug #65315 (session.hash_function silently fallback to default md5)
  • Implemented Request #54649 (Create session_serializer_name()).
  • Implemented Request #17860 (Session write short circuit).
  • Implemented Request #20421 (session_abort() and session_reset() function).
  • Implemented Request #11100 (session_gc() function).
  • Standard:
  • Implemented FR #65634 (HTTP wrapper is very slow with protocol_version
  • 1.1).
  • Implemented Change crypt() behavior w/o salt RFC.
  • https://wiki.php.net/rfc/crypt_function_salt
  • Implemented request #49824 (Change array_fill() to allow creating empty
  • array).
  • XMLReader:
  • Fixed bug #55285 (XMLReader::getAttribute/No/Ns methods inconsistency).
  • Zip:
  • update libzip to version 1.11.2.
  • PHP don't use any ilibzip private symbol anymore.
  • new method ZipArchive::setPassword($password).
  • add --with-libzip option to build with system libzip.
  • new methods:
  • ZipArchive::setExternalAttributesName($name, $opsys, $attr [, $flags])
  • ZipArchive::setExternalAttributesIndex($idx, $opsys, $attr [, $flags])
  • ZipArchive::getExternalAttributesName($name, &$opsys, &$attr [, $flags])
  • ZipArchive::getExternalAttributesIndex($idx, &$opsys, &$attr [, $flags])

New in PHP 5.5.11 (Apr 3, 2014)

  • Core:
  • Fixed bug #60602 (proc_open() changes environment array)
  • Allow zero length comparison in substr_compare()
  • cURL:
  • Fixed bug #66109 (Can't reset CURLOPT_CUSTOMREQUEST to default behaviour)
  • Fix compilation on libcurl versions between 7.10.5 and 7.12.2, inclusive
  • Fileinfo: Fixed bug #66946 (fileinfo: extensive backtracking in awk rule regular expression (CVE-2013-7345))
  • FPM: Added clear_env configuration directive to disable clearenv() call
  • GD:
  • Fixed bug #66714 (imageconvolution breakage)
  • Fixed bug #66869 (Invalid 2nd argument crashes imageaffinematrixget)
  • Fixed bug #66887 (imagescale - poor quality of scaled image)
  • Fixed bug #66890 (imagescale segfault)
  • Fixed bug #66893 (imagescale ignore method argument)
  • GMP: Fixed bug #66872 (invalid argument crashes gmp_testbit)
  • Hash: hash_pbkdf2() now works correctly if the $length argument is not specified
  • Intl: Fixed bug #66873 A reproductible crash in UConverter when given invalid encoding
  • Mail: Fixed bug #66535 (Don't add newline after X-PHP-Originating-Script)
  • MySQLi: Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed)
  • OPCache:
  • Added function opcache_is_script_cached()
  • Added information about interned strings usage
  • Openssl: Fixed bug #66833 (Default disgest algo is still MD5, switch to SHA1)
  • SQLite: Updated bundled libsqlite to 3.8.3.1
  • SPL: Added feature #65545 (SplFileObject::fread())

New in PHP 5.5.10 RC1 (Feb 20, 2014)

  • Core:
  • Fixed Request #66574i (Allow multiple paths in php_ini_scanned_path). (Remi)
  • Date:
  • Fixed bug #45528 (Allow the DateTimeZone constructor to accept timezones per offset too). (Derick)
  • Fileinfo:
  • Bug #66731 (file: infinite recursion) (CVE-2014-1943). (Remi)
  • JSON:
  • Fixed bug #65753 (JsonSerializeable couldn't implement on module extension) ([email protected])
  • LDAP:
  • Implemented ldap_modify_batch (https://wiki.php.net/rfc/ldap_modify_batch). (Ondřej Hošek)
  • Openssl:
  • Fixed bug #66501 (Add EC key support to php_openssl_is_private_key). (Mark Zedwood)
  • PCRE:
  • Upgraded to PCRE 8.34. (Anatol)
  • Pgsql:
  • Added warning for dangerous client encoding and remove possible injections for pg_insert()/pg_update()/pg_delete()/pg_select(). (Yasuo)

New in PHP 5.5.7 (Dec 12, 2013)

  • CLI server:
  • Added some MIME types to the CLI web server
  • Implemented FR #65917 (getallheaders() is not supported by the built-in web
  • server) - also implements apache_response_headers()
  • Core:
  • Fixed bug #66094 (unregister_tick_function tries to cast a Closure to a
  • string).
  • OPCache:
  • Fixed bug #66176 (Invalid constant substitution).
  • Fixed bug #65915 (Inconsistent results with require return value).
  • Fixed bug #65559 (Opcache: cache not cleared if changes occur while
  • running).
  • OpenSSL:
  • Fixed memory corruption in openssl_x509_parse() (CVE-2013-6420)
  • readline:
  • Fixed Bug #65714 (PHP cli forces the tty to cooked mode)

New in PHP 5.5.6 (Nov 14, 2013)

  • Core:
  • Improved performance of array_merge() and func_get_args() by eliminating useless copying.
  • Fixed bug #65947 (basename is no more working after fgetcsv in certain situation).
  • Fixed bug #65939 (Space before ";" breaks php.ini parsing).
  • Fixed bug #65911 (scope resolution operator - strange behavior with $this).
  • Fixed bug #65936 (dangling context pointer causes crash).
  • FPM:
  • Changed default listen() backlog to 65535.
  • MySQLi:
  • Fixed bug #66043 (Segfault calling bind_param() on mysqli).
  • OPCache:
  • Increased limit for opcache.max_accelerated_files to 1,000,000.
  • Fixed issue #115 (path issue when using phar).
  • Fixed issue #149 (Phar mount points not working with OPcache enabled).
  • ODBC:
  • Fixed bug #65950 (Field name truncation if the field name is bigger than 32 characters).
  • PDO:
  • Fixed bug #66033 (Segmentation Fault when constructor of PDO statement throws an exception).
  • Fixed bug #65946 (sql_parser permanently converts values bound to strings).
  • Standard:
  • Fixed bug #64760 (var_export() does not use full precision for floating-point numbers).

New in PHP 5.5.5 (Oct 17, 2013)

  • Core:
  • Fixed bug #64979 (Wrong behavior of static variables in closure generators).
  • Fixed bug #65322 (compile time errors won't trigger auto loading).
  • Fixed bug #65821 (By-ref foreach on property access of string offset segfaults).
  • CLI Server:
  • Fixed bug #65633 (built-in server treat some http headers as case-sensitive).
  • Fixed bug #65818 (Segfault with built-in webserver and chunked transfer encoding).
  • Added application/pdf to PHP CLI Web Server mime types
  • Datetime:
  • Fixed bug #64157 (DateTime::createFromFormat() reports confusing error message).
  • Fixed bug #65502 (DateTimeImmutable::createFromFormat returns DateTime).
  • Fixed bug #65548 (Comparison for DateTimeImmutable doesn't work).
  • DBA:
  • Fixed bug #65708 (dba functions cast $key param to string in-place, bypassing copy on write).
  • Filter:
  • Add RFC 6598 IPs to reserved addresses.
  • Fixed bug #64441 (FILTER_VALIDATE_URL rejects fully qualified domain names).
  • FTP:
  • Fixed bug #65667 (ftp_nb_continue produces segfault).
  • GD:
  • Ensure that the defined interpolation method is used with the generic scaling methods.
  • IMAP:
  • Fixed bug #65721 (configure script broken in 5.5.4 and 5.4.20 when enabling imap).
  • OPCache:
  • Fixed bug #65845 (Error when Zend Opcache Optimizer is fully enabled).
  • Fixed bug #65665 (Exception not properly caught when opcache enabled).
  • Fixed bug #65510 (5.5.2 crashes in _get_zval_ptr_ptr_var).
  • Fixed issue #135 (segfault in interned strings if initial memory is too low).
  • Added function opcache_compile_file() to load PHP scripts into cache without execution.
  • Added support for GNU Hurd.
  • Sockets:
  • Fixed bug #65808 (the socket_connect() won't work with IPv6 address).
  • SPL:
  • Fixed bug #64782 (SplFileObject constructor make $context optional / give it a default value).
  • Standard:
  • Fixed bug #61548 content-type must appear at the end of headers for 201 Location to work in http.
  • XMLReader:
  • Fixed bug #51936 Crash with clone XMLReader.
  • Fixed bug #64230 XMLReader does not suppress errors.
  • Build system:
  • Fixed bug #51076 Race condition in shtool's mkdir -p implementation.
  • Fixed bug #62396 'make test' crashes starting with 5.3.14 (missing gzencode()).

New in PHP 5.5.3 (Aug 23, 2013)

  • Fixes a bug in the patch for CVE-2013-4248 in OpenSSL module and compile failure with ZTS enabled in PHP 5.4

New in PHP 5.5.2 (Aug 20, 2013)

  • Core:
  • Fixed bug #65372 (Segfault in gc_zval_possible_root when return reference fails).
  • Fixed value of FILTER_SANITIZE_FULL_SPECIAL_CHARS constant (previously was erroneously set to FILTER_SANITIZE_SPECIAL_CHARS value).
  • Fixed bug #65304 (Use of max int in array_sum).
  • Fixed bug #65291 (get_defined_constants() causes PHP to crash in a very limited case).
  • Fixed bug #62691 (solaris sed has no -i switch).
  • Fixed bug #61345 (CGI mode - make install don't work).
  • Fixed bug #61268 (--enable-dtrace leads make to clobber Zend/zend_dtrace.d).
  • DOM:
  • Added flags option to DOMDocument::schemaValidate() and DOMDocument::schemaValidateSource(). Added LIBXML_SCHEMA_CREATE flag.
  • OPcache:
  • Added opcache.restrict_api configuration directive that may limit usage of OPcahce API functions only to patricular script(s).
  • Added support for glob symbols in blacklist entries (?, *, **).
  • Fixed bug #65338 (Enabling both php_opcache and php_wincache AVs on shutdown).
  • Openssl:
  • Fixed handling null bytes in subjectAltName (CVE-2013-4248).
  • PDO_mysql:
  • Fixed bug #65299 (pdo mysql parsing errors).
  • Phar:
  • Fixed bug #65028 (Phar::buildFromDirectory creates corrupt archives for some specific contents).
  • Pgsql:
  • Fixed bug #62978 (Disallow possible SQL injections with pg_select()/pg_update() /pg_delete()/pg_insert()).
  • Fixed bug #65336 (pg_escape_literal/identifier() silently returns false).
  • Sessions:
  • Implemented strict sessions RFC (https://wiki.php.net/rfc/strict_sessions) which protects against session fixation attacks and session collisions (CVE-2011-4718).
  • Fixed possible buffer overflow under Windows. Note: Not a security fix.
  • Changed session.auto_start to PHP_INI_PERDIR.
  • SOAP:
  • Fixed bug #65018 (SoapHeader problems with SoapServer).
  • SPL:
  • Fixed bug #65328 (Segfault when getting SplStack object Value).
  • Added RecursiveTreeIterator setPostfix and getPostifx methods.
  • Fixed bug #61697 (spl_autoload_functions returns lambda functions incorrectly).
  • Streams:
  • Fixed bug #65268 (select() implementation uses outdated tick API).

New in PHP 5.5.1 (Jul 19, 2013)

  • Core:
  • Fixed bug #65254 (Exception not catchable when exception thrown in autoload with a namespace).
  • Fixed bug #65088 (Generated configure script is malformed on OpenBSD).
  • Fixed bug #65108 (is_callable() triggers Fatal Error).
  • Fixed bug #65035 (yield / exit segfault).
  • Fixed bug #65161 (Generator + autoload + syntax error = segfault).
  • Fixed bug #65226 (chroot() does not get enabled).
  • hex2bin() raises E_WARNING for invalid hex string.
  • OPcache:
  • Fixed bug #64827 (Segfault in zval_mark_grey (zend_gc.c)).
  • OPcache is now compatible with LiteSpeed SAPI.
  • CGI:
  • Fixed bug #65143 (Missing php-cgi man page).
  • CLI server:
  • Fixed bug #65066 (Cli server not responsive when responding with 422 http status code).
  • DateTime:
  • Fixed bug #65184 (strftime() returns insufficient-length string under multibyte locales).
  • GD:
  • Fixed bug #65070 (bgcolor does not use the same format as the input image with imagerotate).
  • Fixed bug #65060 (imagecreatefrom... crashes with user streams).
  • Fixed bug #65084 (imagecreatefromjpeg fails with URL).
  • Fix gdImageCreateFromWebpCtx and use same logic to load WebP image that other formats.
  • Intl:
  • Add IntlCalendar::setMinimalDaysInFirstWeek()/intlcal_set_minimal_days_in_first_week().
  • Fixed trailing space in name of constant IntlCalendar::FIELD_FIELD_COUNT.
  • Fixed bug #62759 (Buggy grapheme_substr() on edge case).
  • Fixed bug #61860 (Offsets may be wrong for grapheme_stri* functions).
  • OCI8:
  • Bump PECL package info version check to allow PECL installs with PHP 5.5+.
  • PDO:
  • Allowed PDO_OCI to compile with Oracle Database 12c client libraries.
  • Pgsql:
  • pg_unescape_bytea() raises E_WARNING for invalid inputs.
  • Phar:
  • Fixed bug #65142 (Missing phar man page).
  • Session:
  • Added optional create_sid() argument to session_set_save_handler(), SessionHandler and new SessionIdInterface.
  • Sockets:
  • #63472Setting SO_BINDTODEVICE with socket_set_option.
  • Allowed specifying paths in the abstract namespace for the functions socket_bind(), socket_connect() and socket_sendmsg().
  • Fixed bug #65260sendmsg() ancillary data construction for SCM_RIGHTS is faulty.
  • SPL:
  • Fixed bug #65136RecursiveDirectoryIterator segfault.
  • Fixed bug #61828Memleak when calling Directory(Recursive)Iterator/Spl(Temp)FileObject ctor twice.
  • CGI/FastCGI SAPI:
  • Added PHP_FCGI_BACKLOG, overrides the default listen backlog.

New in PHP 5.5.0 (Jun 21, 2013)

  • Added generators and coroutines.
  • Added the finally keyword.
  • Added a simplified password hashing API.
  • Added support for constant array/string dereferencing.
  • Added scalar class name resolution via ::class.
  • Added support for using empty() on the result of function calls and other expressions.
  • Added support for non-scalar Iterator keys in foreach.
  • Added support for list() constructs in foreach statements.
  • Added the Zend OPcache extension for opcode caching.
  • The GD library has been upgraded to version 2.1 adding new functions and improving existing functionality.
  • A lot more improvements and fixes.
  • Changes that affect compatibility:
  • PHP logo GUIDs have been removed.
  • Windows XP and 2003 support dropped.
  • Case insensitivity is no longer locale specific. All case insensitive matching for function, class and constant names is now performed in a locale independent manner according to ASCII rules.

New in PHP 5.4.16 (Jun 7, 2013)

  • Core:
  • Fixed bug #64879 (Heap based buffer overflow in quoted_printable_encode, CVE-2013-2110).
  • Fixed bug #64853 (Use of no longer available ini directives causes crash on TS build).
  • Fixed bug #64729 (compilation failure on x32).
  • Fixed bug #64720 (SegFault on zend_deactivate).
  • Fixed bug #64660 (Segfault on memory exhaustion within function definition).
  • Calendar:
  • Fixed bug #64895 (Integer overflow in SndToJewish).
  • Fileinfo:
  • Fixed bug #64830 (mimetype detection segfaults on mp3 file).
  • FPM:
  • Ignore QUERY_STRING when sent in SCRIPT_FILENAME.
  • Fixed some possible memory or resource leaks and possible null dereference detected by code coverity scan.
  • Log a warning when a syscall fails.
  • Add --with-fpm-systemd option to report health to systemd, and systemd_interval option to configure this. The service can now use Type=notify in the systemd unit file.
  • MySQLi
  • Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed).
  • Phar
  • Fixed bug #64214 (PHAR PHPTs intermittently crash when run on DFS, SMB or with non std tmp dir).
  • SNMP:
  • Fixed bug #64765 (Some IPv6 addresses get interpreted wrong).
  • Fixed bug #64159 (Truncated snmpget).
  • Streams:
  • Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64).
  • Zend Engine:
  • Fixed bug #64821 (Custom Exceptions crash when internal properties overridden).

New in PHP 5.4.15 (May 9, 2013)

  • Core:
  • Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: segfault).
  • Fixed bug #64458 (dns_get_record result with string of length -1).
  • Fixed bug #64433 (follow_location parameter of context is ignored for most response codes).
  • Fixed bug #47675 (fd leak on Solaris).
  • Fixed bug #64577 (fd leak on Solaris).
  • Fileinfo:
  • Upgraded libmagic to 5.14.
  • Streams:
  • Fixed Windows x64 version of stream_socket_pair() and improved error handling.
  • Zip:
  • Fixed bug #64342 (ZipArchive::addFile() has to check for file existence).

New in PHP 5.4.14 (Apr 11, 2013)

  • Core:
  • Fixed bug #64529 (Ran out of opcode space).
  • Fixed bug #64515 (Memoryleak when using the same variablename two times in function declaration).
  • Fixed bug #64432 (more empty delimiter warning in strX methods).
  • Fixed bug #64417 (ArrayAccess::&offsetGet() in a trait causes fatal error).
  • Fixed bug #64370 (microtime(true) less than $_SERVER['REQUEST_TIME_FLOAT']).
  • Fixed bug #64239 (Debug backtrace changed behavior since 5.4.10 or 5.4.11).
  • Fixed bug #63976 (Parent class incorrectly using child constant in class property).
  • Fixed bug #63914 (zend_do_fcall_common_helper_SPEC does not handle exceptions properly).
  • Fixed bug #62343 (Show class_alias In get_declared_classes()).
  • PCRE:
  • Merged PCRE 8.32.
  • SNMP:
  • Fixed bug #61981 (OO API, walk: $suffix_as_key is not working correctly).
  • Zip:
  • Fixed bug #64452 (Zip crash intermittently).

New in PHP 5.5.0 Alpha 6 (Mar 15, 2013)

  • Core:
  • Fixed bug #49348 (Uninitialized ++$foo->bar; does not cause a notice).
  • Sockets:
  • Fixed bug #64287 (sendmsg/recvmsg shutdown handler causes segfault).
  • PCRE:
  • Merged PCRE 8.32.
  • DateTime:
  • Fixed bug #64359 (strftime crash with VS2012).

New in PHP 5.4.12 (Feb 22, 2013)

  • Core:
  • Fixed bug #64099 (Wrong TSRM usage in zend_register_class alias).
  • Fixed bug #64011 (get_html_translation_table() output incomplete with HTML_ENTITIES and ISO-8859-1).
  • Fixed bug #63982 (isset() inconsistently produces a fatal error on protected property).
  • Fixed bug #63943 (Bad warning text from strpos() on empty needle).
  • Fixed bug #63899 (Use after scope error in zend_compile).
  • Fixed bug #63893 (Poor efficiency of strtr() using array with keys of very different length).
  • Fixed bug #63882 (zend_std_compare_objects crash on recursion).
  • Fixed bug #63462 (Magic methods called twice for unset protected properties).
  • Fixed bug #62524 (fopen follows redirects for non-3xx statuses).
  • Support BITMAPV5HEADER in getimagesize().
  • Date:
  • Fixed bug #63699 (Performance improvements for various ext/date functions).
  • Fixed bug #55397 Comparsion of incomplete DateTime causes SIGSEGV.
  • FPM:
  • Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11).
  • Litespeed:
  • Fixed bug #63228 (-Werror=format-security error in lsapi code).
  • sqlite3:
  • Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren't using sqlite3_*_int64 API).
  • PDO_OCI
  • Fixed bug #57702 (Multi-row BLOB fetches).
  • Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long testsuite).
  • PDO_sqlite:
  • Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even on 64bit builds in pdo_sqlite).

New in PHP 5.4.10 (Dec 20, 2012)

  • Core:
  • Fixed bug #63635 (Segfault in gc_collect_cycles).
  • Fixed bug #63512 (parse_ini_file() with INI_SCANNER_RAW removes quotes from value).
  • Fixed bug #63468 (wrong called method as callback with inheritance).
  • Fixed bug #63451 (config.guess file does not have AIX 7 defined, shared objects are not created).
  • Fixed bug #61557 (Crasher in tt-rss backend.php).
  • Fixed bug #61272 (ob_start callback gets passed empty string).
  • Date:
  • bug #63666 (Poor date() performance).
  • Fixed bug #63435 (Datetime::format('u') sometimes wrong by 1 microsecond).
  • Imap:
  • Fixed bug #63126 (DISABLE_AUTHENTICATOR ignores array).
  • Json:
  • Fixed bug #63588 (use php_next_utf8_char and remove duplicate implementation).
  • MySQLi:
  • Fixed bug #63361 (missing header).
  • MySQLnd:
  • Fixed bug #63398 (Segfault when polling closed link).
  • Fileinfo:
  • Fixed bug #63590 (Different results in TS and NTS under Windows).
  • FPM:
  • Fixed bug #63581 Possible null dereference and buffer overflow.
  • Pdo_sqlite:
  • Fixed bug #63149 getColumnMeta should return the table name when system SQLite used.
  • Apache2 Handler SAPI:
  • Enabled Apache 2.4 configure option for Windows.
  • Reflection:
  • Fixed bug #63614 (Fatal error on Reflection).
  • SOAP:
  • Fixed bug #63271 (SOAP wsdl cache is not enabled after initial requests).
  • Sockets:
  • Fixed bug #49341 (Add SO_REUSEPORT support for socket_set_option()).

New in PHP 5.4.9 (Nov 23, 2012)

  • Core:
  • Fixed bug #63305 (zend_mm_heap corrupted with traits).
  • Fixed bug #63369 ((un)serialize() leaves dangling pointers, causes crashes).
  • Fixed bug #63241 (PHP fails to open Windows deduplicated files).
  • daniel dot stelter-gliese at innogames dot de)
  • Fixed bug #62444 (Handle leak in is_readable on windows).
  • Curl:
  • Fixed bug #63363 (Curl silently accepts boolean true for SSL_VERIFYHOST).
  • Patch by John Jawed GitHub PR #221
  • Fileinfo:
  • Fixed bug #63248 (Load multiple magic files from a directory under Windows).
  • Libxml:
  • Fixed bug #63389 (Missing context check on libxml_set_streams_context()
  • causes memleak).
  • Mbstring:
  • Fixed bug #63447 (max_input_vars doesn't filter variables when
  • mbstring.encoding_translation = On).
  • OCI8:
  • Fixed bug #63265 (Add ORA-00028 to the PHP_OCI_HANDLE_ERROR macro)
  • PCRE:
  • Fixed bug #63180 (Corruption of hash tables).
  • Fixed bug #63055 (Segfault in zend_gc with SF2 testsuite).
  • Fixed bug #63284 (Upgrade PCRE to 8.31).
  • PDO:
  • Fixed bug #63235 (buffer overflow in use of SQLGetDiagRec).
  • PDO_pgsql:
  • Fixed bug #62593 (Emulate prepares behave strangely with PARAM_BOOL).
  • Phar:
  • Fixed bug #63297 (Phar fails to write an openssl based signature).
  • Streams:
  • Fixed bug #63240 (stream_get_line() return contains delimiter string).
  • Reflection:
  • Fixed bug #63399 (ReflectionClass::getTraitAliases() incorrectly resolves
  • traitnames).

New in PHP 5.4.7 (Sep 13, 2012)

  • Core:
  • Fixed bug (segfault while build with zts and GOTO vm-kind). (Laruence)
  • Fixed bug #62955 (Only one directive is loaded from "Per Directory Values"
  • Windows registry).
  • Fixed bug #62844 (parse_url() does not recognize //). (Andrew Faulds).
  • Fixed bug #62829 (stdint.h included on platform where HAVE_STDINT_H is not
  • set).
  • Fixed bug #62763 (register_shutdown_function and extending class).
  • Fixed bug #62725 (Calling exit() in a shutdown function does not return
  • the exit value).
  • Fixed bug #62744 (dangling pointers made by zend_disable_class).
  • Fixed bug #62716 (munmap() is called with the incorrect length).
  • Fixed bug #62358 (Segfault when using traits a lot).
  • Fixed bug #62328 (implementing __toString and a cast to string fails)
  • Fixed bug #51363 (Fatal error raised by var_export() not caught by error
  • handler).
  • Fixed bug #40459 (Stat and Dir stream wrapper methods do not call
  • constructor).
  • CURL:
  • Fixed bug #62912 (CURLINFO_PRIMARY_* AND CURLINFO_LOCAL_* not exposed).
  • Fixed bug #62839 (curl_copy_handle segfault with CURLOPT_FILE).
  • DateTime:
  • Fixed bug #62852 (Unserialize invalid DateTime causes crash).
  • Intl:
  • Fixed Spoofchecker not being registered on ICU 49.1.
  • Fix bug #62933 (ext/intl compilation error on icu 3.4.1).
  • Fix bug #62915 (defective cloning in several intl classes).
  • Installation:
  • Fixed bug #62460 (php binaries installed as binary.dSYM).
  • PCRE:
  • Fixed bug #55856 (preg_replace should fail on trailing garbage).
  • reg dot php at alf dot nu)
  • PDO:
  • Fixed bug #62685 (Wrong return datatype in PDO::inTransaction()).
  • Reflection:
  • Fixed bug #62892 (ReflectionClass::getTraitAliases crashes on importing
  • trait methods as private). (Felipe)
  • Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong
  • result). (Laruence)
  • Session:
  • Fixed bug (segfault due to retval is not initialized).
  • Fixed bug (segfault due to PS(mod_user_implemented) not be reseted
  • when close handler call exit).
  • SPL:
  • Fixed bug #62904 (Crash when cloning an object which inherits SplFixedArray)
  • Laruence)
  • Implemented FR #62840 (Add sort flag to ArrayObject::ksort).
  • Standard:
  • Fixed bug #62836 (Seg fault or broken object references on unserialize()).
  • FPM:
  • Merged PR 121 by minitux to add support for slow request counting on PHP
  • FPM status page. (Lars)

New in PHP 5.3.16 (Sep 13, 2012)

  • Core:
  • Fixed bug #62763 (register_shutdown_function and extending class).
  • Fixed bug #62744 (dangling pointers made by zend_disable_class).
  • Fixed bug #62716 (munmap() is called with the incorrect length).
  • Fixed bug #62460 (php binaries installed as binary.dSYM).
  • Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php).
  • CURL:
  • Fixed bug #62839 (curl_copy_handle segfault with CURLOPT_FILE).
  • Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false).
  • DateTime
  • Fixed bug #62500 (Segfault in DateInterval class when extended).
  • Enchant
  • Fixed bug #62838 (enchant_dict_quick_check() destroys zval, but fails to initialize it).
  • PDO:
  • Fixed bug #62685 (Wrong return datatype in PDO::inTransaction()).
  • Reflection:
  • Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong result).
  • Session:
  • Fixed bug (segfault due to retval is not initialized).
  • SPL:
  • Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault).

New in PHP 5.4.6 (Aug 16, 2012)

  • CLI Server:
  • Implemented FR #62700 (have the console output 'Listening on http://localhost:8000').
  • Core:
  • Fixed bug #62661 (Interactive php-cli crashes if include() is used in auto_prepend_file).
  • Fixed bug #62653: (unset($array[$float]) causes a crash).
  • Fixed bug #62565 (Crashes due non-initialized internal properties_table).
  • Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php).
  • CURL:
  • Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false).
  • DateTime:
  • Fixed Bug #62500 (Segfault in DateInterval class when extended).
  • Fileinfo:
  • Fixed bug #61964 (finfo_open with directory causes invalid free).
  • Intl:
  • Fixed bug #62564 (Extending MessageFormatter and adding property causes crash).
  • MySQLnd:
  • Fixed bug #62594 (segfault in mysqlnd_res_meta::set_mode).
  • readline:
  • Fixed bug #62612 (readline extension compilation fails with sapi / cli / cli.h: No such file).
  • Reflection:
  • Implemented FR #61602 (Allow access to name of constant used as default value).
  • SimpleXML:
  • Implemented FR #55218 Get namespaces from current node.
  • SPL:
  • Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault).
  • Fixed bug #61527 (ArrayIterator gives misleading notice on next() when moved to the end).
  • Streams:
  • Fixed bug #62597 (segfault in php_stream_wrapper_log_error with ZTS build).
  • Zlib:
  • Fixed bug #55544 (ob_gzhandler always conflicts with zlib.output_compression).

New in PHP 5.4.5 (Jul 19, 2012)

  • Core:
  • Fixed bug #62443 (Crypt SHA256/512 Segfaults With Malformed
  • Salt).
  • Fixed bug #62432 (ReflectionMethod random corrupt memory on high
  • concurrent).
  • Fixed bug #62373 (serialize() generates wrong reference to the object).
  • Fixed bug #62357 (compile failure: (S) Arguments missing for built-in
  • function __memcmp).
  • Fixed bug #61998 (Using traits with method aliases appears to result in
  • crash during execution).
  • Fixed bug #51094 (parse_ini_file() with INI_SCANNER_RAW cuts a value that
  • includes a semi-colon).
  • Fixed potential overflow in _php_stream_scandir (CVE-2012-2688).
  • EXIF:
  • Fixed information leak in ext exif
  • FPM:
  • Fixed bug #62205 (php-fpm segfaults (null passed to strstr)).
  • Fixed bug #62160 (Add process.priority to set nice(2) priorities).
  • Fixed bug #62153 (when using unix sockets, multiples FPM instances
  • Fixed bug #62033 (php-fpm exits with status 0 on some failures to start).
  • (fat)
  • Fixed bug #61839 (Unable to cross-compile PHP with --enable-fpm).
  • Fixed bug #61835 (php-fpm is not allowed to run as root).
  • Fixed bug #61295 (php-fpm should not fail with commented 'user'
  • Fixed bug #61218 (FPM drops connection while receiving some binary values
  • in FastCGI requests).
  • Fixed bug #61045 (fpm don't send error log to fastcgi clients).
  • for non-root start). (fat)
  • Fixed bug #61026 (FPM pools can listen on the same address).
  • can be launched without errors).
  • Iconv:
  • Fix bug #55042 (Erealloc in iconv.c unsafe).
  • Intl:
  • Fixed bug #62083 (grapheme_extract() memory leaks).
  • ResourceBundle constructor now accepts NULL for the first two arguments.
  • Fixed bug #62081 (IntlDateFormatter constructor leaks memory when called
  • twice).
  • Fixed bug #62070 (Collator::getSortKey() returns garbage).
  • Fixed bug #62017 (datefmt_create with incorrectly encoded timezone leaks
  • pattern).
  • Fixed bug #60785 (memory leak in IntlDateFormatter constructor).
  • JSON:
  • Fixed bug #61359 (json_encode() calls too many reallocs).
  • libxml:
  • Fixed bug #62266 (Custom extension segfaults during xmlParseFile with FPM
  • SAPI).
  • Phar:
  • Fixed bug #62227 (Invalid phar stream path causes crash).
  • Readline:
  • Fixed bug #62186 (readline fails to compile - void function should not
  • return a value).
  • Reflection:
  • Fixed bug #62384 (Attempting to invoke a Closure more than once causes
  • segfault).
  • Fixed bug #62202 (ReflectionParameter::getDefaultValue() memory leaks
  • with constant).
  • Sockets:
  • Fixed bug #62025 (__ss_family was changed on AIX 5.3).
  • SPL:
  • Fixed bug #62433 (Inconsistent behavior of RecursiveDirectoryIterator to
  • dot files).
  • Fixed bug #62262 (RecursiveArrayIterator does not implement Countable).
  • XML Writer:
  • Fixed bug #62064 (memory leak in the XML Writer module).
  • Zip:
  • Upgraded libzip to 0.10.1

New in PHP 5.4.4 (Jun 14, 2012)

  • The release fixes multiple security issues: A weakness in the DES implementation of crypt and a heap overflow issue in the phar extension
  • PHP 5.4.4 and PHP 5.3.14 fixes over 30 bugs. Please note that the use of php://fd streams is now restricted to the CLI SAPI

New in PHP 5.4.3 (May 9, 2012)

  • PHP 5.4.3 fixes a buffer overflow vulnerability in the apache_request_headers() (CVE-2012-2329).

New in PHP 5.4.2 (May 4, 2012)

  • There is a vulnerability in certain CGI-based setups (Apache+mod_php and nginx+php-fpm are not affected) that has gone unnoticed for at least 8 years. If you are using Apache mod_cgi to run PHP you may be vulnerable. To see if you are, just add ?-s to the end of any of your URLs. If you see your source code, you are vulnerable. If your site renders normally, you are not.
  • To fix this, update to PHP 5.3.12 or PHP 5.4.2.

New in PHP 5.4.1 (Apr 27, 2012)

  • CLI Server:
  • Fixed bug #61461 (missing checks around malloc() calls).
  • Implemented #60850 (Built in web server does not set $_SERVER['SCRIPT_FILENAME'] when using router).
  • Core:
  • Fixed crash in ZTS using same class in many threads.
  • Fixed bug #61374 (html_entity_decode tries to decode code points that don't exist in ISO-8859-1).
  • Fixed bug #61225 (Incorrect lexing of 0b00*+).
  • Fixed bug #61106 (Segfault when using header_register_callback).
  • Fixed bug #61052 (Missing error check in trait 'insteadof' clause).
  • Fixed bug #61011 (Crash when an exception is thrown by __autoload accessing a static property).
  • Fixed bug #60978 (exit code incorrect).
  • Fixed bug #60911 (Confusing error message when extending traits).
  • Fixed bug #60717 (Order of traits in use statement can cause a fatal error).
  • Fixed bug #60573 (type hinting with "self" keyword causes weird errors).
  • Fileinfo
  • Fix fileinfo test problems.
  • Intl:
  • Fixed bug #61487 (Incorrent bounds checking in grapheme_strpos).
  • mbstring:
  • MFH mb_ereg_replace_callback() for security enhancements.
  • mysqlnd:
  • Fixed bug #60948 (mysqlnd FTBFS when -Wformat-security is enabled).
  • Standard:
  • Fixed memory leak in substr_replace.
  • Make max_file_uploads ini directive settable outside of php.
  • Fixed bug #61409 (Bad formatting on phpinfo()).
  • Fixed bug #60222 (time_nanosleep() does validate input params).
  • Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths).

New in PHP 5.3.11 (Apr 27, 2012)

  • Core:
  • Fixed bug #61650 (ini parser crashes when using ${xxxx} ini variables (without apache2)).
  • Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes).
  • Fixed bug #61165 (Segfault - strip_tags()).
  • Fixed bug #61095 (Incorect lexing of 0x00*+).
  • Fixed bug #61087 (Memory leak in parse_ini_file when specifying invalid scanner mode).
  • Fixed bug #61072 (Memory leak when restoring an exception handler).
  • Fixed bug #61058 (array_fill leaks if start index is PHP_INT_MAX).
  • Fixed bug #61000 (Exceeding max nesting level doesn't delete numerical vars).
  • Fixed bug #60895 (Possible invalid handler usage in windows random functions).
  • Fixed bug #60825 (Segfault when running symfony 2 tests).
  • Fixed bug #60801 (strpbrk() mishandles NUL byte).
  • Fixed bug #60569 (Nullbyte truncates Exception $message).
  • Fixed bug #60227 (header() cannot detect the multi-line header with CR).
  • Fixed bug #60222 (time_nanosleep() does validate input params).
  • Fixed bug #54374 (Insufficient validating of upload name leading to corrupted $_FILES indices). (CVE-2012-1172).
  • Fixed bug #52719 (array_walk_recursive crashes if third param of the function is by reference).
  • Improve performance of set_exception_handler while doing reset.
  • Fixed bug #51860 (Include fails with toplevel symlink to /).
  • DOM:
  • Added debug info handler to DOM objects.
  • FPM:
  • Fixed bug #61430 (Transposed memset() params in sapi/fpm/fpm/fpm_shm.)
  • Fixed bug #60811 (php-fpm compilation problem).
  • Fileinfo:
  • Upgraded libmagic to 5.
  • Fixed bug #61565 where php_stream_open_wrapper_ex tries to open a directory descriptor under windows.
  • Fixed bug #61566 failure caused by the posix lseek and read versions under windows in cdf_read().
  • Fixed bug #61173 (Unable to detect error from finfo constructor).
  • Firebird Database extension (ibase)
  • Fixed bug #60802 (ibase_trans() gives segfault when passing params).
  • Ibase
  • Fixed bug #60947 (Segmentation fault while executing ibase_db_info).
  • Installation:
  • Fixed bug #61172 (Add Apache 2.4 support).
  • mysqli:
  • Fixed bug #61003 (mysql_stat() require a valid connection).
  • PDO_mysql:
  • Fixed bug #61207 (PDO::nextRowset() after a multi-statement query doesn't always work).
  • Fixed bug #61194 (PDO should export compression flag with myslqnd).
  • PDO_odbc:
  • Fixed bug #61212 (PDO ODBC Segfaults on SQL_SUCESS_WITH_INFO).
  • PDO_pgsql:
  • Fixed bug #61267 (pdo_pgsql's PDO::exec() returns the number of SELECTed rows on postgresql >= 9).
  • PDO_Sqlite extension
  • Add createCollation support.
  • pgsql:
  • Fixed bug #60718 (Compile problem with libpq (PostgreSQL 7.3 or less).
  • Phar:
  • Fixed bug #61184 (Phar::webPhar() generates headers with trailing NUL bytes).
  • Readline:
  • Fixed bug #61088 (Memory leak in readline_callback_handler_install).
  • Add open_basedir checks to readline_write_history and readline_read_history.
  • Reflection"
  • Fixed bug #61388 (ReflectionObject:getProperties() issues invalid reads when get_properties returns a hash table with (inaccessible) dynamic numeric properties).
  • Fixed bug #60968 (Late static binding doesn't work with ReflectionMethod::invokeArgs()).
  • Session:
  • Fixed bug #60860 (session.save_handler=user without defined function core dumps).
  • Fixed bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()).
  • SOAP:
  • Fixed bug #61423 (gzip compression fails).
  • Fixed bug #60887 (SoapClient ignores user_agent option and sends no User-Agent header).
  • Fixed bug #60842, Fixed bug #51775 (Chunked response parsing error when chunksize length line is > 10 bytes).
  • Fixed bug #49853 (Soap Client stream context header option ignored).
  • SPL:
  • Fixed memory leak when calling SplFileInfo's constructor twice.
  • Fixed bug #61418 (Segmentation fault when DirectoryIterator's or FilesystemIterator's iterators are requested more than once without having had its dtor callback called in between).
  • Fixed bug #61347 (inconsistent isset behavior of Arrayobject).
  • Fixed bug #61326 (ArrayObject comparison).
  • SQLite3 extension
  • Add createCollation() method.
  • Streams:
  • Fixed bug #61371 (stream_context_create() causes memory leaks on use streams_socket_create).
  • Fixed bug #61253 (Wrappers opened with errors concurrency problem on ZTS).
  • Fixed bug #61115 (stream related segfault on fatal error in php_stream_context_link).
  • Fixed bug #60817 (stream_get_line() reads from stream even when there is already sufficient data buffered). stream_get_line() now behaves more like fgets(), as is documented.
  • Further fix for bug Fixed bug #60455 (stream_get_line misbehaves if EOF is not detected together with the last read).
  • Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths).
  • Tidy:
  • Fixed bug #54682 (tidy null pointer dereference).
  • XMLRPC:
  • Fixed bug #61264 (xmlrpc_parse_method_descriptions leaks temporary variable).
  • Fixed bug #61097 (Memory leak in xmlrpc functions copying zvals).
  • Zlib:
  • Fixed bug #61306 (initialization of global inappropriate for ZTS).
  • Fixed bug #61287 (A particular string fails to decompress).
  • Fixed bug #61139 (gzopen leaks when specifying invalid mode).

New in PHP 5.4.0 (Mar 3, 2012)

  • autoconf 2.59+ is now supported (and required) for generating the configure script with ./buildconf. Autoconf 2.60+ is desirable otherwise the configure help order may be incorrect.
  • Removed legacy features:
  • break/continue $var syntax.
  • Safe mode and all related ini options.
  • register_globals and register_long_arrays ini options.
  • import_request_variables().
  • allow_call_time_pass_reference.
  • define_syslog_variables ini option and its associated function.
  • highlight.bg ini option.
  • Session bug compatibility mode (session.bug_compat_42 and session.bug_compat_warn ini options).
  • session_is_registered(), session_register() and session_unregister() functions.
  • y2k_compliance ini option.
  • magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase ini options. get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return false, set_magic_quotes_runtime raises an E_CORE_ERROR.
  • Removed support for putenv("TZ=..") for setting the timezone.
  • Removed the timezone guessing algorithm in case the timezone isn't set with date.timezone or date_default_timezone_set(). Instead of a guessed timezone, "UTC" is now used instead.
  • Moved extensions to PECL:
  • ext/sqlite. (Note: the ext/sqlite3 and ext/pdo_sqlite extensions are not affected)
  • General improvements:
  • Added short array syntax support ([1,2,3]), see UPGRADING guide for full details.
  • Added binary numbers format (0b001010).
  • Added support for Class::{expr}() syntax.
  • Added multibyte support by default. Previously php had to be compiled with enable-zend-multibyte. Now it can be enabled or disabled through zend.multibyte directive in php.ini.
  • Removed compile time dependency from ext/mbstring.
  • Added support for Traits.
  • Added closure $this support back.
  • Added array dereferencing support.
  • Added callable typehint.
  • Added indirect method call through array. #47160.
  • Added DTrace support.
  • Added class member access on instantiation (e.g. (new foo)->bar()) support.
  • is now always available regardless of the short_open_tag setting.
  • Implemented Zend Signal Handling (configurable option enable-zend-signals, off by default):
  • Improved output layer, see README.NEW-OUTPUT-API for internals.
  • Improved unix build system to allow building multiple PHP binary SAPIs and one SAPI module the same time. #53271, #52419.
  • Implemented closure rebinding as parameter to bindTo.
  • Improved the warning message of incompatible arguments.
  • Improved ternary operator performance when returning arrays.
  • Changed error handlers to only generate docref links when the docref_root INI setting is not empty.
  • Changed silent conversion of array to string to produce a notice.
  • Changed default value of "default_charset" php.ini option from ISO-8859-1 to UTF-8.
  • Changed silent casting of null/''/false into an Object when adding a property into a warning.
  • Changed E_ALL to include E_STRICT.
  • Disabled windows CRT warning by default, can be enabled again using the ini directive windows_show_crt_warnings.
  • Fixed bug #55378: Binary number literal returns float number though its value is small enough.
  • Improved Zend Engine memory usage:
  • Improved parse error messages.
  • Replaced zend_function.pass_rest_by_reference by ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags.
  • Replaced zend_function.return_reference by ZEND_ACC_RETURN_REFERENCE in zend_function.fn_flags.
  • Removed zend_arg_info.required_num_args as it was only needed for internal functions. Now the first arg_info for internal functions (which has special meaning) is represented by zend_internal_function_info structure.
  • Moved zend_op_array.size, size_var, size_literal, current_brk_cont, backpatch_count into CG(context) as they are used only during compilation.
  • Moved zend_op_array.start_op into EG(start_op) as it's used only for 'interactive' execution of single top-level op-array.
  • Replaced zend_op_array.done_pass_two by ZEND_ACC_DONE_PASS_TWO in zend_op_array.fn_flags.
  • op_array.vars array is trimmed (reallocated) during pass_two.
  • Replaced zend_class_entry.constants_updated by ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags.
  • Reduced the size of zend_class_entry by sharing the same memory space by different information for internal and user classes. See zend_class_entry.info union.
  • Reduced size of temp_variable.
  • Improved Zend Engine, performance tweaks and optimizations:
  • Inlined most probable code-paths for arithmetic operations directly into executor.
  • Eliminated unnecessary iterations during request startup/shutdown.
  • Changed $GLOBALS into a JIT autoglobal, so it's initialized only if used. (this may affect opcode caches!)
  • Improved performance of @ (silence) operator.
  • Simplified string offset reading. $str[1][0] is now a legal construct.
  • Added caches to eliminate repeatable run-time bindings of functions, classes, constants, methods and properties.
  • Added concept of interned strings. All strings constants known at compile time are allocated in a single copy and never changed.
  • ZEND_RECV now always has IS_CV as its result.
  • ZEND_CATCH now has to be used only with constant class names.
  • ZEND_FETCH_DIM_? may fetch array and dimension operands in different order.
  • Simplified ZEND_FETCH_*_R operations. They can't be used with the EXT_TYPE_UNUSED flag any more. This is a very rare and useless case. ZEND_FREE might be required after them instead.
  • Split ZEND_RETURN into two new instructions ZEND_RETURN and ZEND_RETURN_BY_REF.
  • Optimized access to global constants using values with pre-calculated hash_values from the literals table.
  • Optimized access to static properties using executor specialization. A constant class name may be used as a direct operand of ZEND_FETCH_* instruction without previous ZEND_FETCH_CLASS.
  • zend_stack and zend_ptr_stack allocation is delayed until actual usage.
  • Other improvements to Zend Engine:
  • Added an optimization which saves memory and emalloc/efree calls for empty HashTables.
  • Added ability to reset user opcode handlers.
  • Changed the structure of op_array.opcodes. The constant values are moved from opcode operands into a separate literal table.
  • Fixed (disabled) inline-caching for ZEND_OVERLOADED_FUNCTION methods.
  • Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes).
  • Improved core functions:
  • Added optional argument to debug_backtrace() and debug_print_backtrace() to limit the amount of stack frames returned.
  • Added hex2bin() function.
  • number_format() no longer truncates multibyte decimal points and thousand separators to the first byte. #53457.
  • Added support for object references in recursive serialize() calls. #36424.
  • Added support for SORT_NATURAL and SORT_FLAG_CASE in array sort functions (sort, rsort, ksort, krsort, asort, arsort and array_multisort). #55158.
  • Added stream metadata API support and stream_metadata() stream class handler.
  • User wrappers can now define a stream_truncate() method that responds to truncation, e.g. through ftruncate(). #53888.
  • Improved unserialize() performance.
  • Changed array_combine() to return empty array instead of FALSE when both parameter arrays are empty. #34857.
  • Fixed invalid free in call_user_method() function.
  • Fixed crypt_blowfish handling of 8-bit characters. (CVE-2011-2483).
  • Fixed bug #61095 (Incorect lexing of 0x00*+).
  • Fixed bug #60965 (Buffer overflow on htmlspecialchars/entities with $double=false).
  • Fixed bug #60895 (Possible invalid handler usage in windows random functions).
  • Fixed bug #60879 (unserialize() Does not invoke __wakeup() on object).
  • Fixed bug #60825 (Segfault when running symfony 2 tests).
  • Fixed bug #60809 (TRAITS - PHPDoc Comment Style Bug).
  • Fixed bug #60627 (httpd.worker segfault on startup with php_value).
  • Fixed bug #60613 (Segmentation fault with $cls->{expr}() syntax).
  • Fixed bug #60611 (Segmentation fault with Cls::{expr}() syntax).
  • Fixed bug #60558 (Invalid read and writes).
  • Fixed bug #60536 (Traits Segfault).
  • Fixed bug #60444 (Segmentation fault with include & class extending).
  • Fixed bug #60362 (non-existent sub-sub keys should not have values).
  • Fixed bug #60350 (No string escape code for ESC (ascii 27), normally \e).
  • Fixed bug #60321 (ob_get_status(true) no longer returns an array when buffer is empty).
  • Fixed bug #60282 (Segfault when using ob_gzhandler() with open buffers).
  • Fixed bug #60240 (invalid read/writes when unserializing specially crafted strings).
  • Fixed bug #60227 (header() cannot detect the multi-line header with CR(0x0D)).
  • Fixed bug #60174 (Notice when array in method prototype error).
  • Fixed bug #60169 (Conjunction of ternary and list crashes PHP).
  • Fixed bug #60120 (proc_open's streams may hang with stdin/out/err when
  • the data exceeds or is equal to 2048 bytes).
  • Fixed bug #60099 (__halt_compiler() works in braced namespaces).
  • Fixed bug #60038 (SIGALRM cause segfault in php_error_cb).
  • Fixed bug #55874 (GCC does not provide __sync_fetch_and_add on some archs).
  • Fixed bug #55871 (Interruption in substr_replace()).
  • Fixed bug #55825 (Missing initial value of static locals in trait methods).
  • Fixed bug #55801 (Behavior of unserialize has changed).
  • Fixed bug #55622 (memory corruption in parse_ini_string).
  • Fixed bug #55758 (Digest Authenticate missed in 5.4) .
  • Fixed bug #55748 (multiple NULL Pointer Dereference with zend_strndup()) (CVE-2011-4153).
  • Fixed bug #55749 (TOCTOU issue in getenv() on Windows builds).
  • Fixed bug #55705 (Omitting a callable typehinted argument causes a segfault).
  • Fixed bug #55475 (is_a() triggers autoloader, new optional 3rd argument to is_a and is_subclass_of).
  • Fixed bug #55471 (ZTS build broken with dtrace).
  • Fixed bug #55124 (recursive mkdir fails with current (dot) directory in path).
  • Fixed bug #55084 (Function registered by header_register_callback is called only once per process).
  • Implement #54514 (Get php binary path during script execution).
  • Fixed bug #52624 (tempnam() by-pass open_basedir with nonexistent directory).
  • Fixed bug #52211 (iconv() returns part of string on error).
  • Fixed bug #51860 (Include fails with toplevel symlink to /).
  • Improved generic SAPI support:
  • Added $_SERVER['REQUEST_TIME_FLOAT'] to include microsecond precision.
  • Added max_input_vars directive to prevent attacks based on hash collisions.
  • Added header_register_callback() which is invoked immediately prior to the sending of headers and after default headers have been added.
  • Added http_response_code() function. #52555.
  • Fixed bug #55500 (Corrupted $_FILES indices lead to security concern).
  • Fixed bug #54374 (Insufficient validating of upload name leading to corrupted $_FILES indices).
  • Improved Apache SAPI:
  • Fixed bug #60205 (possible integer overflow in content_length).
  • Improved CLI SAPI:
  • Added friendly log messages. #55109.
  • Added built-in web server that is intended for testing purpose.
  • Added command line option --rz which shows information of the named Zend extension.
  • Interactive readline shell improvements
  • Added "cli.pager" php.ini setting to set a pager for output.
  • Added "cli.prompt" php.ini setting to configure the shell prompt.
  • Added shortcut #inisetting=value to change ini settings at run-time.
  • Changed shell not to terminate on fatal errors.
  • Interactive shell works with shared readline extension. #53878.
  • Fixed bug #60591 (Memory leak when access a non-exists file).
  • Fixed bug #60523 (PHP Errors are not reported in browsers using built-in SAPI).
  • Fixed bug #60477 (Segfault after two multipart/form-data POST requests, one 200 RQ and one 404).
  • Implement #60390 (Missing $_SERVER['SERVER_PORT']).
  • Fixed bug #60180 ($_SERVER["PHP_SELF"] incorrect).
  • Fixed bug #60159 (Router returns false, but POST is not passed to requested resource).
  • Fixed bug #60146 (Last 2 lines of page not being output).
  • Fixed bug #60115 (memory definitely lost in cli server).
  • Fixed bug #60112 (If URI does not contain a file, index.php is not served).
  • Fixed bug #55759 (memory leak when using built-in server).
  • Fixed bug #55755 (SegFault when outputting header WWW-Authenticate).
  • Fixed bug #55747 (request headers missed in $_SERVER).
  • Fixed bug #55726 (Changing the working directory makes router script inaccessible).
  • Fixed bug #55463 (cli-server missing _SERVER[REMOTE_ADDR]).
  • Fixed bug #55450 (Built in web server not accepting file uploads).
  • Fixed bug #55423 (cli-server could not output correctly in some case).
  • Improved CGI/FastCGI SAPI:
  • Added apache compatible functions: apache_child_terminate(), getallheaders(), apache_request_headers() and apache_response_headers().
  • Improved performance of FastCGI request parsing.
  • Fixed reinitialization of SAPI callbacks after php_module_startup().
  • Improved PHP-FPM SAPI:
  • Added partial syslog support (on error_log only). #52052.
  • Added .phar to default authorized extensions.
  • Added process.max to control the number of process FPM can fork. #55166.
  • Dropped restriction of not setting the same value multiple times, the last one holds.
  • Lowered default value for Process Manager. #54098.
  • Enhanced security by limiting access to user defined extensions. #55181.
  • Enhanced error log when the primary script can't be open. #60199.
  • Removed EXPERIMENTAL flag.
  • Fixed bug #60659 (FPM does not clear auth_user on request accept).
  • Fixed bug #60629 (memory corruption when web server closed the fcgi fd).
  • Improved Litespeed SAPI:
  • Fixed bug #55769 (Make Fails with "Missing Separator" error).
  • Improved BCmath extension
  • Fixed bug #60377 (bcscale related crashes on 64bits platforms).
  • Improved CURL extension:
  • Added support for CURLOPT_MAX_RECV_SPEED_LARGE and CURLOPT_MAX_SEND_SPEED_LARGE. #51815.
  • Fixed bug #60439 (curl_copy_handle segfault when used with CURLOPT_PROGRESSFUNCTION).
  • Improved Date extension:
  • Added the + modifier to parseFromFormat to allow trailing text in the string to parse without throwing an error.
  • Improved DBA extension
  • Added Tokyo Cabinet abstract DB support.
  • Added Berkeley DB 5 support.
  • Improved DOM extension:
  • Added the ability to pass options to loadHTML.
  • Improved filesystem functions
  • scandir() now accepts SCANDIR_SORT_NONE as a possible sorting_order value. #53407.
  • Improved fileinfo extension:
  • Fixed possible memory leak in finfo_open().
  • Fixed memory leak when calling the Finfo constructor twice.
  • Fixed bug #60094 (C++ comment fails in c89).
  • Improved HASH extension:
  • Added Jenkins's one-at-a-time hash support.
  • Added FNV-1 hash support.
  • Made Adler32 algorithm faster. #53213.
  • Removed Salsa10/Salsa20, which are actually stream ciphers.
  • Fixed bug #60221 (Tiger hash output byte order).
  • Improved intl extension:
  • Added Spoofchecker class, allows checking for visibly confusable characters and other security issues.
  • Added Transliterator class, allowing transliteration of strings.
  • Added support for UTS #46.
  • Fixed memory leak in several Intl locale functions.
  • Fixed build on Fedora 15 / Ubuntu 11.
  • Fixed bug #55562 (grapheme_substr() returns false on big length).
  • Improved JSON extension:
  • Added new json_encode() option JSON_UNESCAPED_UNICODE. #53946.
  • Added JsonSerializable interface.
  • Added JSON_BIGINT_AS_STRING, extended json_decode() sig with $options.
  • Added support for JSON_NUMERIC_CHECK option in json_encode() that converts numeric strings to integers.
  • Added new json_encode() option JSON_UNESCAPED_SLASHES. #49366.
  • Added new json_encode() option JSON_PRETTY_PRINT. #44331.
  • Improved LDAP extension:
  • Added paged results support. #42060.
  • Improved mbstring extension:
  • Added Shift_JIS/UTF-8 Emoji (pictograms) support.
  • Added JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004) support.
  • Ill-formed UTF-8 check for security enhancements.
  • Added MacJapanese (Shift_JIS) and gb18030 encoding support.
  • Added encode/decode in hex format to mb_[en|de]code_numericentity().
  • Added user JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004) support.
  • Added the user defined area for CP936 and CP950.
  • Fixed possible crash in mb_ereg_search_init() using empty pattern.
  • Fixed bug #60306 (Characters lost while converting from cp936 to utf8).
  • Improved MS SQL extension:
  • Fixed bug #60267 (Compile failure with freetds 0.91).
  • Improved MySQL extensions
  • MySQL: Deprecated mysql_list_dbs(). #50667.
  • mysqlnd: Added named pipes support. #48082.
  • MySQLi: Added iterator support in MySQLi. mysqli_result implements Traversable.
  • PDO_mysql: Removed support for linking with MySQL client libraries older than 4.1.
  • ext/mysql, mysqli and pdo_mysql now use mysqlnd by default.
  • Fixed bug #55473 (mysql_pconnect leaks file descriptors on reconnect).
  • Fixed bug #55653 (PS crash with libmysql when binding same variable as param and out).
  • Improved OpenSSL extension:
  • Added AES support. #48632.
  • Added a "no_ticket" SSL context option to disable the SessionTicket TLS extension. #53447.
  • Added no padding option to openssl_encrypt()/openssl_decrypt().
  • Use php's implementation for Windows Crypto API in openssl_random_pseudo_bytes.
  • On error in openssl_random_pseudo_bytes() made sure we set strong result to false.
  • Fixed segfault with older versions of OpenSSL.
  • Fixed possible attack in SSL sockets with SSL 3.0 / TLS 1.0. CVE-2011-3389.
  • Fixed bug #61124 (Crash when decoding an invalid base64 encoded string).
  • Fixed bug #60279 (Fixed NULL pointer dereference in stream_socket_enable_crypto, case when ssl_handle of session_stream is not initialized.
  • Improved Oracle Database extension (OCI8):
  • Increased maximum Oracle error message buffer length for new 11.2.0.3 size.
  • Improved internal initalization failure error messages.
  • Fixed bug #59985 (show normal warning text for OCI_NO_DATA).
  • Improved PDO
  • Fixed PDO objects binary incompatibility.
  • PDO DBlib driver
  • Added nextRowset support.
  • Fixed bug #60033 (Incorrectly merged PDO dblib patches break uniqueidentifier column type).
  • Fixed bug #50755 (PDO DBLIB Fails with OOM).
  • Improved Pdo Firebird driver
  • Fixed bug #53280 (segfaults if query column count less than param count).
  • Fixed bug #48877 ("bindValue" and "bindParam" do not work for PDO Firebird).
  • Fixed bug #47415 (segfaults when passing lowercased column name to bindColumn).
  • Improved PostgreSQL extension:
  • Added support for "extra" parameter for PGNotify().
  • Improved preg extension:
  • Changed third parameter of preg_match_all() to optional. #53238.
  • Improved readline extension:
  • Fixed bug #54450 (Enable callback support when built against libedit).
  • Improved Reflection extension:
  • Added ReflectionClass::newInstanceWithoutConstructor() to create a new instance of a class without invoking its constructor. #55490.
  • Added ReflectionExtension::isTemporary() and ReflectionExtension::isPersistent() methods.
  • Added ReflectionZendExtension class.
  • Added ReflectionClass::isCloneable().
  • Fixed bug #60367 (Reflection and Late Static Binding).
  • Fixed bug #60357 (__toString() method triggers E_NOTICE "Array to string conversion").
  • Improved Session extension:
  • Expose session status via new function, session_status. #52982.
  • Added support for object-oriented session handlers.
  • Added support for storing upload progress feedback in session data.
  • Changed session.entropy_file to default to /dev/urandom or /dev/arandom if either is present at compile time.
  • Fixed bug #60860 (session.save_handler=user without defined function core dumps).
  • Implement #60551 (session_set_save_handler should support a core's session handler interface).
  • Fixed bug #60640 (invalid return values).
  • Improved SNMP extension
  • Added OO API. #53594 (php-snmp rewrite).
  • Sanitized return values of existing functions. Now it returns FALSE on failure.
  • Allow ~infinite OIDs in GET/GETNEXT/SET queries. Autochunk them to max_oids upon request.
  • Introducing unit tests for extension with ~full coverage. IPv6 support. (#42918)
  • Way of representing OID value can now be changed when SNMP_VALUE_OBJECT is used for value output mode. Use or'ed SNMP_VALUE_LIBRARY(default if not specified) or SNMP_VALUE_PLAIN. (#54502)
  • Fixed bug #60749 (SNMP module should not strip non-standard SNMP port from hostname).
  • Fixed bug #60585 (php build fails with USE flag snmp when IPv6 support is disabled).
  • Fixed bug #53862 (snmp_set_oid_output_format does not allow returning to default).
  • Fixed bug #51336 (snmprealwalk (snmp v1) does not handle end of OID tree correctly).
  • Fixed bug #46065 (snmp_set_quick_print() persists between requests).
  • Fixed bug #45893 (Snmp buffer limited to 2048 char).
  • Fixed bug #44193 (snmp v3 noAuthNoPriv doesn't work).
  • Improved SOAP extension
  • Added new SoapClient option "keep_alive". #60329.
  • Fixed basic HTTP authentication for WSDL sub requests.
  • Improved SPL extension:
  • Added RegexIterator::getRegex() method.
  • Added SplObjectStorage::getHash() hook.
  • Added CallbackFilterIterator and RecursiveCallbackFilterIterator.
  • Added missing class_uses(..) as pointed out by #55266.
  • Immediately reject wrong usages of directories under Spl(Temp)FileObject and friends.
  • FilesystemIterator, GlobIterator and (Recursive)DirectoryIterator now use the default stream context.
  • Fixed bug #60201 (SplFileObject::setCsvControl does not expose third argument via Reflection).
  • Fixed bug #55807 (Wrong value for splFileObject::SKIP_EMPTY).
  • Fixed bug #55287 (spl_classes() not includes CallbackFilter classes)
  • Improved Sysvshm extension:
  • Fixed bug #55750 (memory copy issue in sysvshm extension).
  • Improved Tidy extension:
  • Fixed bug #54682 (Tidy::diagnose() NULL pointer dereference).
  • Improved Tokenizer extension:
  • Fixed bug #54089 (token_get_all with regards to __halt_compiler is not binary safe).
  • Improved XSL extension:
  • Added XsltProcessor::setSecurityPrefs($options) and getSecurityPrefs() to define forbidden operations within XSLT stylesheets, default is not to enable write operations from XSLT. Fixed bug #54446.
  • XSL doesn't stop transformation anymore, if a PHP function can't be called
  • Improved ZLIB extension:
  • Re-implemented non-file related functionality.
  • Fixed bug #55544 (ob_gzhandler always conflicts with zlib.output_compression).

New in PHP 5.3.10 (Feb 3, 2012)

  • Fixed arbitrary remote code execution vulnerability reported by Stefan Esser, CVE-2012-0830.

New in PHP 5.3.9 (Jan 11, 2012)

  • Core:
  • Added max_input_vars directive to prevent attacks based on hash collisions (Dmitry).
  • Fixed bug #60205 (possible integer overflow in content_length). (Laruence)
  • Fixed bug #60139 (Anonymous functions create cycles not detected by the GC). (Dmitry)
  • Fixed bug #60138 (GC crash with referenced array in RecursiveArrayIterator) (Dmitry).
  • Fixed bug #60120 (proc_open's streams may hang with stdin/out/err when the data exceeds or is equal to 2048 bytes). (Pierre, Pascal Borreli)
  • Fixed bug #60099 (__halt_compiler() works in braced namespaces). (Felipe)
  • Fixed bug #60019 (Function time_nanosleep() is undefined on OS X). (Ilia)
  • Fixed bug #55874 (GCC does not provide __sync_fetch_and_add on some archs). (klightspeed at netspace dot net dot au)
  • Fixed bug #55798 (serialize followed by unserialize with numeric object prop. gives integer prop). (Gustavo)
  • Fixed bug #55749 (TOCTOU issue in getenv() on Windows builds). (Pierre)
  • Fixed bug #55707 (undefined reference to `__sync_fetch_and_add_4' on Linux parisc). (Felipe)
  • Fixed bug #55674 (fgetcsv & str_getcsv skip empty fields in some tab-separated records). (Laruence)
  • Fixed bug #55649 (Undefined function Bug()). (Laruence)
  • Fixed bug #55622 (memory corruption in parse_ini_string). (Pierre)
  • Fixed bug #55576 (Cannot conditionally move uploaded file without race condition). (Gustavo)
  • Fixed bug #55510: $_FILES 'name' missing first character after upload. (Arpad)
  • Fixed bug #55509 (segfault on x86_64 using more than 2G memory). (Laruence)
  • Fixed bug #55504 (Content-Type header is not parsed correctly on HTTP POST request). (Hannes)
  • Fixed bug #55475 (is_a() triggers autoloader, new optional 3rd argument to is_a and is_subclass_of). (alan_k)
  • Fixed bug #52461 (Incomplete doctype and missing xmlns). (virsacer at web dot de, Pierre)
  • Fixed bug #55366 (keys lost when using substr_replace an array). (Arpad)
  • Fixed bug #55273 (base64_decode() with strict rejects whitespace after pad). (Ilia)
  • Fixed bug #52624 (tempnam() by-pass open_basedir with nonnexistent directory). (Felipe)
  • Fixed bug #50982 (incorrect assumption of PAGE_SIZE size). (Dmitry)
  • Fixed invalid free in call_user_method() function. (Felipe)
  • Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes). (Felipe)
  • BCmath:
  • Fixed bug #60377 (bcscale related crashes on 64bits platforms). (shm)
  • Calendar:
  • Fixed bug #55797 (Integer overflow in SdnToGregorian leads to segfault (in optimized builds). (Gustavo)
  • cURL:
  • Fixed bug #60439 (curl_copy_handle segfault when used with CURLOPT_PROGRESSFUNCTION). (Pierrick)
  • Fixed bug #54798 (Segfault when CURLOPT_STDERR file pointer is closed before calling curl_exec). (Hannes)
  • Fixed issues were curl_copy_handle() would sometimes lose copied preferences. (Hannes)
  • DateTime:
  • Fixed bug #60373 (Startup errors with log_errors on cause segfault). (Derick)
  • Fixed bug #60236 (TLA timezone dates are not converted properly from timestamp). (Derick)
  • Fixed bug #55253 (DateTime::add() and sub() result -1 hour on objects with time zone type 2). (Derick)
  • Fixed bug #54851 (DateTime::createFromFormat() doesn't interpret "D"). (Derick)
  • Fixed bug #53502 (strtotime with timezone memory leak). (Derick)
  • Fixed bug #52062 (large timestamps with DateTime::getTimestamp and DateTime::setTimestamp). (Derick)
  • Fixed bug #51994 (date_parse_from_format is parsing invalid date using 'yz' format). (Derick)
  • Fixed bug #52113 (Seg fault while creating (by unserialization) DatePeriod). (Derick)
  • Fixed bug #48476 (cloning extended DateTime class without calling parent::__constr crashed PHP). (Hannes)
  • EXIF:
  • Fixed bug #60150 (Integer overflow during the parsing of invalid exif header). (Stas, flolechaud at gmail dot com)
  • Fileinfo:
  • Fixed bug #60094 (C++ comment fails in c89). (Laruence)
  • Fixed possible memory leak in finfo_open(). (Felipe)
  • Fixed memory leak when calling the Finfo constructor twice. (Felipe)
  • Filter:
  • Fixed Bug #55478 (FILTER_VALIDATE_EMAIL fails with internationalized domain name addresses containing >1 -). (Ilia)
  • FTP:
  • Fixed bug #60183 (out of sync ftp responses). (bram at ebskamp dot me, rasmus)
  • Gd:
  • Fixed bug #60160 (imagefill() doesn't work correctly for small images). (Florian)
  • Intl:
  • Fixed bug #60192 (SegFault when Collator not constructed properly). (Florian)
  • Fixed memory leak in several Intl locale functions. (Felipe)
  • JSON:
  • Fixed bug #55543 (json_encode() with JSON_NUMERIC_CHECK fails on objects with numeric string properties). (Ilia, dchurch at sciencelogic dot com)
  • mbstring:
  • Fixed possible crash in mb_ereg_search_init() using empty pattern. (Felipe)
  • MS SQL:
  • Fixed bug #60267 (Compile failure with freetds 0.91). (Felipe)
  • MySQL:
  • Fixed bug #55550 (mysql.trace_mode miscounts result sets). (Johannes)
  • MySQLi extension:
  • Fixed bug #55859 (mysqli->stat property access gives error). (Andrey)
  • Fixed bug #55582 (mysqli_num_rows() returns always 0 for unbuffered, when mysqlnd is used). (Andrey)
  • Fixed bug #55703 (PHP crash when calling mysqli_fetch_fields). (eran at zend dot com, Laruence)
  • mysqlnd:
  • Fixed bug #55609 (mysqlnd cannot be built shared). (Johannes)
  • Fixed bug #55067 (MySQL doesn't support compression - wrong config option). (Andrey)
  • NSAPI SAPI:
  • Don't set $_SERVER['HTTPS'] on unsecure connection (bug #55403). (Uwe Schindler)
  • OpenSSL:
  • Fixed bug #60279 (Fixed NULL pointer dereference in stream_socket_enable_crypto, case when ssl_handle of session_stream is not initialized.) (shm)
  • Fix segfault with older versions of OpenSSL. (Scott)
  • Oracle Database extension (OCI8):
  • Fixed bug #59985 (show normal warning text for OCI_NO_DATA). (Chris Jones)
  • Increased maximum Oracle error message buffer length for new 11.2.0.3 size. (Chris Jones)
  • Improve internal initalization failure error messages. (Chris Jones)
  • PDO:
  • Fixed bug #55776 (PDORow to session bug). (Johannes)
  • PDO Firebird:
  • Fixed bug #48877 ("bindValue" and "bindParam" do not work for PDO Firebird). (Mariuz)
  • Fixed bug #47415 (PDO_Firebird segfaults when passing lowercased column name to bindColumn).
  • Fixed bug #53280 (PDO_Firebird segfaults if query column count less than param count). (Mariuz)
  • PDO MySQL driver:
  • Fixed bug #60155 (pdo_mysql.default_socket ignored). (Johannes)
  • Fixed bug #55870 (PDO ignores all SSL parameters when used with mysql native driver). (Pierre)
  • Fixed bug #54158 (MYSQLND+PDO MySQL requires #define MYSQL_OPT_LOCAL_INFILE). (Andrey)
  • PDO OCI driver:
  • Fixed bug #55768 (PDO_OCI can't resume Oracle session after it's been killed). (mikhail dot v dot gavrilov at gmail dot com, Chris Jones, Tony)
  • Phar:
  • Fixed bug #60261 (NULL pointer dereference in phar). (Felipe)
  • Fixed bug #60164 (Stubs of a specific length break phar_open_from_fp scanning for __HALT_COMPILER). (Ralph Schindler)
  • Fixed bug #53872 (internal corruption of phar). (Hannes)
  • Fixed bug #52013 (Unable to decompress files in a compressed phar). (Hannes)
  • PHP-FPM SAPI:
  • Fixed bug #60659 (FPM does not clear auth_user on request accept). (bonbons at linux-vserver dot org)
  • Fixed bug #60629 (memory corruption when web server closed the fcgi fd). (fat)
  • Fixed bug #60179 (php_flag and php_value does not work properly). (fat)
  • Fixed bug #55526 (Heartbeat causes a lot of unnecessary events). (fat)
  • Fixed bug #55533 (The -d parameter doesn't work). (fat)
  • Implemented FR #52569 (Add the "ondemand" process-manager to allow zero children). (fat)
  • Fixed bug #55486 (status show BIG processes number). (fat)
  • Fixed bug #55577 (status.html does not install). (fat)
  • Backported from 5.4 branch (Dropped restriction of not setting the same value multiple times, the last one holds). (giovanni at giacobbi dot net, fat)
  • Backported FR #55166 from 5.4 branch (Added process.max to control the number of process FPM can fork). (fat)
  • Backported FR #55181 from 5.4 branch (Enhance security by limiting access to user defined extensions). (fat)
  • Backported FR #54098 from 5.4 branch (Lowered process manager default value). (fat)
  • Backported FR #52052 from 5.4 branch (Added partial syslog support). (fat)
  • Implemented FR #54577 (Enhanced status page with full status and details about each processes. Also provide a web page (status.html) for real-time FPM status. (fat)
  • Enhance error log when the primary script can't be open. FR #60199. (fat)
  • Added .phar to default authorized extensions. (fat)
  • Postgres:
  • Fixed bug #60244 (pg_fetch_* functions do not validate that row param is >0). (Ilia)
  • Reflection:
  • Fixed bug #60367 (Reflection and Late Static Binding). (Laruence)
  • Session:
  • Fixed bug #55267 (session_regenerate_id fails after header sent). (Hannes)
  • SimpleXML:
  • Reverted the SimpleXML->query() behaviour to returning empty arrays instead of false when no nodes are found as it was since 5.3.3 (bug #48601). (chregu, rrichards)
  • SOAP:
  • Fixed bug #54911 (Access to a undefined member in inherit SoapClient may cause Segmentation Fault). (Dmitry)
  • Fixed bug #48216 (PHP Fatal error: SOAP-ERROR: Parsing WSDL: Extra content at the end of the doc, when server uses chunked transfer encoding with spaces after chunk size). (Dmitry)
  • Fixed bug #44686 (SOAP-ERROR: Parsing WSDL with references). (Dmitry)
  • Sockets:
  • Fixed bug #60048 (sa_len a #define on IRIX). (china at thewrittenword dot com)
  • SPL:
  • Fixed bug #60082 (Crash in ArrayObject() when using recursive references). (Tony)
  • Fixed bug #55807 (Wrong value for splFileObject::SKIP_EMPTY). (jgotti at modedemploi dot fr, Hannes)
  • Fixed bug #54304 (RegexIterator::accept() doesn't work with scalar values). (Hannes)
  • Streams:
  • Fixed bug #60455 (stream_get_line misbehaves if EOF is not detected together with the last read). (Gustavo)
  • Tidy:
  • Fixed bug #54682 (Tidy::diagnose() NULL pointer dereference). (Maksymilian Arciemowicz, Felipe)
  • XSL:Added xsl.security_prefs ini option to define forbidden operations within XSLT stylesheets, default is not to enable write operations. This option won't be in 5.4, since there's a new method. Fixes Bug #54446. (Chregu, Nicolas Gregoire)

New in PHP 5.4.0 RC 2 (Dec 9, 2011)

  • Core:
  • Fixed bug #60227 (header() cannot detect the multi-line header with CR(0x0D)). (rui)
  • Fixed bug #60099 (__halt_compiler() works in braced namespaces). (Felipe)
  • Fixed bug #55874 (GCC does not provide __sync_fetch_and_add on some archs). (klightspeed at netspace dot net dot au)
  • Fixed bug #52624 (tempnam() by-pass open_basedir with nonexistent directory). (Felipe)
  • Fixed bug #55748 (multiple NULL Pointer Dereference with zend_strndup()) (CVE-2011-4153). (Stas)
  • Fixed invalid free in call_user_method() function. (Felipe)
  • Zend Engine:
  • Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes). (Felipe)
  • CLI SAPI:
  • Fixed bug #60159 (Router returns false, but POST is not passed to requested resource). (Laruence)
  • Fixed bug #55759 (memory leak when using built-in server). (Laruence)
  • Improved PHP-FPM SAPI:
  • Enhance error log when the primary script can't be open. FR #60199. (fat)
  • Remove EXPERIMENTAL flag. (fat)
  • Added .phar to default authorized extensions. (fat)
  • BCmath:
  • Fixed bug #60377 (bcscale related crashes on 64bits platforms) (shm)
  • Fileinfo:
  • Fixed possible memory leak in finfo_open(). (Felipe)
  • Fixed memory leak when calling the Finfo constructor twice. (Felipe)
  • Intl:
  • Fixed memory leak in several Intl locale functions. (Felipe)
  • Mbstring:
  • Fixed bug #60306 (Characters lost while converting from cp936 to utf8). (Laruence)
  • Fixed possible crash in mb_ereg_search_init() using empty pattern. (Felipe)
  • MS SQL:
  • Fixed bug #60267 (Compile failure with freetds 0.91). (Felipe)
  • OpenSSL:
  • Fixed bug #60279 (Fixed NULL pointer dereference in stream_socket_enable_crypto, case when ssl_handle of session_stream is not initialized.) (shm)
  • Oracle Database extension (OCI8):
  • Fixed bug #59985 (show normal warning text for OCI_NO_DATA) (Chris Jones)
  • Output:
  • Fixed bug #60321 (ob_get_status(true) no longer returns an array when buffer is empty). (Pierrick)
  • Fixed bug #60282 (Segfault when using ob_gzhandler() with open buffers).(Laruence)
  • Reflection:
  • Fixed bug #60357 (__toString() method triggers E_NOTICE "Array to string conversion"). (Laruence)
  • SOAP extension:
  • Added new SoapClient option "keep_alive". FR #60329. (Pierrick)
  • Tidy:
  • Fixed bug #54682 (Tidy::diagnose() NULL pointer dereference). (Maksymilian Arciemowicz, Felipe)

New in PHP 5.4.0 Alpha 3 (Aug 12, 2011)

  • Added features:
  • Short array syntax, see UPGRADING guide for full details
  • Binary numbers format (0b001010).
  • Support for Class::{expr}() syntax
  • Removed features:
  • Removed magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase ini options.
  • get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return false, set_magic_quotes_runtime raises an E_CORE_ERROR.
  • Changed E_ALL to include E_STRICT. (Stas)
  • Improved core functions
  • Fixed bug #55124 (recursive mkdir fails with current (dot) directory in path).
  • Improved PHP-FPM SAPI:
  • Added process.max to control the number of process FPM can fork. FR #55166.
  • Dropped restriction of not setting the same value multiple times, the last
  • one holds. (
  • SPL extension:
  • Added missing class_uses(..) as pointed out by #55266
  • Fixed bug #55287 (spl_classes() not includes CallbackFilter classes)

New in PHP 5.4.0 Alpha 2 (Aug 12, 2011)

  • General improvements:
  • Zend Signal Handling.
  • Improved Zend Engine
  • Improved parse error messages.
  • Improved CLI SAPI:
  • Added built-in web server that is intended for testing purpose.
  • Improved PHP-FPM SAPI:
  • Added partial syslog support (on error_log only). FR #52052.
  • Lowered default value for Process Manager. FR #54098.
  • Enhance security by limiting access to user defined extensions.
  • FR #55181.
  • Improved core functions:
  • Changed http_response_code() to be able to set a response code.
  • Fixed crypt_blowfish handling of 8-bit characters. (CVE-2011-2483)
  • Fixed bug#55084 (Function registered by header_register_callback is
  • called only once per process).
  • Improved DOM extension:
  • Added the ability to pass options to loadHTML (Chregu, fxmulder at gmail dot com)
  • OpenSSL extension:
  • Use php's implementation for Windows Crypto API in openssl_random_pseudo_bytes

New in PHP 5.4.0 Alpha 1 (Jul 1, 2011)

  • autoconf 2.59+ is now supported (and required) for generating the
  • configure script with ./buildconf. Autoconf 2.60+ is desirable otherwise the configure help order may be incorrect.
  • Removed legacy features:
  • break/continue $var syntax.
  • Safe mode and all related ini options.
  • register_globals and register_long_arrays ini options.
  • import_request_variables().
  • allow_call_time_pass_reference.
  • define_syslog_variables ini option and its associated function.
  • highlight.bg ini option.
  • Session bug compatibility mode (session.bug_compat42 and
  • session.bug_compat_warn ini options).
  • session_is_registered(), session_register() and session_unregister()
  • functions.
  • y2k_compliance ini option.
  • Moved extensions to PECL:
  • .ext/sqlite.
  • Changed $_SERVER['REQUEST_TIME'] to include microsecond precision.
  • Changed default value of "default_charset" php.ini option from ISO-8859-1 to
  • UTF-8.
  • Changed array_combine() to return empty array instead of FALSE when both
  • parameter arrays are empty. FR #34857.
  • Changed third parameter of preg_match_all() to optional. FR #53238.)
  • Changed silent casting of null/''/false into an Object when adding
  • a property into a warning.

New in PHP 5.3.6 (Mar 18, 2011)

  • Upgraded bundled Sqlite3 to version 3.7.4. (Ilia)
  • Upgraded bundled PCRE to version 8.11. (Ilia)
  • Zend Engine:
  • Indirect reference to $this fails to resolve if direct $this is never used in method.
  • Added options to debug backtrace functions. (Stas)
  • Fixed bug numerous crashes due to setlocale (crash on error, pcre, mysql etc.) on Windows in thread safe mode. (Pierre)
  • Fixed Bug #53971 (isset() and empty() produce apparently spurious runtime error). (Dmitry)
  • Fixed Bug #53958 (Closures can't 'use' shared variables by value and by reference). (Dmitry)
  • Fixed Bug #53629 (memory leak inside highlight_string()). (Hannes, Ilia)
  • Fixed Bug #51458 (Lack of error context with nested exceptions). (Stas)
  • Fixed Bug #47143 (Throwing an exception in a destructor causes a fatal error). (Stas)
  • Fixed bug #43512 (same parameter name can be used multiple times in
  • method/function definition). (Felipe)
  • Core:
  • Added ability to connect to HTTPS sites through proxy with basic authentication using stream_context/http/header/Proxy-Authorization (Dmitry)
  • Changed default value of ini directive serialize_precision from 100 to 17.
  • Fixed bug #54055 (buffer overrun with high values for precision ini setting).
  • Fixed bug #53959 (reflection data for fgetcsv out-of-date). (Richard)
  • Fixed bug #53577 (Regression introduced in 5.3.4 in open_basedir with a trailing forward slash). (lekensteyn at gmail dot com, Pierre)
  • Fixed bug #53682 (Fix compile on the VAX). (Rasmus, jklos)
  • Fixed bug #48484 (array_product() always returns 0 for an empty array).
  • Fixed bug #48607 (fwrite() doesn't check reply from ftp server before exiting).
  • Calendar extension:
  • Fixed bug #53574 (Integer overflow in SdnToJulian, sometimes leading to segfault).
  • DOM extension:
  • Implemented FR #39771 (Made DOMDocument::saveHTML accept an optional DOMNode like DOMDocument::saveXML).
  • DateTime extension:
  • Fixed a bug in DateTime->modify() where absolute date/time statements had no effect. (Derick)
  • Fixed bug #53729 (DatePeriod fails to initialize recurrences on 64bit big-endian systems).
  • Fixed bug #52808 (Segfault when specifying interval as two dates). (Stas)
  • Fixed bug #52738 (Can't use new properties in class extended from DateInterval).
  • Fixed bug #52290 (setDate, setISODate, setTime works wrong when DateTime created from timestamp).
  • Fixed bug #52063 (DateTime constructor's second argument doesn't have a null default value). (Gustavo, Stas)
  • Exif extension:
  • Fixed bug #54002
  • Filter extension:
  • Fixed bug #53924 (FILTER_VALIDATE_URL doesn't validate port number).
  • Fixed bug #53150 (FILTER_FLAG_NO_RES_RANGE is missing some IP ranges).
  • Fixed bug #52209 (INPUT_ENV returns NULL for set variables (CLI)). (Ilia)
  • Fixed bug #47435 (FILTER_FLAG_NO_RES_RANGE don't work with ipv6).
  • Fileinfo extension:
  • Fixed bug #54016 (finfo_file() Cannot determine filetype in archives).
  • Gettext:
  • Fixed bug #53837 (_() crashes on Windows when no LANG or LANGUAGE environment variable are set).
  • IMAP extension:
  • Implemented FR #53812 (get MIME headers of the part of the email). (Stas)
  • Fixed bug #53377 (imap_mime_header_decode() doesn't ignore \t during long MIME header unfolding). (Adam)
  • Intl extension:
  • Fixed bug #53612 (Segmentation fault when using cloned several intl
  • objects).
  • Fixed bug #53512 (NumberFormatter::setSymbol crash on bogus $attr values).
  • Implemented clone functionality for number, date & message formatters.
  • JSON extension:
  • Fixed bug #53963 (Ensure error_code is always set during some failed
  • decodings).
  • mysqlnd:
  • Fixed problem with always returning 0 as num_rows for unbuffered sets.
  • MySQL Improved extension:
  • Added 'db' and 'catalog' keys to the field fetching functions (FR #39847).
  • Fixed buggy counting of affected rows when using the text protocol. The
  • collected statistics were wrong when multi_query was used with mysqlnd
  • Fixed bug #53795 (Connect Error from MySqli (mysqlnd) when using SSL).
  • Fixed bug #53503 (mysqli::query returns false after successful LOAD DATA
  • query).
  • Fixed bug #53425 (mysqli_real_connect() ignores client flags when built to
  • call libmysql).
  • OpenSSL extension:
  • Fixed stream_socket_enable_crypto() not honoring the socket timeout in
  • server mode. (Gustavo)
  • Fixed bug #54060 (Memory leaks when openssl_encrypt). (Pierre)
  • Fixed bug #54061 (Memory leaks when openssl_decrypt). (Pierre)
  • Fixed bug #53592 (stream_socket_enable_crypto() busy-waits in client mode).
  • Implemented FR #53447 (Cannot disable SessionTicket extension for servers
  • that do not support it) by adding a no_ticket SSL context option.
  • PDO MySQL driver:
  • Fixed bug #53551 (PDOStatement execute segfaults for pdo_mysql driver).
  • Implemented FR #47802 (Support for setting character sets in DSN strings).
  • PDO Oracle driver:
  • Fixed bug #39199 (Cannot load Lob data with more than 4000 bytes on
  • ORACLE 10).
  • PDO PostgreSQL driver:
  • Fixed bug #53517 (segfault in pgsql_stmt_execute() when postgres is down).
  • Phar extension:
  • Fixed bug #54247 (format-string vulnerability on Phar).
  • (CVE-2011-1153)
  • Fixed bug #53541 (format string bug in ext/phar).
  • Fixed bug #53898 (PHAR reports invalid error message, when the directory
  • does not exist). (Ilia)
  • PHP-FPM SAPI:
  • Enforce security in the fastcgi protocol parsing.
  • Fixed bug #53777 (php-fpm log format now match php_error log format).
  • Fixed bug #53527 (php-fpm --test doesn't set a valuable return value).
  • Fixed bug #53434 (php-fpm slowlog now also logs the original request).
  • Readline extension:
  • Fixed bug #53630 (Fixed parameter handling inside readline() function).
  • Reflection extension:
  • Fixed bug #53915 (ReflectionClass::getConstant(s) emits fatal error on
  • constants with self::).
  • Shmop extension:
  • Fixed bug #54193 (Integer overflow in shmop_read()).
  • Reported by Jose Carlos Norte (CVE-2011-1092)
  • SNMP extension:
  • Fixed bug #51336 (snmprealwalk (snmp v1) does not handle end of OID tree
  • correctly).
  • SOAP extension:
  • Fixed possible crash introduced by the NULL poisoning patch.
  • SPL extension:
  • Fixed memory leak in DirectoryIterator::getExtension() and
  • SplFileInfo::getExtension().
  • Fixed bug #53914 (SPL assumes HAVE_GLOB is defined).
  • Fixed bug #53515 (property_exists incorrect on ArrayObject null and 0 values).
  • Fixed bug #49608 (Using CachingIterator on DirectoryIterator instance
  • segfaults).
  • Added SplFileInfo::getExtension(). FR #48767. (Peter Cowburn)
  • SQLite3 extension:
  • Fixed memory leaked introduced by the NULL poisoning patch.
  • Mateusz Kocielski, Pierre)
  • Fixed memory leak on SQLite3Result and SQLite3Stmt when assigning to a
  • reference.
  • Add SQlite3_Stmt::readonly() for checking if a statement is read only.
  • Implemented FR #53466 (SQLite3Result::columnType() should return false after all of the rows have been fetched). (Scott)
  • Streams:
  • Fixed bug #54092 (Segmentation fault when using HTTP proxy with the FTP
  • wrapper).
  • Fixed bug #53913 (Streams functions assume HAVE_GLOB is defined).
  • Fixed bug #53903 (userspace stream stat callback does not separate the
  • elements of the returned array before converting them).
  • Implemented FR #26158 (open arbitrary file descriptor with fopen).
  • Tokenizer Extension
  • Fixed bug #54089 (token_get_all() does not stop after __halt_compiler).
  • XSL extension:
  • Fixed memory leaked introduced by the NULL poisoning patch.
  • Zip extension:
  • Added the filename into the return value of stream_get_meta_data().
  • Fixed bug #53923 (Zip functions assume HAVE_GLOB is defined). (Adam)
  • Fixed bug #53893 (Wrong return value for ZipArchive::extractTo()). (Pierre)
  • Fixed bug #53885 (ZipArchive segfault with FL_UNCHANGED on empty archive). (CVE-2011-0421)
  • Fixed bug #53854 (Missing constants for compression type).
  • Fixed bug #53603 (ZipArchive should quiet stat errors).
  • Fixed bug #53579 (stream_get_contents() segfaults on ziparchive streams).
  • Fixed bug #53568 (swapped memset arguments in struct initialization).
  • Fixed bug #53166 (Missing parameters in docs and reflection definition).
  • Fixed bug #49072 (feof never returns true for damaged file in zip).

New in PHP 5.3.5 (Mar 11, 2011)

  • This release resolves a critical issue, reported as PHP bug #53632, where conversions from string to double might cause the PHP interpreter to hang on systems using x87 FPU registers.
  • Fixed bug #53632 (PHP hangs on numeric value 2.2250738585072011e-308).

New in PHP 5.3.4 (Dec 10, 2010)

  • Security Enhancements and Fixes:
  • Fixed crash in zip extract method (possible CWE-170).
  • Paths with NULL in them (foo\0bar.txt) are now considered as invalid (CVE-2006-7243).
  • Fixed a possible double free in imap extension (Identified by Mateusz Kocielski). (CVE-2010-4150).
  • Fixed NULL pointer dereference in ZipArchive::getArchiveComment. (CVE-2010-3709).
  • Fixed possible flaw in open_basedir (CVE-2010-3436).
  • Fixed MOPS-2010-24, fix string validation. (CVE-2010-2950).
  • Fixed symbolic resolution support when the target is a DFS share.
  • Fixed bug #52929 (Segfault in filter_var with FILTER_VALIDATE_EMAIL with large amount of data) (CVE-2010-3710).
  • Key Bug Fixes:
  • Added stat support for zip stream.
  • Added follow_location (enabled by default) option for the http stream support.
  • Added a 3rd parameter to get_html_translation_table. It now takes a charset hint, like htmlentities et al.
  • Implemented FR #52348, added new constant ZEND_MULTIBYTE to detect zend multibyte at runtime.
  • Multiple improvements to the FPM SAPI.
  • Over 100 other bug fixes.

New in PHP 5.3.3 (Aug 10, 2010)

  • Methods with the same name as the last element of a namespaced class name will no longer be treated as constructor. This change doesn't affect non-namespaced classes.
  • There is no impact on migration from 5.2.x because namespaces were only introduced in PHP 5.3.
  • Security Enhancements and Fixes:
  • Rewrote var_export() to use smart_str rather than output buffering, prevents data disclosure if a fatal error occurs (CVE-2010-2531).
  • Fixed a possible resource destruction issues in shm_put_var().
  • Fixed a possible information leak because of interruption of XOR operator.
  • Fixed a possible memory corruption because of unexpected call-time pass by refernce and following memory clobbering through callbacks.
  • Fixed a possible memory corruption in ArrayObject::uasort().
  • Fixed a possible memory corruption in parse_str().
  • Fixed a possible memory corruption in pack().
  • Fixed a possible memory corruption in substr_replace().
  • Fixed a possible memory corruption in addcslashes().
  • Fixed a possible stack exhaustion inside fnmatch().
  • Fixed a possible dechunking filter buffer overflow.
  • Fixed a possible arbitrary memory access inside sqlite extension.
  • Fixed string format validation inside phar extension.
  • Fixed handling of session variable serialization on certain prefix characters.
  • Fixed a NULL pointer dereference when processing invalid XML-RPC requests (Fixes CVE-2010-0397, bug #51288).
  • Fixed SplObjectStorage unserialization problems (CVE-2010-2225).
  • Fixed possible buffer overflows in mysqlnd_list_fields, mysqlnd_change_user.
  • Fixed possible buffer overflows when handling error packets in mysqlnd.
  • Key enhancements:
  • Upgraded bundled sqlite to version 3.6.23.1.
  • Upgraded bundled PCRE to version 8.02.
  • Added FastCGI Process Manager (FPM) SAPI.
  • Added stream filter support to mcrypt extension.
  • Added full_special_chars filter to ext/filter.
  • Fixed a possible crash because of recursive GC invocation.
  • Fixed bug #52238 (Crash when an Exception occured in iterator_to_array).
  • Fixed bug #52041 (Memory leak when writing on uninitialized variable returned from function).
  • Fixed bug #52060 (Memory leak when passing a closure to method_exists()).
  • Fixed bug #52001 (Memory allocation problems after using variable variables).
  • Fixed bug #51723 (Content-length header is limited to 32bit integer with Apache2 on Windows).
  • Fixed bug #48930 (__COMPILER_HALT_OFFSET__ incorrect in PHP >= 5.3).

New in PHP 5.3.2 (Mar 4, 2010)

  • Security Enhancements and Fixes:
  • Improved LCG entropy. (Rasmus, Samy Kamkar)
  • Fixed safe_mode validation inside tempnam() when the directory path does not end with a /). (Martin Jansen)
  • Fixed a possible open_basedir/safe_mode bypass in the session extension identified by Grzegorz Stachowiak. (Ilia)
  • Key Bug Fixes:
  • Added support for SHA-256 and SHA-512 to php's crypt.
  • Added protection for $_SESSION from interrupt corruption and improved "session.save_path" check.
  • Fixed bug #51059 (crypt crashes when invalid salt are given).
  • Fixed bug #50940 Custom content-length set incorrectly in Apache sapis.
  • Fixed bug #50847 (strip_tags() removes all tags greater then 1023 bytes long).
  • Fixed bug #50723 (Bug in garbage collector causes crash).
  • Fixed bug #50661 (DOMDocument::loadXML does not allow UTF-16).
  • Fixed bug #50632 (filter_input() does not return default value if the variable does not exist).
  • Fixed bug #50540 (Crash while running ldap_next_reference test cases).
  • Fixed bug #49851 (http wrapper breaks on 1024 char long headers).
  • Over 60 other bug fixes.

New in PHP 5.3.1 (Nov 20, 2009)

  • Security Fixes
  • Added "max_file_uploads" INI directive, which can be set to limit the number of file uploads per-request to 20 by default, to prevent possible DOS via temporary file exhaustion. (Ilia)
  • Added missing sanity checks around exif processing. (Ilia)
  • Fixed a safe_mode bypass in tempnam(). (Rasmus)
  • Fixed a open_basedir bypass in posix_mkfifo(). (Rasmus)
  • Fixed bug #50063 (safe_mode_include_dir fails). (Johannes, christian at elmerot dot se)
  • Added error constant when json_encode() detects an invalid UTF-8 sequence. (Scott)
  • Added support for ACL on Windows for thread safe SAPI (Apache2 for example) and fix its support on NTS. (Pierre)
  • Upgraded bundled sqlite to version 3.6.19. (Scott)
  • Updated timezone database to version 2009.17 (2009q). (Derick)
  • Fixed crash in com_print_typeinfo when an invalid typelib is given. (Pierre)
  • Fixed a safe_mode bypass in tempnam() identified by Grzegorz Stachowiak. (Rasmus)
  • Fixed a open_basedir bypass in posix_mkfifo() identified by Grzegorz Stachowiak. (Rasmus)
  • Fixed certificate validation inside php_openssl_apply_verification_policy (Ryan Sleevi, Ilia)
  • Fixed crash in SQLiteDatabase::ArrayQuery() and SQLiteDatabase::SingleQuery() when calling using Reflection. (Felipe)
  • Fixed crash when instantiating PDORow and PDOStatement through Reflection. (Felipe)
  • Fixed sanity check for the color index in imagecolortransparent. (Pierre)
  • Fixed scandir/readdir when used mounted points on Windows. (Pierre)
  • Fixed zlib.deflate compress filter to actually accept level parameter. (Jani)
  • Fixed leak on error in popen/exec (and related functions) on Windows. (Pierre)
  • Fixed possible bad caching of symlinked directories in the realpath cache on Windows. (Pierre)
  • Fixed atime and mtime in stat related functions on Windows. (Pierre)
  • Fixed spl_autoload_unregister/spl_autoload_functions wrt. Closures and Functors. (Christian Seiler)
  • Fixed open_basedir circumvention for "mail.log" ini directive. (Maksymilian Arciemowicz, Stas)
  • Fixed signature generation/validation for zip archives in ext/phar. (Greg)
  • Fixed memory leak in stream_is_local(). (Felipe, Tony)
  • Fixed BC break in mime_content_type(), removes the content encoding. (Scott)
  • Changed ini file directives [PATH=](on Win32) and [HOST=](on all) to be case insensitive (garretts)
  • Restored shebang line check to CGI sapi (not checked by scanner anymore). (Jani)
  • Improve symbolic, mounted volume and junctions support for realpath on Windows. (Pierre)
  • Improved readlink on Windows, suppress ?? and use the drive syntax only. (Pierre)
  • Improved dns_get_record() AAAA support on windows. Always available when IPv6 is support is installed, format is now the same than on unix. (Pierre)
  • Improved the DNS functions on OSX to use newer APIs, also use Bind 9 API where available on other platforms. (Scott)
  • Improved shared extension loading on OSX to use the standard Unix dlopen() API. (Scott)
  • Fixed bug #50063 (safe_mode_include_dir fails). (Johannes, christian at elmerot dot se)
  • Fixed bug #50052 (Different Hashes on Windows and Linux on wrong Salt size). (Pierre)
  • Fixed bug #49910 (no support for ././@LongLink for long filenames in phar tar support). (Greg)
  • Fixed bug #49908 (throwing exception in __autoload crashes when interface is not defined). (Felipe)
  • Fixed bug #49847 (exec() fails to return data inside 2nd parameter, given output lines >4095 bytes). (Ilia)
  • Fixed bug #49809 (time_sleep_until() is not available on OpenSolaris). (Jani)
  • Fixed bug #49757 (long2ip() can return wrong value in a multi-threaded applications). (Ilia, Florian Anderiasch)
  • Fixed bug #49738 (calling mcrypt after mcrypt_generic_deinit crashes). (Sriram Natarajan)
  • Fixed bug #49732 (crashes when using fileinfo when timestamp conversion fails). (Pierre)
  • Fixed bug #49698 (Unexpected change in strnatcasecmp()). (Rasmus)
  • Fixed bug #49630 (imap_listscan function missing). (Felipe)
  • Fixed bug #49572 (use of C++ style comments causes build failure). (Sriram Natarajan)
  • Fixed bug #49531 (CURLOPT_INFILESIZE sometimes causes warning "CURLPROTO_FILE cannot be set"). (Felipe)
  • Fixed bug #49517 (cURL's CURLOPT_FILE prevents file from being deleted after fclose). (Ilia)
  • Fixed bug #49470 (FILTER_SANITIZE_EMAIL allows disallowed characters). (Ilia)
  • Fixed bug #49447 (php engine need to correctly check for socket API return status on windows). (Sriram Natarajan)
  • Fixed bug #49391 (ldap.c utilizing deprecated ldap_modify_s). (Ilia)
  • Fixed bug #49361 (wordwrap() wraps incorrectly on end of line boundaries). (Ilia, code-it at mail dot ru)
  • Fixed bug #49372 (segfault in php_curl_option_curl). (Pierre)
  • Fixed bug #49306 (inside pdo_mysql default socket settings are ignored). (Ilia)
  • Fixed bug #49289 (bcmath module doesn't compile with phpize configure). (Jani)
  • Fixed bug #49286 (php://input (php_stream_input_read) is broken). (Jani)
  • Fixed bug #49269 (Ternary operator fails on Iterator object when used inside foreach declaration). (Etienne, Dmitry)
  • Fixed bug #49236 (Missing PHP_SUBST(PDO_MYSQL_SHARED_LIBADD)). (Jani)
  • Fixed bug #49223 (Inconsistency using get_defined_constants). (Garrett)
  • Fixed bug #49193 (gdJpegGetVersionString() inside gd_compact identifies wrong type in declaration). (Ilia)
  • Fixed bug #49183 (dns_get_record does not return NAPTR records). (Pierre)
  • Fixed bug #49144 (Import of schema from different host transmits original authentication details). (Dmitry)
  • Fixed bug #49142 (crash when exception thrown from __tostring()). (David Soria Parra)
  • Fixed bug #49986 (Missing ICU DLLs on windows package). (Pierre)
  • Fixed bug #49132 (posix_times returns false without error). (phpbugs at gunnu dot us)
  • Fixed bug #49125 (Error in dba_exists C code). (jdornan at stanford dot edu)
  • Fixed bug #49122 (undefined reference to mysqlnd_stmt_next_result on compile with --with-mysqli and MySQL 6.0). (Jani)
  • Fixed bug #49108 (2nd scan_dir produces segfault). (Felipe)
  • Fixed bug #49098 (mysqli segfault on error). (Rasmus)
  • Fixed bug #49095 (proc_get_status['exitcode'] fails on win32). (Felipe)
  • Fixed bug #49092 (ReflectionFunction fails to work with functions in fully qualified namespaces). (Kalle, Jani)
  • Fixed bug #49074 (private class static fields can be modified by using reflection). (Jani)
  • Fixed bug #49072 (feof never returns true for damaged file in zip). (Pierre)
  • Fixed bug #49065 ("disable_functions" php.ini option does not work on Zend extensions). (Stas)
  • Fixed bug #49064 (--enable-session=shared does not work: undefined symbol: php_url_scanner_reset_vars). (Jani)
  • Fixed bug #49056 (parse_ini_file() regression in 5.3.0 when using non-ASCII strings as option keys). (Jani)
  • Fixed bug #49052 (context option headers freed too early when using --with-curlwrappers). (Jani)
  • Fixed bug #49047 (The function touch() fails on directories on Windows). (Pierre)
  • Fixed bug #49032 (SplFileObject::fscanf() variables passed by reference). (Jani)
  • Fixed bug #49027 (mysqli_options() doesn't work when using mysqlnd). (Andrey)
  • Fixed bug #49026 (proc_open() can bypass safe_mode_protected_env_vars restrictions). (Ilia)
  • Fixed bug #49012 (phar tar signature algorithm reports as Unknown (0) in getSignature() call). (Greg)
  • Fixed bug #49020 (phar misinterprets ustar long filename standard). (Greg)
  • Fixed bug #49018 (phar tar stores long filenames wit prefix/name reversed). (Greg)
  • Fixed bug #49014 (dechunked filter broken when serving more than 8192 bytes in a chunk). (andreas dot streichardt at globalpark dot com, Ilia)
  • Fixed bug #49000 (PHP CLI in Interactive mode (php -a) crashes when including files from function). (Stas)
  • Fixed bug #48994 (zlib.output_compression does not output HTTP headers when set to a string value). (Jani)
  • Fixed bug #48980 (Crash when compiling with pdo_firebird). (Felipe)
  • Fixed bug #48962 (cURL does not upload files with specified filename). (Ilia)
  • Fixed bug #48929 (Double
  • after HTTP headers when "header" context option is an array). (David Zülke)
  • Fixed bug #48913 (Too long error code strings in pdo_odbc driver). (naf at altlinux dot ru, Felipe)
  • Fixed bug #48912 (Namespace causes unexpected strict behaviour with extract()). (Dmitry)
  • Fixed bug #48909 (Segmentation fault in mysqli_stmt_execute()). (Andrey)
  • Fixed bug #48899 (is_callable returns true even if method does not exist in parent class). (Felipe)
  • Fixed bug #48893 (Problems compiling with Curl). (Felipe)
  • Fixed bug #48872 (string.c: errors: duplicate case values). (Kalle)
  • Fixed bug #48854 (array_merge_recursive modifies arrays after first one). (Felipe)
  • Fixed bug #48805 (IPv6 socket transport is not working). (Ilia)
  • Fixed bug #48802 (printf() returns incorrect outputted length). (Jani)
  • Fixed bug #48880 (Random Appearing open_basedir problem). (Rasmus, Gwynne)
  • Fixed bug #48791 (open office files always reported as corrupted). (Greg)
  • Fixed bug #48788 (RecursiveDirectoryIterator doesn't descend into symlinked directories). (Ilia)
  • Fixed bug #48783 (make install will fail saying phar file exists). (Greg)
  • Fixed bug #48774 (SIGSEGVs when using curl_copy_handle()). (Sriram Natarajan)
  • Fixed bug #48771 (rename() between volumes fails and reports no error on Windows). (Pierre)
  • Fixed bug #48768 (parse_ini_*() crash with INI_SCANNER_RAW). (Jani)
  • Fixed bug #48763 (ZipArchive produces corrupt archive). (dani dot church at gmail dot com, Pierre)
  • Fixed bug #48762 (IPv6 address filter still rejects valid address). (Felipe)
  • Fixed bug #48757 (ReflectionFunction::invoke() parameter issues). (Kalle)
  • Fixed bug #48754 (mysql_close() crash php when no handle specified). (Johannes, Andrey)
  • Fixed bug #48752 (Crash during date parsing with invalid date). (Pierre)
  • Fixed bug #48746 (Unable to browse directories within Junction Points). (Pierre, Kanwaljeet Singla)
  • Fixed bug #48745 (mysqlnd: mysql_num_fields returns wrong column count for mysql_list_fields). (Andrey)
  • Fixed bug #48740 (PHAR install fails when INSTALL_ROOT is not the final install location). (james dot cohen at digitalwindow dot com, Greg)
  • Fixed bug #48733 (CURLOPT_WRITEHEADER|CURLOPT_FILE|CURLOPT_STDERR warns on files that have been opened with r+). (Ilia)
  • Fixed bug #48719 (parse_ini_*(): scanner_mode parameter is not checked for sanity). (Jani)
  • Fixed bug #48718 (FILTER_VALIDATE_EMAIL does not allow numbers in domain components). (Ilia)
  • Fixed bug #48681 (openssl signature verification for tar archives broken). (Greg)
  • Fixed bug #48660 (parse_ini_*(): dollar sign as last character of value fails). (Jani)
  • Fixed bug #48645 (mb_convert_encoding() doesn't understand hexadecimal html-entities). (Moriyoshi)
  • Fixed bug #48637 ("file" fopen wrapper is overwritten when using --with-curlwrappers). (Jani)
  • Fixed bug #48608 (Invalid libreadline version not detected during configure). (Jani)
  • Fixed bug #48400 (imap crashes when closing stream opened with OP_PROTOTYPE flag). (Jani)
  • Fixed bug #48377 (error message unclear on converting phar with existing file). (Greg)
  • Fixed bug #48247 (Infinite loop and possible crash during startup with errors when errors are logged). (Jani)
  • Fixed bug #48198 error: 'MYSQLND_LLU_SPEC' undeclared. Cause for #48780 and #46952 - both fixed too. (Andrey)
  • Fixed bug #48189 (ibase_execute error in return param). (Kalle)
  • Fixed bug #48182 (ssl handshake fails during asynchronous socket connection). (Sriram Natarajan)
  • Fixed bug #48116 (Fixed build with Openssl 1.0). (Pierre, Al dot Smith at aeschi dot ch dot eu dot org)
  • Fixed bug #48057 (Only the date fields of the first row are fetched, others are empty). (info at programmiernutte dot net)
  • Fixed bug #47481 (natcasesort() does not sort extended ASCII characters correctly). (Herman Radtke)
  • Fixed bug #47351 (Memory leak in DateTime). (Derick, Tobias John)
  • Fixed bug #47273 (Encoding bug in SoapServer->fault). (Dmitry)
  • Fixed bug #46682 (touch() afield returns different values on windows). (Pierre)
  • Fixed bug #46614 (Extended MySQLi class gives incorrect empty() result). (Andrey)
  • Fixed bug #46020 (with Sun Java System Web Server 7.0 on HPUX, #define HPUX). (Uwe Schindler)
  • Fixed bug #45905 (imagefilledrectangle() clipping error). (markril at hotmail dot com, Pierre)
  • Fixed bug #45554 (Inconsistent behavior of the u format char). (Derick)
  • Fixed bug #45141 (setcookie will output expires years of >4 digits). (Ilia)
  • Fixed bug #44683 (popen crashes when an invalid mode is passed). (Pierre)
  • Fixed bug #43510 (stream_get_meta_data() does not return same mode as used in fopen). (Jani)
  • Fixed bug #42434 (ImageLine w/ antialias = 1px shorter). (wojjie at gmail dot com, Kalle)
  • Fixed bug #40013 (php_uname() does not return nodename on Netware (Guenter Knauf)
  • Fixed bug #38091 (Mail() does not use FQDN when sending SMTP helo). (Kalle, Rick Yorgason)
  • Fixed bug #28038 (Sent incorrect RCPT TO commands to SMTP server) (Garrett)
  • Fixed bug #27051 (Impersonation with FastCGI does not exec process as impersonated user). (Pierre)
  • Fixed PECL bug #16842 (oci_error return false when NO_DATA_FOUND is raised). (Chris Jones)

New in PHP 5.3.0 RC2 (May 8, 2009)

  • The PHP development team is proud to announce the second release candidate of PHP 5.3.0 (PHP 5.3.0RC2). This RC focuses on bug fixes and stability improvements, and we hope only minimal changes are required for the next candidate (RC3).

New in PHP 5.2.8 (Jan 30, 2009)

  • The PHP Development Team would like to announce the immediate availability of PHP 5.2.8. This release addresses a regression introduced by 5.2.7 in regard to the magic_quotes functionality, which was broken by an incorrect fix to the filter extension. All users who have upgraded to 5.2.7 are encouraged to upgrade to this release. Alternatively you can apply a work-around for the bug by changing "filter.default_flags=0" in php.ini.

New in PHP 5.2.1 (Feb 27, 2007)

  • Fixed possible safe_mode & open_basedir bypasses inside the session extension.
  • Fixed unserialize() abuse on 64 bit systems with certain input strings.
  • Fixed possible overflows and stack corruptions in the session extension.
  • Fixed an underflow inside the internal sapi_header_op() function.
  • Prevent search engines from indexing the phpinfo() page.
  • Fixed a number of input processing bugs inside the filter extension.
  • Fixed allocation bugs caused by attempts to allocate negative values in some code paths.
  • Fixed possible stack/buffer overflows inside zip, imap & sqlite extensions.
  • Fixed several possible buffer overflows inside the stream filters.
  • Memory limit is now enabled by default.
  • Added internal heap protection.
  • Extended filter extension support for $_SERVER in CGI and apache2 SAPIs.
  • Fixed non-validated resource destruction inside the shmop extension.
  • Fixed a possible overflow in the str_replace() function.
  • Fixed possible clobbering of super-globals in several code paths.
  • Fixed a possible information disclosure inside the wddx extension.
  • Fixed a possible string format vulnerability in *print() functions on 64 bit systems.
  • Fixed a possible buffer overflow inside ibase_{delete,add,modify}_user() functions.
  • Fixed a string format vulnerability inside the odbc_result_all() function.

New in PHP 5.1.6 (Aug 25, 2006)

  • Fixed memory_limit on 64bit systems. (Stefan E.)
  • Fixed bug #38488(Access to "php://stdin" and family crashes PHP on win32). (Dmitry)

New in PHP 5.1.5 (Aug 18, 2006)

  • Added missing safe_mode/open_basedir checks inside the error_log(), file_exists(), imap_open() and imap_reopen() functions.
  • Fixed overflows inside str_repeat() and wordwrap() functions on 64bit systems.
  • Fixed possible open_basedir/safe_mode bypass in cURL extension and with realpath cache.
  • Fixed overflow in GD extension on invalid GIF images.
  • Fixed a buffer overflow inside sscanf() function.
  • Fixed an out of bounds read inside stripos() function.
  • Fixed memory_limit restriction on 64 bit system.