PHP 5 ChangeLog
Version 5.2.1
08-Feb-2007- Added CURLOPT_TCP_NODELAY constant to Curl extension. (Sara)
- Added support for hex numbers of any size. (Matt)
- Added function stream_socket_shutdown(). It is a wrapper for system shutdown() function, that shut downs part of a full-duplex connection. (Dmitry)
- Added internal heap protection (Dmitry)
- memory-limit is always enabled (--enable-memory-limit removed)
- default value if memory-limit is set to 128M
- safe unlinking
- cookies
- canary protection (debug build only)
- random generation of cookies and canaries
- Added forward support for 'b' prefix in front of string literals. (Andrei)
- Added three new functions to ext/xmlwriter (Rob, Ilia)
- xmlwriter_start_dtd_entity()
- xmlwriter_end_dtd_entity()
- xmlwriter_write_dtd_entity()
- Added a meta tag to phpinfo() output to prevent search engines from indexing the page. (Ilia)
- Added new function, sys_get_temp_dir(). (Hartmut)
- Added missing object support to file_put_contents(). (Ilia)
- Added support for md2, ripemd256 and ripemd320 algos to hash(). (Sara)
- Added forward support for (binary) cast. (Derick)
- Added optimization for imageline with horizontal and vertical lines (Pierre)
- Removed dependency from SHELL32.DLL. (Dmitry)
- Removed double "wrong parameter count" warnings in various functions. (Hannes)
- Moved extensions to PECL:
- ext/informix (Derick, Tony)
- Changed double-to-string utilities to use BSD implementation. (Dmitry, Tony)
- Updated bundled libcURL to version 7.16.0 in the Windows distro. (Edin)
- Updated timezone database to version 2006.16. (Derick)
- cgi.* and fastcgi.* directives are moved to INI subsystem. The new directive cgi.check_shebang_line can be used to omitting check for "#! /usr/bin/php" line. (Dmitry).
- Improved proc_open(). Now on Windows it can run external commands not through CMD.EXE. (Dmitry)
- VCWD_REALPATH() is improved to use realpath cache without VIRTUAL_DIR. (Dmitry)
- ext/bcmath initialization code is moved from request startup to module startup. (Dmitry)
- Zend Memory Manager Improvements (Dmitry)
- use HeapAlloc() instead of VirtualAlloc()
- use "win32" storage manager (instead of "malloc") on Windows by default
- Zip Extension Improvements (Pierre)
- Fixed leak in statName and stateIndex
- Fixed return setComment (Hannes)
- Added addEmptyDir method
- Filter Extension Improvements (Ilia, Pierre)
- Fixed a bug when callback function returns a non-modified value.
- Added filter support for $_SERVER in cgi/apache2 sapis.
- Make sure PHP_SELF is filtered in Apache 1 sapi.
- Fixed bug #39358 (INSTALL_HEADERS contains incorrect reference to php_filter.h).
- Added "default" option that allows a default value to be set for an invalid or missing value.
- Invalid filters fails instead of returning unsafe value
- Fixed possible double encoding problem with sanitizing filters
- Make use of space-strict strip_tags() function
- Fixed whitespace trimming
- Added support for FastCGI environment variables. (Dmitry)
- PDO_MySQL Extension Improvements (Ilia)
- Enabled buffered queries by default.
- Enabled prepared statement emulation by default.
- Small optimization of the date() function. (Matt,Ilia)
- Optimized the internal is_numeric_string() function. (Matt,Ilia)
- Optimized array functions utilizing php_splice(). (Ilia)
- Windows related optimizations (Dmitry, Stas)
- COM initialization/deinitialization are done only if necessary
- removed unnecessary checks for ISREG file and corresponding stat() calls
- opendir() is reimplementation using GetFirstFile/GetNextFile those are faster then _findfirst/_findnext
- implemented registry cache that prevent registry lookup on each request. In case of modification of corresponding registry-tree PHP will reload it automatic
- start timeout thread only if necessary
- stat() is reimplementation using GetFileAttributesEx(). The new implementation is faster then implementation in MS VC CRT, but it doesn't support Windows 95.
- Streams optimization (Dmitry)
- removed unnecessary ftell() calls (one call for each included PHP file)
- disabled calls to read() after EOF
- Fixed incorrect function names on FreeBSD where inet_pton() was named __inet_pton() and inet_ntop() was named __inet_ntop(). (Hannes)
- Fixed FastCGI impersonation for persistent connections on Windows. (Dmitry)
- Fixed wrong signature initialization in imagepng (Takeshi Abe)
- Fixed ftruncate() with negative size on FreeBSD. (Hannes)
- Fixed segfault in RegexIterator when given invalid regex. (Hannes)
- Fixed segfault in SplFileObject->openFile()->getPathname(). (Hannes)
- Fixed segfault in ZTS mode when OCI8 statements containing sub-statements are destroyed in wrong order. (Tony)
- Fixed the validate email filter so that the letter "v" can also be used in the user part of the email address. (Derick)
- Fixed bug #40297 (compile failure in ZTS mode when collections support is missing). (Tony)
- Fixed bug #40285 (The PDO prepare parser goes into an infinite loop in some instances). (Ilia)
- Fixed bug #40274 (Sessions fail with numeric root keys). (Ilia)
- Fixed bug #40259 (ob_start call many times - memory error). (Dmitry)
- Fixed bug #40231 (file_exists incorrectly reports false). (Dmitry)
- Fixed bug #40228 (ZipArchive::extractTo does create empty directories recursively). (Pierre)
- Fixed bug #40200 (The FastCgi version has different realpath results than thread safe version). (Dmitry)
- Fixed bug #40191 (use of array_unique() with objects triggers segfault). (Tony)
- Fixed bug #40189 (possible endless loop in zlib.inflate stream filter). (Greg, Tony)
- Fixed bug #40169 (CURLOPT_TCP_NODELAY only available in curl >= 7.11.2). (Tony)
- Fixed bug #40129 (iconv extension doesn't compile with CodeWarrior on Netware). (gk at gknw dot de, Tony)
- Fixed bug #40127 (apache2handler doesn't compile on Netware). (gk at gknw dot de)
- Fixed bug #40121 (PDO_DBLIB driver wont free statements). (Ilia)
- Fixed bug #40098 (php_fopen_primary_script() not thread safe). (Ilia)
- Fixed bug #40092 (chroot() doesn't clear realpath cache). (Dmitry)
- Fixed bug #40091 (spl_autoload_register with 2 instances of the same class). (Ilia)
- Fixed bug #40083 (milter SAPI functions always return false/null). (Tony)
- Fixed bug #40079 (php_get_current_user() not thread safe). (Ilia, wharmby at uk dot ibm dot com)
- Fixed bug #40078 (ORA-01405 when fetching NULL values using oci_bind_array_by_name()). (Tony)
- Fixed bug #40076 (zend_alloc.c: Value of enumeration constant must be in range of signed integer). (Dmitry)
- Fixed bug #40073 (exif_read_data dies on certain images). (Tony, Marcus)
- Fixed bug #40036 (empty() does not work correctly with ArrayObject when using ARRAY_AS_PROPS). (Ilia)
- Fixed bug #40012 (php_date.c doesn't compile on Netware). (gk at gknw dot de, Derick)
- Fixed bug #40009 (http_build_query(array()) returns NULL). (Ilia)
- Fixed bug #40002 (Try/Catch performs poorly). (Dmitry)
- Fixed bug #39993 (tr_TR.UTF-8 locale has problems with PHP). (Ilia)
- Fixed bug #39990 (Cannot "foreach" over overloaded properties). (Dmitry)
- Fixed bug #39988 (type argument of oci_define_by_name() is ignored). (Chris Jones, Tony)
- Fixed bug #39984 (redirect response code in header() could be ignored in CGI sapi). (Ilia)
- Fixed bug #39979 (PGSQL_CONNECT_FORCE_NEW will causes next connect to establish a new connection). (Ilia)
- Fixed bug #39971 (pg_insert/pg_update do not allow now() to be used for timestamp fields). (Ilia)
- Fixed bug #39969 (ini setting short_open_tag has no effect when using --enable-maintainer-zts). (Dmitry)
- Fixed bug #39952 (zip ignoring --with-libdir on zlib checks) (judas dot iscariote at gmail dot com)
- Fixed bug #39944 (References broken). (Dmitry)
- Fixed bug #39935 (Extensions tidy,mcrypt,mhash,pdo_sqlite ignores --with-libdir). (judas dot iscariote at gmail dot com, Derick)
- Fixed bug #39903 (Notice message when executing __halt_compiler() more than once). (Tony)
- Fixed bug #39898 (FILTER_VALIDATE_URL validates \r\n\t etc). (Ilia)
- Fixed bug #39890 (using autoconf 2.6x and --with-layout=GNU breaks PEAR install path). (Tony)
- Fixed bug #39884 (ReflectionParameter::getClass() throws exception for type hint self). (thekid at php dot net)
- Fixed bug #39878 (CURL doesn't compile on Sun Studio Pro). (Ilia)
- Fixed bug #39873 (number_format() breaks with locale & decimal points). (Ilia)
- Fixed bug #39869 (safe_read does not initialize errno). (michiel at boland dot org, Dmitry)
- Fixed bug #39850 (SplFileObject throws contradictory/wrong error messages when trying to open "php://wrong"). (Tony)
- Fixed bug #39846 (Invalid IPv4 treated as valid). (Ilia)
- Fixed bug #39845 (Persistent connections generate a warning in pdo_pgsql). (Ilia)
- Fixed bug #39832 (SOAP Server: parameter not matching the WSDL specified type are set to 0). (Dmitry)
- Fixed bug #39825 (foreach produces memory error). (Dmitry)
- Fixed bug #39816 (apxs2filter ignores httpd.conf & .htaccess php config settings). (Ilia)
- Fixed bug #39815 (SOAP double encoding is not locale-independent). (Dmitry)
- Fixed bug #39797 (virtual() does not reset changed INI settings). (Ilia)
- Fixed bug #39795 (build fails on AIX because crypt_r() uses different data struct). (Tony)
- Fixed bug #39791 (Crash in strtotime() on overly long relative date multipliers). (Ilia)
- Fixed bug #39787 (PHP doesn't work with Apache 2.3). (mv at binarysec dot com).
- Fixed bug #39782 (setTime() on a DateTime constructed with a Weekday yields incorrect results). (Ilia)
- Fixed bug #39780 (PNG image with CRC/data error raises fatal error) (Pierre)
- Fixed bug #39779 (Enable AUTH PLAIN mechanism in underlying libc-client). (michael dot heimpold at s2000 dot tu-chemnitz dot de, Ilia)
- Fixed bug #39775 ("Indirect modification ..." message is not shown). (Dmitry)
- Fixed bug #39763 (magic quotes are applied twice by ext/filter in parse_str()). (Ilia)
- Fixed bug #39760 (cloning fails on nested SimpleXML-Object). (Rob)
- Fixed bug #39759 (Can't use stored procedures fetching multiple result sets in pdo_mysql). (Ilia)
- Fixed bug #39754 (Some POSIX extension functions not thread safe). (Ilia, wharmby at uk dot ibm dot com)
- Fixed bug #39751 (putenv crash on Windows). (KevinJohnHoffman at gmail.com)
- Fixed bug #39732 (oci_bind_array_by_name doesn't work on Solaris 64bit). (Tony)
- Fixed bug #39724 (Broken build due to spl/filter usage of pcre extension). (Tony, Ilia)
- Fixed bug #39718 (possible crash if assert.callback is set in ini). (Ilia)
- Fixed bug #39702 (php crashes in the allocator on linux-m68k). (Dmitry)
- Fixed bug #39685 (iconv() - undefined function). (Hannes)
- Fixed bug #39673 (file_get_contents causes bus error on certain offsets). (Tony)
- Fixed bug #39663 (Memory leak in pg_get_notify() and a possible memory corruption on Windows in pgsql and pdo_pgsql extensions). (Ilia, matteo at beccati dot com)
- Fixed bug #39662 (Segfault when calling asXML() of a cloned SimpleXMLElement). (Rob, Tony)
- Fixed bug #39656 (crash when calling fetch() on a PDO statment object after closeCursor()). (Ilia, Tony)
- Fixed bug #39653 (ext/dba doesn't check for db-4.5 and db-4.4 when db4 support is enabled). (Tony)
- Fixed bug #39652 (Wrong negative results from memory_get_usage()). (Dmitry)
- Fixed bug #39648 (Implementation of PHP functions chown() and chgrp() are not thread safe). (Ilia, wharmby at uk dot ibm dot com)
- Fixed bug #39640 (Segfault with "Allowed memory size exhausted"). (Dmitry)
- Fixed bug #39625 (Apache crashes on importStylesheet call). (Rob)
- Fixed bug #39623 (thread safety fixes on *nix for putenv() & mime_magic). (Ilia, wharmby at uk dot ibm dot com)
- Fixed bug #39621 (str_replace() is not binary safe on strings with equal length). (Tony)
- Fixed bug #39613 (Possible segfault in imap initialization due to missing module dependency). (wharmby at uk dot ibm dot com, Tony)
- Fixed bug #39606 (Use of com.typelib_file in PHP.ini STILL causes A/V). (Rob)
- Fixed bug #39602 (Invalid session.save_handler crashes PHP). (Dmitry)
- Fixed bug #39596 (Creating Variant of type VT_ARRAY). (Rob)
- Fixed bug #39583 (ftp_put() does not change transfer mode to ASCII). (Tony)
- Fixed bug #39576 (array_walk() doesn't separate user data zval). (Tony)
- Fixed bug #39575 (move_uploaded_file() no longer working (safe mode related)). (Tony)
- Fixed bug #39571 (timeout ssl:// connections). (Ilia)
- Fixed bug #39564 (PDO::errorInfo() returns inconsistent information when sqlite3_step() fails). (Tony)
- Fixed bug #39548 (ZMSG_LOG_SCRIPT_NAME not routed to OutputDebugString() on Windows). (Dmitry)
- Fixed bug #39538 (fgetcsv can't handle starting newlines and trailing odd number of backslashes). (David Soria Parra, Pierre)
- Fixed bug #39534 (Error in maths to calculate of ZEND_MM_ALIGNED_MIN_HEADER_SIZE). (wharmby at uk dot ibm dot com, Dmitry)
- Fixed bug #39527 (Failure to retrieve results when multiple unbuffered, prepared statements are used in pdo_mysql). (Ilia)
- Fixed bug #39508 (imagefill crashes with small images 3 pixels or less). (Pierre)
- Fixed bug #39506 (Archive corrupt with ZipArchive::addFile method). (Pierre)
- Fixed bug #39504 (xmlwriter_write_dtd_entity() creates Attlist tag, not entity). (Hannes)
- Fixed bug #39483 (Problem with handling of \ char in prepared statements). (Ilia, suhachov at gmail dot com)
- Fixed bug #39458 (ftp_nlist() returns false on empty dirs). (Nuno)
- Fixed bug #39454 (Returning a SOAP array segfaults PHP). (Dmitry)
- Fixed bug #39450 (getenv() fills other super-globals). (Ilia, Tony)
- Fixed bug #39449 (Overloaded array properties do not work correctly). (Dmitry)
- Fixed bug #39445 (Calling debug_backtrace() in the __toString() function produces a crash). (Dmitry)
- Fixed bug #39438 (Fatal error: Out of memory). (Dmitry)
- Fixed bug #39435 ('foo' instanceof bar gives invalid opcode error). (Sara)
- Fixed bug #39414 (Syntax error while compiling with Sun Workshop Complier). (Johannes)
- Fixed bug #39398 (Booleans are not automatically translated to integers). (Ilia)
- Fixed bug #39394 (Missing check for older variants of openssl). (Ilia)
- Fixed bug #39367 (clearstatcache() doesn't clear realpath cache). (j at pureftpd dot org, Dmitry)
- Fixed bug #39366 (imagerotate does not use alpha with angle > 45 degrees) (Pierre)
- Fixed bug #39364 (Removed warning on empty haystack inside mb_strstr()). (Ilia)
- Fixed bug #39362 (Added an option to imap_open/imap_reopen to control the number of connection retries). (Ilia)
- Fixed bugs #39361, #39400 (mbstring function overloading problem). (Seiji)
- Fixed bug #39354 (Allow building of curl extension against libcurl 7.16.0). (Ilia)
- Fixed bug #39350 (crash with implode("\n", array(false))). (Ilia)
- Fixed bug #39344 (Unnecessary calls to OnModify callback routine for an extension INI directive). (wharmby at uk dot ibm dot com, Dmitry)
- Fixed bug #39320 (ZEND_HASH_APPLY_STOP causes deletion). (Marcus)
- Fixed bug #39313 (spl_autoload triggers Fatal error). (Marcus)
- Fixed bug #39300 (make install fails if wget is not available). (Tony)
- Fixed bug #39297 (Memory corruption because of indirect modification of overloaded array). (Dmitry)
- Fixed bug #39286 (misleading error message when invalid dimensions are given) (Pierre)
- Fixed bug #39273 (imagecopyresized may ignore alpha channel) (Pierre)
- Fixed bug #39265 (Fixed path handling inside mod_files.sh). (michal dot taborsky at gmail dot com, Ilia)
- Fixed bug #39217 (serialNumber might be -1 when the value is too large). (Pierre, Tony)
- Fixed bug #39215 (Inappropriate close of stdin/stdout/stderr). (Wez, Ilia)
- Fixed bug #39201 (Possible crash in Apache 2 with 413 ErrorHandler). (Ilia)
- Fixed bug #39151 (Parse error in recursiveiteratoriterator.php). (Marcus)
- Fixed bug #39121 (Incorrect return array handling in non-wsdl soap client). (Dmitry)
- Fixed bug #39090 (DirectoryFilterDots doxygen docs and example is wrong). (Marcus)
- Fixed bug #38852 (XML-RPC Breaks iconv). (Hannes)
- Fixed bug #38770 (unpack() broken with longs on 64 bit machines). (Ilia, David Soria Parra).
- Fixed bug #38698 (for some keys cdbmake creates corrupted db and cdb can't read valid db). (Marcus)
- Fixed bug #38680 (Added missing handling of basic types in json_decode). (Ilia)
- Fixed bug #38604 (Fixed request time leak inside foreach() when iterating through virtual properties). (Dmitry)
- Fixed bug #38602 (header( "HTTP/1.0 ..." ) does not change proto version). (Ilia)
- Fixed bug #38542 (proc_get_status() returns wrong PID on windows). (Nuno)
- Fixed bug #38536 (SOAP returns an array of values instead of an object). (Dmitry)
- Fixed bug #38456 (Apache2 segfaults when virtual() is called in .php ErrorDocument). (Ilia)
- Fixed bug #38325 (spl_autoload_register() gives wrong line for "class not found"). (Ilia)
- Fixed bug #38319 (Remove bogus warnings from persistent PDO connections). (Ilia)
- Fixed bug #38274 (Memlimit fatal error sent to "wrong" stderr when using fastcgi). (Dmitry)
- Fixed bug #38252 (Incorrect PDO error message on invalid default fetch mode). (Ilia)
- Fixed bug #37927 (Prevent trap when COM extension processes argument of type VT_DISPATCH|VT_REF) (Andy)
- Fixed bug #37773 (iconv_substr() gives "Unknown error" when string length = 1"). (Ilia)
- Fixed bug #37627 (session save_path check checks the parent directory). (Ilia)
- Fixed bug #37619 (proc_open() closes stdin on fork() failure). (jdolecek at NetBSD dot org, Nuno)
- Fixed bug #37588 (COM Property propputref converts to PHP function and can't be accesed). (Rob)
- Fixed bug #36975 (natcasesort() causes array_pop() to misbehave). (Hannes)
- Fixed bug #36812 (pg_execute() modifies input array). (Ilia)
- Fixed bug #36798 (Error parsing named parameters with queries containing high-ascii chars). (Ilia)
- Fixed bug #36644 (possible crash in variant_date_from_timestamp()). (Ilia)
- Fixed bug #36427 (proc_open() / proc_close() leak handles on windows). (jdolecek at NetBSD dot org, Nuno)
- Fixed bug #36392 (wrong number of decimal digits with %e specifier in sprintf). (Matt,Ilia)
- Fixed bug #36214 (__get method works properly only when conditional operator is used). (Dmitry)
- Fixed bug #35634 (Erroneous "Class declarations may not be nested" error raised). (Carl P. Corliss, Dmitry)
- Fixed bug #35106 (nested foreach fails when array variable has a reference). (Dmitry)
- Fixed bug #34564 (COM extension not returning modified "out" argument) (Andy)
- Fixed bug #33734 (Something strange with COM Object). (Rob)
- Fixed bug #33386 (ScriptControl only sees last function of class). (Rob)
- Fixed bug #33282 (Re-assignment by reference does not clear the is_ref flag) (Ilia, Dmitry, Matt Wilmas)
- Fixed bug #30074 (apparent symbol table error with extract($blah, EXTR_REFS)) (Brian)
- Fixed bug #29840 (is_executable() does not honor safe_mode_exec_dir setting). (Ilia)
- Fixed PECL bug #7295 (ORA-01405: fetched column value is NULL on LOB fields). (Tony)
Version 5.2.0
02-Nov-2006- Updated bundled OpenSSL to version 0.9.8d in the Windows distro. (Edin)
- Updated Postgresql client libraries to 8.1.4 in the Windows distro. (Edin)
- Updated PCRE to version 6.7. (Ilia)
- Updated libsqlite in ext/pdo_sqlite to 3.3.7. (Ilia)
- Updated bundled MySQL client library to version 5.0.22 in the Windows distribution. (Edin)
- Updated timezonedb to version 2006.14. (Derick)
- Added ability to make SOAP call userspace PHP<->XML converters. (Dmitry)
- Added support for character sets in pg_escape_string() for PostgreSQL 8.1.4 and higher. (Ilia)
- Added support for character sets in PDO quote() method for PostgreSQL 8.1.4 and higher. (Ilia)
- Added DSA key generation support to openssl_pkey_new(), FR #38731 (marci at balabit dot hu, Tony)
- Added SoapServer::setObject() method (it is a simplified version of SoapServer::setClass() method). (Dmitry)
- Added support for hexadecimal entity in imagettftext() for the bundled GD. (Pierre)
- Added support for httpOnly flag for session extension and cookie setting functions. (Scott MacVicar, Ilia)
- Added version specific registry keys to allow different configurations for different php version. (Richard, Dmitry)
- Added "PHPINIDir" Apache directive to apache and apache_hooks SAPIs. (Dmitry)
- Added an optional boolean parameter to memory_get_usage() and memory_get_peak_usage() to get memory size allocated by emalloc() or real size of memory allocated from system. (Dmitry)
- Added Zip Archive extension. (Pierre)
- Added RFC1867 fileupload processing hook. (Stefan E.)
- Added JSON and Filter extensions. (Derick, Rasmus, Pierre, Ilia)
- Added error messages to disk_free_space() and disk_total_space() functions. FR #37971 (Tony)
- Added PATHINFO_FILENAME option to pathinfo() to get the filename. (Toby S. and Christian S.)
- Added array_fill_keys() function. (Marcus, Matt Wilmas)
- Added posix_initgroups() function. (Ilia)
- Added an optional parameter to parse_url() to allow retrieval of distinct URL components. (Ilia)
- Added optional parameter to http_build_query() to allow specification of string separator. (Ilia)
- Added image_type_to_extension() function. (Hannes, Ilia)
- Added allow_url_include ini directive to complement allow_url_fopen. (Rasmus)
- Added automatic module globals management. (Dmitry)
- Added RFC2397 (data: stream) support. (Marcus)
- Added new error mode E_RECOVERABLE_ERROR. (Derick, Marcus, Tony)
- Added support for getenv() input filtering. (Rasmus)
- Added support for constructors in interfaces to force constructor signature checks in implementations. (Marcus)
- Added memory_get_peak_usage() function for retrieving peak memory usage of a PHP script. (Ilia)
- Added pg_field_table() function. (Edin)
- Added SimpleXMLElement::saveXML() as an alias for SimpleXMLElement::asXML(). (Hannes)
- Added DOMNode::getNodePath() for getting an XPath for a node. (Christian)
- Added gmp_nextprime() function. (ants dot aasma at gmail dot com, Tony)
- Added error_get_last() function. (Mike)
- Removed current working directory from the php.ini search path for CLI and re-added it for other SAPIs (restore to pre 5.1.x behavior). (Edin)
- Moved extensions to PECL:
- ext/filepro (Derick, Tony)
- ext/hwapi (Derick, Tony)
- Disabled CURLOPT_FOLLOWLOCATION in curl when open_basedir or safe_mode are enabled. (Stefan E., Ilia)
- Increased default memory limit to 16 megabytes to accommodate for a more accurate memory utilization measurement.
- In addition to path to php.ini, PHPRC now may specify full file name. (Dmitry)
- Optimized array/HashTable copying. (Matt Wilmas, Dmitry)
- Optimized zend_try/zend_catch macros by eliminating memcpy(3). (Dmitry)
- Optimized require_once() and include_once() by eliminating fopen(3) on second usage. (Dmitry)
- Optimized request shutdown sequence. Restoring ini directives now iterates only over modified directives instead of all. (Dmitry)
- Changed priority of PHPRC environment variable on win32 to be higher then value from registry. (Dmitry)
- Changed __toString() to be called wherever applicable. (Marcus)
- Changed E_ALL error reporting mode to include E_RECOVERABLE_ERROR. (Marcus)
- Changed realpath cache to be disabled when "open_basedir" or "safe_mode" are enabled on per-request basis. (Ilia)
- Improved SNMP extension: (Jani)
- Renamed snmp_set_oid_numeric_print() to snmp_set_oid_output_format().
- Added 2 new constants: SNMP_OID_OUTPUT_FULL and SNMP_OID_OUTPUT_NUMERIC
- Fixed bug #37564 (AES privacy encryption not possible due to net-snmp 5.2 compatibility issue). (Patch: scott dot moynes+php at gmail dot com)
- Improved OpenSSL extension: (Pierre)
- Added support for all supported algorithms in openssl_verify
- Added openssl_pkey_get_details, returns the details of a key
- Added x509 v3 extensions support
- Added openssl_csr_get_subject() and openssl_csr_get_public_key()
- Added 3 new constants OPENSSL_VERSION_TEXT and OPENSSL_VERSION_NUMBER and OPENSSL_KEYTYPE_EC
- Improved the Zend memory manager: (Dmitry)
- Removed unnecessary "--disable-zend-memory-manager" configure option.
- Added "--enable-malloc-mm" configure option which is enabled by default in debug builds to allow using internal and external memory debuggers.
- Allow tweaking the memory manager with ZEND_MM_MEM_TYPE and ZEND_MM_SEG_SIZE environment variables.
- For more information: Zend/README.ZEND_MM
- Improved safe_mode check for the error_log() function. (Ilia)
- Improved the error reporting in SOAP extension on request failure. (Ilia)
- Improved crypt() on win32 to be about 10 times faster and to have friendlier license. (Frank, Dmitry)
- Improved performance of the implode() function on associated arrays. (Ilia)
- Improved performance of str_replace() when doing 1 char to 1 char or 1 char to many chars replacement. (Ilia)
- Improved apache2filter SAPI:
- Allowed PHP to be an arbitrary filter in the chain and read the script from the Apache stream. (John)
- Added support for apache2filter in the Windows build including binary support for both Apache 2.0.x (php5apache2_filter.dll) and Apache 2.2.x (php5apache2_2_filter.dll). (Edin)
- Improved apache2handler SAPI:
- Changed ap_set_content_type() to be called only once. (Mike)
- Added support for Apache 2.2 handler in the Windows distribution. (Edin)
- Improved FastCGI SAPI: (Dmitry)
- Removed source compatibility with libfcgi.
- Optimized access to FastCGI environment variables by using HashTable instead of linear search.
- Allowed PHP_FCGI_MAX_REQUESTS=0 that assumes no limit.
- Allowed PHP_FCGI_CHILDREN=0 that assumes no worker children. (FastCGI requests are handled by main process itself)
- Improved CURL:
- Added control character checks for "open_basedir" and "safe_mode" checks. (Ilia)
- Added implementation of curl_multi_info_read(). (Brian)
- Improved PCRE: (Andrei)
- Added run-time configurable backtracking/recursion limits.
- Added preg_last_error(). (Andrei)
- Improved PDO:
- Added new attribute ATTR_DEFAULT_FETCH_MODE. (Pierre)
- Added FETCH_PROPS_LATE. (Marcus)
- Improved SPL: (Marcus)
- Made most iterator code exception safe.
- Added RegExIterator and RecursiveRegExIterator.
- Added full caching support and ArrayAccess to CachingIterator.
- Added array functions to ArrayObject/ArrayIterator and made them faster.
- Added support for reading csv and skipping empty lines in SplFileObject.
- Added CachingIterator::TOSTRING_USE_INNER, calls inner iterator __toString.
- Added ability to set the CSV separator per SplFileObject.
- Improved xmlReader: (Rob)
- Added readInnerXml(), xmlReader::setSchema().
- Added readInnerXML(), readOuterXML(), readString(), setSchema(). (2.6.20+)
- Changed to passing libxml options when loading reader.
- Fixed invalid read in imagecreatefrompng when an empty file is given (Pierre, Tony)
- Fixed infinite loop when a wrong color index is given to imagefill (Pierre)
- Fixed mess with CGI/CLI -d option (now it works with cgi; constants are working exactly like in php.ini; with FastCGI -d affects all requests). (Dmitry)
- Fixed missing open_basedir check inside chdir() function. (Ilia)
- Fixed overflow on 64bit systems in str_repeat() and wordwrap(). (Stefan E.)
- Fixed XSLTProcessor::importStylesheet() to return TRUE on success (Christian)
- Fixed leaks in openssl_csr_sign and openssl_csr_new (Pierre)
- Fixed phpinfo() cutoff of variables at \0. (Ilia)
- Fixed a bug in the filter extension that prevented magic_quotes_gpc from being applied when RAW filter is used. (Ilia)
- Fixed memory leaks in openssl streams context options. (Pierre)
- Fixed handling of extremely long paths inside tempnam() function. (Ilia)
- Fixed bug #39304 Segmentation fault with list unpacking of string offset). (Dmitry)
- Fixed bug #39192 Not including nsapi.h properly with SJSWS 7). This will make PHP 5.2 compatible to new Sun Webserver. (Uwe)
- Fixed bug #39140 Uncaught exception may cause crash). (Dmitry)
- Fixed bug #39125 Memleak when reflecting non-existing class/method). (Tony)
- Fixed bug #39067 getDeclaringClass() and private properties). (Tony)
- Fixed bug #39039 SSL: fatal protocol error when fetching HTTPS from servers running Google web server). (Ilia)
- Fixed bug #39035 Compatibility issue between DOM and zend.ze1_compatibility_mode). (Rob)
- Fixed bug #39034 curl_exec() with return transfer returns TRUE on empty files). (Ilia)
- Fixed bug #39032 strcspn() stops on null character). (Tony)
- Fixed bug #39020 PHP in FastCGI server mode crashes). (Dmitry)
- Fixed bug #39017 foreach(($obj = new myClass) as $v); echo $obj; segfaults). (Dmitry)
- Fixed bug #39004 Fixed generation of config.nice with autoconf 2.60). (Ilia)
- Fixed bug #39003 __autoload() is called for type hinting). (Dmitry, Tony)
- Fixed bug #39001 ReflectionProperty returns incorrect declaring class for protected properties). (Tony)
- Fixed bug #38996 PDO_MYSQL doesn't check connections for liveness). (Tony)
- Fixed bug #38993 Fixed safe_mode/open_basedir checks for session.save_path, allowing them to account for extra parameters). (Ilia)
- Fixed bug #38989 Absolute path with slash at beginning doesn't work on win). (Dmitry)
- Fixed bug #38985 Can't cast COM objects). (Wez)
- Fixed bug #38981 using FTP URLs in get_headers() causes crash). (Tony)
- Fixed bug #38963 Fixed a possible open_basedir bypass in tempnam()). (Ilia)
- Fixed bug #38961 metaphone() results in segmentation fault on NetBSD). (Tony)
- Fixed bug #38949 Cannot get xmlns value attribute). (Rob)
- Fixed bug #38942 Double old-style-ctor inheritance). (Dmitry)
- Fixed bug #38941 imap extension does not compile against new version of the imap library). (Ilia)
- Fixed bug #38934 move_uploaded_file() cannot read uploaded file outside of open_basedir). (Ilia)
- Fixed bug #38904 apache2filter changes cwd to /). (Ilia, Hannes)
- Fixed bug #38891 get_headers() do not work with curl-wrappers). (Ilia)
- Fixed bug #38882 ldap_connect causes segfault with newer versions of OpenLDAP). (Tony)
- Fixed bug #38859 parse_url() fails if passing '@' in passwd). (Tony)
- Fixed bug #38850 lookupNamespaceURI doesn't return default namespace). (Rob)
- Fixed bug #38844 curl_easy_strerror() is defined only since cURL 7.12.0). (Tony)
- Fixed bug #38813 DOMEntityReference->__construct crashes when called explicitly). (Rob)
- Fixed bug #38808 "maybe ref" issue for current() and others). (Dmitry)
- Fixed bug #38779 engine crashes when require()'ing file with syntax error through userspace stream wrapper). (Tony, Dmitry)
- Fixed bug #38772 inconsistent overriding of methods in different visibility contexts). (Dmitry)
- Fixed bug #38759 PDO sqlite2 empty query causes segfault). (Tony)
- Fixed bug #38721 Invalid memory read in date_parse()). (Tony, Derick)
- Fixed bug #38700 SoapClient::__getTypes never returns). (Dmitry)
- Fixed bug #38693 curl_multi_add_handle() set curl handle to null). (Ilia)
- Fixed bug #38687 sockaddr local storage insufficient for all sock families). (Sara)
- Fixed bug #38661 mixed-case URL breaks url-wrappers). (Ilia)
- Fixed bug #38653 memory leak in ReflectionClass::getConstant()). (Tony)
- Fixed bug #38649 uninit'd optional arg in stream_socket_sendto()). (Sara)
- Fixed bug #38637 curl_copy_handle() fails to fully copy the cURL handle). (Tony, Ilia)
- Fixed bug #38624 Strange warning when incrementing an object property and exception is thrown from __get method). (Tony)
- Fixed bug #38623 leaks in a tricky code with switch() and exceptions). (Dmitry)
- Fixed bug #38579 include_once() may include the same file twice). (Dmitry)
- Fixed bug #38574 missing curl constants and improper constant detection). (Ilia)
- Fixed bug #38543 shutdown_executor() may segfault when memory_limit is too low). (Dmitry)
- Fixed bug #38535 memory corruption in pdo_pgsql driver on error retrieval inside a failed query executed via query() method). (Ilia)
- Fixed bug #38534 segfault when calling setlocale() in userspace session handler). (Tony)
- Fixed bug #38524 strptime() does not initialize the internal date storage structure). (Ilia)
- Fixed bugs #38511, #38473, #38263 (Fixed session extension request shutdown order to ensure it is shutdown before the extensions it may depend on). (Ilia)
- Fixed bug #38488 Access to "php://stdin" and family crashes PHP on win32). (Dmitry)
- Fixed bug #38474 getAttribute select attribute by order, even when prefixed). (Rob)
- Fixed bug #38467 --enable-versioning causes make fail on OS X). (Tony)
- Fixed bug #38465 ReflectionParameter fails if default value is an access to self::). (Johannes)
- Fixed bug #38464 array_count_values() mishandles numeric strings). (Matt Wilmas, Ilia)
- Fixed bug #38461 setting private attribute with __set() produces segfault). (Tony)
- Fixed bug #38458 PECL bug #8944, PECL bug #7775 (error retrieving columns after long/text columns with PDO_ODBC). (Wez)
- Fixed bug #38454 warning upon disabling handler via xml_set_element_handler). (dtorop933 at gmail dot com, Rob)
- Fixed bug #38451 PDO_MYSQL doesn't compile on Solaris). (Tony)
- Fixed bug #38450 constructor is not called for classes used in userspace stream wrappers). (Tony)
- Fixed bug #38438 DOMNodeList->item(0) segfault on empty NodeList). (Ilia)
- Fixed bug #38431 xmlrpc_get_type() crashes PHP on objects). (Tony)
- Fixed bug #38427 unicode causes xml_parser to misbehave). (Rob)
- Fixed bug #38424 Different attribute assignment if new or existing). (Rob)
- Fixed bug #38400 Use of com.typelib_file may cause a crash). (Ilia)
- Fixed bug #38394 PDO fails to recover from failed prepared statement execution). (Ilia)
- Fixed bug #38377 session_destroy() gives warning after session_regenerate_id()). (Ilia)
- Fixed bug #38357 dbase_open can't open DBase 3 dbf file). (rodrigo at fabricadeideias dot com, Mike)
- Fixed bug #38354 Unwanted reformatting of XML when using AsXML). (Christian)
- Fixed bug #38347 Segmentation fault when using foreach with an unknown/empty SimpleXMLElement). (Tony)
- Fixed bug #38322 reading past array in sscanf() leads to arbitrary code execution). (Tony)
- Fixed bug #38315 Constructing in the destructor causes weird behavior). (Dmitry)
- Fixed bug #38303 spl_autoload_register() suppress all errors silently). (Ilia)
- Fixed bug #38290 configure script ignores --without-cdb,inifile,flatfile). (Marcus)
- Fixed bug #38289 segfault in session_decode() when _SESSION is NULL). (Tony)
- Fixed bug #38287 static variables mess up global vars). (Dmitry)
- Fixed bug #38278 session_cache_expire()'s value does not match phpinfo's session.cache_expire). (Tony)
- Fixed bug #38276 file_exists() works incorrectly with long filenames on Windows). (Ilia, Tony)
- Fixed bug #38269 fopen wrapper doesn't fail on invalid hostname with curlwrappers enabled). (Tony)
- Fixed bug #38265 heap corruption). (Dmitry)
- Fixed bug #38261 openssl_x509_parse() leaks with invalid cert) (Pierre)
- Fixed bug #38255 openssl possible leaks while passing keys) (Pierre)
- Fixed bug #38253 PDO produces segfault with default fetch mode). (Tony)
- Fixed bug #38251 socket_select() and invalid arguments). (Tony)
- Fixed bug #38236 Binary data gets corrupted on multipart/formdata POST). (Ilia)
- Fixed bug #38234 Exception in __clone makes memory leak). (Dmitry, Nuno)
- Fixed bug #38229 strtotime() does not parse YYYY-MM format). (Ilia)
- Fixed bug #38224 session extension can't handle broken cookies). (Ilia)
- Fixed bug #38220 Crash on some object operations). (Dmitry)
- Fixed bug #38217 ReflectionClass::newInstanceArgs() tries to allocate too much memory). (Tony)
- Fixed bug #38214 gif interlace output cannot work). (Pierre)
- Fixed bugs #38213, #37611, #37571 (wddx encoding fails to handle certain characters). (Ilia)
- Fixed bug #38212 Segfault on invalid imagecreatefromgd2part() parameters). (Pierre)
- Fixed bug #38211 variable name and cookie name match breaks script execution). (Dmitry)
- Fixed bug #38199 fclose() unable to close STDOUT and STDERR). (Tony)
- Fixed bug #38198 possible crash when COM reports an exception). (Ilia)
- Fixed bug #38194 ReflectionClass::isSubclassOf() returns TRUE for the class itself). (Ilia)
- Fixed bug #38183 disable_classes=Foobar causes disabled class to be called Foo). (Jani)
- Fixed bug #38179 imagecopy from a palette to a truecolor image loose alpha channel) (Pierre)
- Fixed bug #38173 Freeing nested cursors causes OCI8 to segfault). (Tony)
- Fixed bug #38168 Crash in pdo_pgsql on missing bound parameters). (Ilia)
- Fixed bug #38161 oci_bind_by_name() returns garbage when Oracle didn't set the variable). (Tony)
- Fixed bug #38146 Cannot use array returned from foo::__get('bar') in write context). (Dmitry)
- Fixed bug #38132 ReflectionClass::getStaticProperties() retains \0 in key names). (Ilia)
- Fixed bug #38125 undefined reference to spl_dual_it_free_storage). (Marcus)
- Fixed bug #38112 corrupted gif segfaults) (Pierre)
- Fixed bug #38096 large timeout values ignored on 32bit machines in stream_socket_accept() and stream_socket_client()). (Ilia)
- Fixed bug #38086 stream_copy_to_stream() returns 0 when maxlen is bigger than the actual length). (Tony)
- Fixed bug #38072 boolean arg for mysqli_autocommit() is always true on Solaris). (Tony)
- Fixed bug #38067 Parameters are not decoded from utf-8 when using encoding option). (Dmitry)
- Fixed bug #38064 ignored constructor visibility). (Marcus)
- Fixed bug #38055 Wrong interpretation of boolean parameters). (Dmitry)
- Fixed bug #38047 "file" and "line" sometimes not set in backtrace from inside error handler). (Dmitry)
- Fixed bug #38019 segfault extending mysqli class). (Dmitry)
- Fixed bug #38005 SoapFault faultstring doesn't follow encoding rules). (Dmitry)
- Fixed bug #38004 Parameters in SoapServer are decoded twice). (Dmitry)
- Fixed bug #38003 in classes inherited from MySQLi it's possible to call private constructors from invalid context). (Tony)
- Fixed bug #37987 invalid return of file_exists() in safe mode). (Ilia)
- Fixed bug #37947 zend_ptr_stack reallocation problem). (Dmitry)
- Fixed bug #37945 pathinfo() cannot handle argument with special characters like German "Umlaut"). (Mike)
- Fixed bug #37931 possible crash in OCI8 after database restart when using persistent connections). (Tony)
- Fixed bug #37923 Display constant value in reflection::export). (Johannes)
- Fixed bug #37920 compilation problems on z/OS). (Tony)
- Fixed bug #37870 pgo_pgsql tries to de-allocate unused statements). (Ilia, ce at netage dot bg)
- Fixed bug #37864 file_get_contents() leaks on empty file). (Hannes)
- Fixed bug #37862 Integer pointer comparison to numeric value). (bugs-php at thewrittenword dot com)
- Fixed bug #37846 wordwrap() wraps incorrectly). (ddk at krasn dot ru, Tony)
- Fixed bug #37816 ReflectionProperty does not throw exception when accessing protected attribute). (Marcus)
- Fixed bug #37811 define not using toString on objects). (Marcus)
- Fixed bug #37807 segmentation fault during SOAP schema import). (Tony)
- Fixed bug #37806 weird behavior of object type and comparison). (Marcus)
- Fixed bug #37780 memory leak trying to execute a non existing file (CLI)). (Mike)
- Fixed bug #37779 empty include_path leads to search for files inside /). (jr at terragate dot net, Ilia)
- Fixed bug #37747 strtotime segfaults when given "nextyear"). (Derick)
- Fixed bug #37720 merge_php_config scrambles values). (Mike, pumuckel at metropolis dot de)
- Fixed bug #37709 Possible crash in PDO::errorCode()). (Ilia)
- Fixed bug #37707 clone without assigning leaks memory). (Ilia, Nuno, Dmitri)
- Fixed bug #37705 Semaphore constants not available). (Ilia)
- Fixed bug #37671 MySQLi extension fails to recognize BIT column). (Ilia)
- Fixed bug #37667 Object is not added into array returned by __get). (Marcus)
- Fixed bug #37635 parameter of pcntl signal handler is trashed). (Mike)
- Fixed bug #37632 Protected method access problem). (Marcus)
- Fixed bug #37630 MySQL extensions should link against thread safe client libs if built with ZTS). (Mike)
- Fixed bug #37620 mysqli_ssl_set validation is inappropriate). (Georg)
- Fixed bug #37616 DATE_RFC822 does not product RFC 822 dates). (Hannes Magnusson, Derick)
- Fixed bug #37614 Class name lowercased in error message). (Johannes)
- Fixed bug #37587 var without attribute causes segfault). (Marcus)
- Fixed bug #37586 Bumped minimum PCRE version to 6.6, needed for recursion limit support). (Ilia)
- Fixed bug #37581 oci_bind_array_by_name clobbers input array when using SQLT_AFC, AVC). (Tony)
- Fixed bug #37569 WDDX incorrectly encodes high-ascii characters). (Ilia)
- Fixed bug #37565 Using reflection::export with simplexml causing a crash). (Marcus)
- Fixed bug #37564 AES privacy encryption not possible due to net-snmp 5.2 compatibility issue). (Jani, patch by scott dot moynes+php at gmail dot com)
- Fixed bug #37563 array_key_exists performance is poor for &$array). (Ilia)
- Fixed bug #37558 timeout functionality doesn't work after a second PHP start-up on the same thread). (p dot desarnaud at wanadoo dot fr)
- Fixed bug #37531 oci8 persistent connection corruption). (Tony)
- Fixed bug #37523 namespaces added too late, leads to missing xsi:type attributes. incompatibility with libxml2-2.6.24). (Dmitry)
- Fixed bug #37514 strtotime doesn't assume year correctly). (Derick)
- Fixed bug #37510 session_regenerate_id changes session_id() even on failure). (Hannes)
- Fixed bug #37505 touch() truncates large files). (Ilia)
- Fixed bug #37499 CLI segmentation faults during cleanup with sybase-ct extension enabled). (Tony)
- Fixed bug #37496 FastCGI output buffer overrun). (Piotr, Dmitry)
- Fixed bug #37487 oci_fetch_array() array-type should always default to OCI_BOTH). (Tony)
- Fixed bug #37457 Crash when an exception is thrown in accept() method of FilterIterator). (Marcus)
- Fixed bug #37456 DOMElement->setAttribute() loops forever). (Rob)
- Fixed bug #37445 Fixed crash in pdo_mysql resulting from premature object destruction). (Ilia)
- Fixed bug #37428 PHP crashes on windows if there are start-up errors and event log is used for logging them). (Edin)
- Fixed bug #37418 tidy module crashes on shutdown). (Tony)
- Fixed bug #37416 iterator_to_array() hides exceptions thrown in rewind() method). (Tony)
- Fixed bug #37413 Rejected versions of flex that don't work). (Ilia)
- Fixed bug #37395 recursive mkdir() fails to create nonexistent directories in root dir). (Tony)
- Fixed bug #37394 substr_compare() returns an error when offset equals string length). (Ilia)
- Fixed bug #37392 Unnecessary call to OCITransRollback() at the end of request). (Tony)
- Fixed bug #37376 fastcgi.c compile fail with gcc 2.95.4). (Ilia)
- Fixed bug #37368 Incorrect timestamp returned for strtotime()). (Derick)
- Fixed bug #37363 PDO_MYSQL does not build if no other mysql extension is enabled). (Mike)
- Fixed bug #37348 make PEAR install ignore open_basedir). (Ilia)
- Fixed bug #37341 $_SERVER in included file is shortened to two entries, if $_ENV gets used). (Dmitry)
- Fixed bug #37313 sigemptyset() used without including <signal.h>). (jdolecek)
- Fixed bug #37306 max_execution_time = max_input_time). (Dmitry)
- Fixed bug #37278 SOAP not respecting uri in __soapCall). (Dmitry)
- Fixed bug #37265 Added missing safe_mode & open_basedir checks to imap_body()). (Ilia)
- Fixed bug #37262 var_export() does not escape \0 character). (Ilia)
- Fixed bug #37256 php-fastcgi doesn't handle connection abort). (Dmitry)
- Fixed bug #37244 Added strict flag to base64_decode() that enforces RFC3548 compliance). (Ilia)
- Fixed bug #37144 PHP crashes trying to assign into property of dead object). (Dmitry)
- Fixed bug #36949 invalid internal mysqli objects dtor). (Mike)
- Fixed bug #36732 req/x509 extensions support for openssl_csr_new and openssl_csr_sign) (ben at psc dot edu, Pierre)
- Fixed bug #36759 Objects destructors are invoked in wrong order when script is finished). (Dmitry)
- Fixed bug #36681 pdo_pgsql driver incorrectly ignored some errors). (Wez, Ilia)
- Fixed bug #36630 umask not reset at the end of the request). (Ilia)
- Fixed bug #36515 Unlinking buckets from non-existent brigades). (Sara)
- Fixed bug #35973 Error ORA-24806 occurs when trying to fetch a NCLOB field). (Tony)
- Fixed bug #35886 file_get_contents() fails with some combinations of offset & maxlen). (Nuno)
- Fixed bug #35512 Lack of read permission on main script results in E_WARNING rather then E_ERROR). (Ilia)
- Fixed bug #34180 --with-curlwrappers causes PHP to disregard some HTTP stream context options). (Mike)
- Fixed bug #34066 recursive array_walk causes segfault). (Tony)
- Fixed bug #34065 throw in foreach causes memory leaks). (Dmitry)
- Fixed bug #34005 oci_password_change() fails). (pholdaway at technocom-wireless dot com, Tony)
- Fixed bug #33895 Missing math constants). (Hannes)
- Fixed bug #33770 https:// or ftps:// do not work when --with-curlwrappers is used and ssl certificate is not verifiable). (Ilia)
- Fixed bug #29538 number_format and problem with 0). (Matt Wilmas)
- Fixed bug #28382 openssl_x509_parse() extensions support) (Pierre)
- Fixed PECL bug #9061 (oci8 might reuse wrong persistent connection). (Tony)
- Fixed PECL bug #8816 (issue in php_oci_statement_fetch with more than one piecewise column) (jeff at badtz-maru dot com, Tony)
- Fixed PECL bug #8112 (OCI8 persistent connections misbehave when Apache process times out). (Tony)
- Fixed PECL bug #7755 (error selecting DOUBLE fields with PDO_ODBC). ("slaws", Wez)
Version 5.1.6
24-Aug-2006- Fixed memory_limit on 64bit systems. (Stefan E.)
- Fixed bug #38488 (Access to "php://stdin" and family crashes PHP on win32). (Dmitry)
Version 5.1.5
17-Aug-2006- Fixed overflow on 64bit systems in str_repeat() and wordwrap(). (Stefan E.)
- Disabled CURLOPT_FOLLOWLOCATION in curl when open_basedir or safe_mode are enabled. (Stefan E., Ilia)
- Fixed bug #38322 (reading past array in sscanf() leads to arbitrary code execution). (Tony)
- Fixed bug #38125 (undefined reference to spl_dual_it_free_storage). (Marcus)
- Fixed bug #38112 (corrupted gif segfaults) (Pierre)
- Fixed bug #37587 (var without attribute causes segfault). (Marcus)
- Fixed bug #37576 (FastCGI env (cgi vars) table overflow). (Piotr)
- Fixed bug #37496(FastCGI output buffer overrun). (Piotr, Dmitry)
- Fixed bug #37487(oci_fetch_array() array-type should always default to OCI_BOTH). (Tony)
- Fixed bug #37416(iterator_to_array() hides exceptions thrown in rewind() method). (Tony)
- Fixed bug #37392(Unnecessary call to OCITransRollback() at the end of request). (Tony)
- Fixed bug #37341($_SERVER in included file is shortened to two entries, if $_ENV gets used). (Dmitry)
- Fixed bug #37313(sigemptyset() used without including <signal.h>). (jdolecek)
- Fixed bug #37346(invalid colormap format) (Pierre)
- Fixed bug #37360(invalid gif size) (Pierre)
- Fixed bug #37306(max_execution_time = max_input_time). (Dmitry)
- Fixed bug #37278(SOAP not respecting uri in __soapCall). (Dmitry)
- Fixed bug #37265(Added missing safe_mode & open_basedir checks to imap_body()). (Ilia)
- Fixed bug #37256(php-fastcgi doesn't handle connection abort). (Dmitry)
Version 5.1.4
04-May-2006- Added "capture_peer_cert" and "capture_peer_cert_chain" context options for SSL streams. (Wez).
- Added PDO::PARAM_EVT_* family of constants. (Sara)
- Fixed possible crash in highlight_string(). (Dmitry)
- Fixed bug #37291(FastCGI now longer works with isapi_fcgi.dll). (Dmitry)
- Fixed bug #37277(cloning Dom Documents or Nodes does not work). (Rob)
- Fixed bug #37276(problems with $_POST array). (Dmitry)
- Fixed bug #36632(bad error reporting for pdo_odbc exec UPDATE). (Wez).
- Fixed bug #35552(crash when pdo_odbc prepare fails). (Wez).
Version 5.1.3
02-May-2006- Updated bundled PCRE library to version 6.6. (Andrei)
- Moved extensions to PECL:
- ext/msession (Derick)
- Reimplemented FastCGI interface. (Dmitry)
- Improved SPL: (Marcus)
- Fixed issues with not/double calling of constructors of SPL iterators.
- Fixed issues with info-class/file-class in SPL directory handling classes.
- Fixed ArrayIterator::seek().
- Added SimpleXMLIterator::count().
- Dropped erroneous RecursiveDirectoryIterator::getSubPathInfo().
- Improved SimpleXML: (Marcus, Rob)
- Added SimpleXMLElement::getName() to retrieve name of element.
- Added ability to create elements on the fly.
- Added addChild() method for element creation supporting namespaces.
- Added addAttribute() method for attribute creation supporting namespaces.
- Added ability to delete specific elements and attributes by offset.
- Improved Reflection API: (Marcus)
- Added ReflectionClass::newInstanceArgs($args).
- Added ability to analyze extension dependency.
- Added ReflectionFunction::isDeprecated() and constant IS_DEPRECATED.
- Added ReflectionParameter::getDeclaringClass().
- Changed reflection constants to be prefixed with IS_. (Johannes)
- Improved cURL extension: (Ilia)
- Added curl_setopt_array() function that allows setting of multiple options via an associated array.
- Added the ability to retrieve the request message sent to the server.
- Improved GD extension: (Pierre)
- Added a weak/tolerant mode to the JPEG loader.
- Added filtering mode option to imagepng() to allow reducing file size.
- Fixed imagecolorallocate() and imagecolorallocatelapha() to return FALSE on error.
- Changed get_headers() to retrieve headers also from non-200 responses. (Ilia)
- Changed get_headers() to use the default context. (Ilia)
- Changed SOAP extension to cache WSDL structure in memory and thus speed up SoapClient/SoapServer construction. (Andrei, Dmitry)
- Added lchown() and lchgrp() to change user/group ownership of symlinks. (Derick)
- Added support for exif date format in strtotime(). (Derick)
- Added a check for special characters in the session name. (Ilia)
- Added "consumed" stream filter. (Marcus)
- Added new mysqli constants for BIT and NEW_DECIMAL field types: MYSQLI_TYPE_NEWDECIMAL and MYSQLI_TYPE_BIT. FR #36007. (Georg)
- Added imap_savebody() that allows message body to be written to a file. (Mike)
- Added overflow checks to wordwrap() function. (Ilia)
- Added support for BINARY_DOUBLE and BINARY_FLOAT to PDO_OCI and OCI8 (also fixes bug #36764). (Tony)
- Eliminated run-time constant fetching for TRUE, FALSE and NULL. (Dmitry)
- Removed the E_STRICT deprecation notice from "var". (Ilia)
- Fixed reading stream filters never notified about EOF. (Mike)
- Fixed tempnam() 2nd parameter to be checked against path components. (Ilia)
- Fixed a bug that would not fill in the fifth argument to preg_replace() properly, if the variable was not declared previously. (Andrei)
- Fixed safe_mode check for source argument of the copy() function. (Ilia)
- Fixed mysqli bigint conversion under Windows (Georg)
- Fixed XSS inside phpinfo() with long inputs. (Ilia)
- Fixed Apache2 SAPIs header handler modifying header strings. (Mike)
- Fixed 'auto_globals_jit' to work together with 'register_argc_argv'. (Dmitry)
- Fixed offset/length parameter validation in substr_compare() function. (Ilia)
- Fixed debug_zval_dump() to support private and protected members. (Dmitry)
- Fixed SoapFault::getMessage(). (Dmitry)
- Fixed issue with iconv_mime_decode where the "encoding" would only allow upper case specifiers. (Derick)
- Fixed tiger hash algorithm generating wrong results on big endian platforms. (Mike)
- Fixed crash with DOMImplementation::createDocumentType("name:"). (Mike)
- Fixed bug #37205 (Serving binary content/images fails with "comm with server aborted" FastCGI err). (Dmitry)
- Fixed bug #37192 (cc may complain about non-constant initializers in hash_adler.c). (Mike)
- Fixed bug #37191 (chmod takes off sticky bit when safe_mode is On). (Tony)
- Fixed bug #37167 (PDO segfaults when throwing exception from the fetch handler). (Tony)
- Fixed bug #37162 (wddx does not build as a shared extension). (jdolecek at NetBSD dot org, Ilia)
- Fixed bug #37158 (fread behavior changes after calling stream_wrapper_register). (Wez)
- Fixed bug #37138 (__autoload tries to load callback'ed self and parent). (Dmitry)
- Fixed bug #37103 (libmbfl headers not installed). (Jani)
- Fixed bug #37083 (Frequent crashes in SOAP extension with new WSDL caching code in multithread WS). (Andrei, Dmitry)
- Fixed bug #37062 (compile failure on ARM architecture). (Tony)
- Fixed bug #37061 (curl_exec() doesn't zero-terminate binary strings). (Tony)
- Fixed bug #37060 (Type of retval of Countable::count() is not checked). (Johannes)
- Fixed bug #37059 (oci_bind_by_name() doesn't support RAW and LONG RAW fields). (Tony)
- Fixed bug #37057 (xmlrpc_decode() may produce arrays with numeric strings, which are unaccessible). (Tony)
- Fixed bug #37055 (incorrect reference counting for persistent OCI8 connections). (Tony)
- Fixed bug #37054 (SoapClient Error Fetching http headers). (Dmitry)
- Fixed bug #37053 (html_errors with internal classes produces wrong links). (Tony)
- Fixed bug #37046 (foreach breaks static scope). (Dmitry)
- Fixed bug #37045 (Fixed check for special chars for http redirects). (Ilia)
- Fixed bug #37017 (strtotime fails before 13:00:00 with some time zones identifiers). (Derick)
- Fixed bug #37002 (Have to quote literals in INI when concatenating with vars). (Dmitry)
- Fixed bug #36988 (mktime freezes on long numbers). (Derick)
- Fixed bug #36981 (SplFileObject->fgets() ignores max_length). (Tony)
- Fixed bug #36957 (serialize() does not handle recursion). (Ilia)
- Fixed bug #36944 (strncmp & strncasecmp do not return false on negative string length). (Tony)
- Fixed bug #36941 (ArrayIterator does not clone itself). (Marcus)
- Fixed bug #36934 (OCILob->read() doesn't move internal pointer when reading 0's). (Tony)
- Fixed bug #36908 (wsdl default value overrides value in soap request). (Dmitry)
- Fixed bug #36898 (__set() leaks in classes extending internal ones). (Tony, Dmitry)
- Fixed bug #36886 (User filters can leak buckets in some situations). (Ilia)
- Fixed bug #36878 (error messages are printed even though an exception has been thrown). (Tony)
- Fixed bug #36875 (is_*() functions do not account for open_basedir). (Ilia)
- Fixed bug #36872 (session_destroy() fails after call to session_regenerate_id(true)). (Ilia)
- Fixed bug #36869 (memory leak in output buffering when using chunked output). (Tony)
- Fixed bug #36859 (DOMElement crashes when calling __construct when cloning). (Tony)
- Fixed bug #36857 (Added support for partial content fetching to the HTTP streams wrapper). (Ilia)
- Fixed bug #36851 (Documentation and code discrepancies for NULL data in oci_fetch_*() functions). (Tony)
- Fixed bug #36825 (Exceptions thrown in ArrayObject::offsetGet cause segfault). (Tony)
- Fixed bug #36820 (Privileged connection with an Oracle password file fails). (Tony)
- Fixed bug #36809 (__FILE__ behavior changed). (Dmitry)
- Fixed bug #36808 (syslog ident becomes garbage between requests). (Tony)
- Fixed bug #36802 (mysqli_set_charset() crash with a non-open connection). (Ilia)
- Fixed bug #36756 (DOMDocument::removeChild corrupts node). (Rob)
- Fixed bug #36749 (SOAP: 'Error Fetching http body' when using HTTP Proxy). (Dmitry)
- Fixed bug #36745 (No error message when load data local file isn't found). (Georg)
- Fixed bug #36743 (In a class extending XMLReader array properties are not writable). (Tony)
- Fixed bug #36727 (segfault in pdo_pgsql bindValue() when no parameters are defined). (Tony)
- Fixed bug #36721 (The SoapServer is not able to send a header that it didn't receive). (Dmitry)
- Fixed bug #36697 (Transparency is lost when using imagecreatetruecolor). (Pierre)
- Fixed bug #36689 (Removed arbitrary limit on the length of syslog messages). (Ilia)
- Fixed bug #36656 (http_build_query generates invalid URIs due to use of square brackets). (Mike)
- Fixed bug #36638 (strtotime() returns false when 2nd argument < 1). (Derick)
- Fixed bug #36629 (SoapServer::handle() exits on SOAP faults). (Dmitry)
- Fixed bug #36625 (pg_trace() does not work). (iakio at mono-space dot net)
- Fixed bug #36614 (Segfault when using Soap). (Dmitry)
- Fixed bug #36611 (assignment to SimpleXML object attribute changes argument type to string). (Tony)
- Fixed bug #36606 (pg_query_params() changes arguments type to string). (Tony)
- Fixed bug #36599 (DATE_W3C format constant incorrect). (Derick)
- Fixed bug #36575 (SOAP: Incorrect complex type instantiation with hierarchies). (Dmitry)
- Fixed bug #36572 (Added PDO::MYSQL_ATTR_DIRECT_QUERY constant that should be set when executing internal queries like "show master status" via MySQL). (Ilia)
- Fixed bug #36568 (memory_limit setting on win32 has no effect). (Dmitry)
- Fixed bug #36513 (comment will be outputted in last line). (Dmitry)
- Fixed bug #36510 (strtotime() fails to parse date strings with tabs). (Ilia, Derick)
- Fixed bug #36459 (Incorrect adding PHPSESSID to links, which contains \r\n). (Ilia)
- Fixed bug #36458 (sleep() accepts negative values). (Ilia)
- Fixed bug #36436 (DBA problem with Berkeley DB4). (Marcus)
- Fixed bug #36434 (Improper resolution of declaring class name of an inherited property). (Ilia)
- Fixed bug #36420 (segfault when access result->num_rows after calling result->close()). (Ilia,Tony)
- Fixed bug #36403 (oci_execute() no longer supports OCI_DESCRIBE_ONLY). (Tony)
- Fixed bug #36400 (Custom 5xx error does not return correct HTTP response error code). (Tony)
- Fixed bug #36396 (strtotime() fails to parse dates in dd-mm-yyyy format). (Derick)
- Fixed bug #36388 (ext/soap crashes when throwing exception and session persistence). (David)
- Fixed bug #36382 (PDO/PgSQL's getColumnMeta() crashes). (Derick)
- Fixed bug #36359 (splFileObject::fwrite() doesn't write when no data length specified). (Tony)
- Fixed bug #36351 (parse_url() does not parse numeric paths properly). (Ilia)
- Fixed bug #36345 (PDO/MySQL problem loading BLOB over 1MB). (Ilia)
- Fixed bug #36337 (ReflectionProperty fails to return correct visibility). (Ilia)
- Fixed bug #36334 (Added missing documentation about realpath cache INI settings). (Ilia)
- Fixed bug #36308 (ReflectionProperty::getDocComment() does not reflect extended class commentary). (Ilia)
- Fixed bug #36306 (crc32() differ on 32-bit and 64-bit platforms) (anight@eyelinkmedia dot com, Pierre)
- Fixed bug #36303 (foreach on error_zval produces segfault). (Dmitry)
- Fixed bug #36295 (typo in SplFileObject::flock() parameter name). (Tony)
- Fixed bug #36287 (Segfault with SplFileInfo conversion). (Marcus)
- Fixed bug #36283 (SOAPClient Compression Broken). (Dmitry)
- Fixed bug #36268 (Object destructors called even after fatal errors). (Dmitry)
- Fixed bug #36258 (SplFileObject::getPath() may lead to segfault). (Tony)
- Fixed bug #36250 (PHP causes ORA-07445 core dump in Oracle server 9.2.x). (Tony)
- Fixed bug #36242 (Possible memory corruption in stream_select()). (Tony)
- Fixed bug #36235 (ocicolumnname returns false before a successful fetch). (Tony)
- Fixed bug #36226 (Inconsistent handling when passing potential arrays). (Dmitry)
- Fixed bug #36224 (date(DATE_ATOM) gives wrong results). (Derick, Hannes Magnusson)
- Fixed bug #36222 (errorInfo in PDOException is always NULL). (Ilia)
- Fixed bug #36208 (symbol namespace conflicts using bundled gd). (Jakub Moc)
- Fixed bug #36205 (Memory leaks on duplicate cookies). (Dmitry)
- Fixed bug #36185 (str_rot13() crash on non-string parameter). (Pierre)
- Fixed bug #36176 (PDO_PGSQL - PDO::exec() does not return number of rows affected by the operation). (Ilia)
- Fixed bug #36158 (SIGTERM is not handled correctly when running as a FastCGI server). (Dmitry)
- Fixed bug #36152 (problems with curl+ssl and pgsql+ssl in same PHP). (Mike)
- Fixed bug #36148 (unpack("H*hex", $data) is adding an extra character to the end of the string). (Ilia)
- Fixed bug #36134 (DirectoryIterator constructor failed to detect empty directory names). (Ilia)
- Fixed bug #36113 (Reading records of unsupported type causes segfault). (Tony)
- Fixed bug #36096 (oci_result() returns garbage after oci_fetch() failed). (Tony)
- Fixed bug #36083 (SoapClient waits for responses on one-way operations). (Dmitry)
- Fixed bug #36071 (Engine Crash related with 'clone'). (Dmitry)
- Fixed bug #36055 (possible OCI8 crash in multi-threaded environment). (Tony)
- Fixed bug #36046 (parse_ini_file() miscounts lines in multi-line values). (Ilia)
- Fixed bug #36038 (ext/hash compile failure on Mac OSX). (Tony)
- Fixed bug #36037 (heredoc adds extra line number). (Dmitry)
- Fixed bug #36016 (realpath cache memleaks). (Dmitry, Nuno)
- Fixed bug #36011 (Strict errormsg wrong for call_user_func() and the likes). (Marcus)
- Fixed bug #36010 (Segfault when re-creating and re-executing statements with bound parameters). (Tony)
- Fixed bug #36006 (Problem with $this in __destruct()). (Dmitry)
- Fixed bug #35999 (recursive mkdir() does not work with relative path like "foo/bar"). (Tony)
- Fixed bug #35998 (SplFileInfo::getPathname() returns unix style filenames in win32). (Marcus)
- Fixed bug #35988 (Unknown persistent list entry type in module shutdown). (Dmitry)
- Fixed bug #35954 (Fatal com_exception casting object). (Rob)
- Fixed bug #35900 (stream_select() should warning when tv_sec is negative). (Ilia)
- Fixed bug #35785 (SimpleXML causes memory read error zend engine). (Marcus)
- Fixed bug #34272 (empty array onto COM object blows up). (Rob)
- Fixed bug #29476 (sqlite_fetch_column_types() locks the database forever). (Ilia)
Version 5.1.2
12-Jan-2006- Updated libsqlite in ext/sqlite to 2.8.17. (Ilia)
- Updated libsqlite in ext/pdo_sqlite to 3.2.8. (Ilia)
- Updated to libxml2-2.6.22 and libxslt-1.1.15 in the win32 bundle. (Rob)
- Added new extensions: (Ilia, Wez)
- XMLWriter
- Hash
- Added PNG compression support to GD extension. (Pierre)
- Added reflection constants as class constants. (Johannes)
- Added --enable-gcov configure option to enable C-level code coverage. (John, Jani, Ilia, Marcus)
- Added missing support for 'B' format identifier to date() function. (Ilia)
- Changed reflection to be an extension. (Marcus)
- Improved SPL extension: (Marcus)
- Added class SplFileInfo as root class for DirectoryIterator and SplFileObject
- Added SplTempFileObject
- Improved SimpleXML extension: (Marcus)
- Fixed memleaks
- Fixed var_dump()
- Fixed isset/empty/(bool) behavior
- Fixed iterator edge cases
- Added methods getNamespaces(), getDocNamespaces()
- Upgraded pear to version 1.4.6. (Greg)
- Added constants for libxslt and libexslt versions: LIBXSLT_VERSION, LIBXSLT_DOTTED_VERSION, LIBEXSLT_VERSION and LIBEXSLT_DOTTED_VERSION. (Pierre)
- Fixed possible crash in apache_getenv()/apache_setenv() on invalid parameters. (Ilia)
- Changed errors to warnings in imagecolormatch(). (Pierre)
- Fixed segfault/leak in imagecolormatch(). (Pierre)
- Fixed small leak in mysqli_stmt_fetch() when bound variable was empty string. (Andrey)
- Fixed prepared statement name conflict handling in PDO_PGSQL. (Thies, Ilia)
- Fixed memory corruption when PDO::FETCH_LAZY mode is being used. (Ilia)
- Fixed possible leaks in imagecreatefromstring() with invalid data. (Pierre)
- Fixed possible memory corruption inside mb_strcut(). (Ilia)
- Fixed possible header injection by limiting each header to a single line. (Ilia)
- Fixed possible XSS inside error reporting functionality. (Ilia)
- Fixed many bugs in OCI8. (Tony)
- Fixed crash and leak in mysqli when using 4.1.x client libraries and connecting to 5.x server. (Andrey)
- Fixed bug #35916 (Duplicate calls to stream_bucket_append() lead to a crash). (Ilia)
- Fixed bug #35908 (curl extension uses undefined GCRY_THREAD_OPTIONS_USER). (Ilia)
- Fixed bug #35907 (PDO_OCI uses hardcoded lib path $ORACLE_HOME/lib). (Tony)
- Fixed bug #35887 (wddx_deserialize not parsing dateTime fields properly). (Derick)
- Fixed bug #35885 (strtotime("NOW") no longer works). (Derick)
- Fixed bug #35821 (array_map() segfaults when exception is throwed from the callback). (Tony)
- Fixed bug #35817 (unpack() does not decode odd number of hexadecimal values). (Ilia)
- Fixed bug #35797 (segfault on PDOStatement::execute() with zend.ze1_compatibility_mode = On). (Tony, Ilia)
- Fixed bug #35781 (stream_filter_append() can cause segfault). (Tony)
- Fixed bug #35760 (sybase_ct doesn't compile on Solaris using old gcc). (Tony)
- Fixed bug #35759 (mysqli_stmt_bind_result() makes huge allocation when column empty). (Andrey)
- Fixed bug #35751 (using date with a timestamp makes httpd segfault). (Derick)
- Fixed bug #35740 (memory leak when including a directory). (Tony)
- Fixed bug #35730 (ext/mssql + freetds: Use correct character encoding and allow setting it). (Frank)
- Fixed bug #35723 (xmlrpc_introspection.c fails compile per C99 std). (Jani)
- Fixed bug #35720 (A final constructor can be overwritten). (Marcus)
- Fixed bug #35713 (getopt() returns array with numeric strings when passed options like '-1'). (Tony)
- Fixed bug #35705 (strtotime() fails to parse soap date format without TZ). (Ilia)
- Fixed bug #35699 (date() can't handle leap years before 1970). (Derick)
- Fixed bug #35694 (Improved error message for invalid fetch mode). (Ilia)
- Fixed bug #35692 (iconv_mime_decode() segmentation fault; with libiconv only). (Tony)
- Fixed bug #35690 (pack() tries to allocate huge memory block when packing float values to strings). (Tony)
- Fixed bug #35669 (imap_mail_compose() crashes with multipart-multiboundary-email). (Ilia)
- Fixed bug #35660 (AIX TZ variable format not understood, yields UTC timezone). (Derick)
- Fixed bug #35655 (whitespace following end of heredoc is lost). (Ilia)
- Fixed bug #35630 (strtotime() crashes on certain relative identifiers). (Ilia)
- Fixed bug #35629 (crash in http:// wrapper on multiple redirects). (Ilia)
- Fixed bug #35624 (strtotime() does not handle 3 character weekdays). (Ilia)
- Fixed bug #35612 (iis6 Access Violation crash). (Dmitry, alacn.uhahaa)
- Fixed bug #35594 (Multiple calls to getopt() may result in a crash). (rabbitt at gmail dot com, Ilia)
- Fixed bug #35571 (Fixed crash in Apache 2 SAPI when more then one php script is loaded via SSI include). (Ilia)
- Fixed bug #35570 (segfault when re-using soap client object). (Dmitry)
- Fixed bug #35558 (mktime() interpreting 3 digit years incorrectly). (Ilia)
- Fixed bug #35543 (php crash when calling non existing method of a class that extends PDO). (Tony)
- Fixed bug #35539 (typo in error message for ErrorException). (Tony)
- Fixed bug #35536 (mysql_field_type() doesn't handle NEWDECIMAL). (Tony)
- Fixed bug #35517 (mysql_stmt_fetch returns NULL on data truncation). (Georg)
- Fixed bug #35509 (string constant as array key has different behavior inside object). (Dmitry)
- Fixed bug #35508 (PDO fails when unknown fetch mode specified). (Tony)
- Fixed bug #35499 (strtotime() does not handle whitespace around the date string). (Ilia)
- Fixed bug #35496 (Crash in mcrypt_generic()/mdecrypt_generic() without proper init). (Ilia)
- Fixed bug #35490 (socket_sendto() unable to handle IPv6 addresses). (Tony)
- Fixed bug #35461 (Ming extension fails to compile with ming 0.3beta1). (Jani)
- Fixed bug #35437 (Segfault or Invalid Opcode 137/1/4). (Dmitry)
- Fixed bug #35470 (Assigning global using variable name from array doesn't function). (Dmitry)
- Fixed bug #35456 (+ 1 [time unit] format did not work). (Ilia)
- Fixed bug #35447 (xml_parse_into_struct() chokes on the UTF-8 BOM). (Rob)
- Fixed bug #35431 (PDO crashes when using LAZY fetch with fetchAll). (Wez)
- Fixed bug #35430 (PDO crashes on incorrect FETCH_FUNC use). (Tony)
- Fixed bug #35427 (str_word_count() handles '-' incorrectly). (Ilia)
- Fixed bug #35425 (idate() function ignores timezone settings). (Ilia)
- Fixed bug #35422 (strtotime() does not parse times with UTC as timezone). (Ilia)
- Fixed bug #35414 (strtotime() no longer works with ordinal suffix). (Ilia)
- Fixed bug #35410 (wddx_deserialize() doesn't handle large ints as keys properly). (Ilia)
- Fixed bug #35409 (undefined reference to 'rl_completion_matches'). (Jani)
- Fixed bug #35399 (Since fix of bug #35273 SOAP decoding of soapenc:base64binary fails). (Dmitry)
- Fixed bug #35393 (changing static protected members from outside the class, one more reference issue). (Dmitry)
- Fixed bug #35381 (ssl library is not initialized properly). (Alan)
- Fixed bug #35377 (PDO_SQLITE: undefined reference to "fdatasync"). (Nuno, Jani)
- Fixed bug #35373 (HP-UX "alias not allowed in this configuration"). (Dmitry)
- Fixed bug #35288 (iconv() function defined as libiconv()). (Nuno)
- Fixed bug #35103 (mysqli handles bad unsigned (big)int incorrectly).(Andrey)
- Fixed bug #35062 (socket_read() produces warnings on non blocking sockets). (Nuno, Ilia)
- Fixed bug #35028 (SimpleXML object fails FALSE test). (Marcus)
- Fixed bug #34729 (Crash in ZTS mode under Apache). (Dmitry, Zeev)
- Fixed bug #34429 (Output buffering cannot be turned off with FastCGI). (Dmitry, Ilya)
- Fixed bug #34359 (Possible crash inside fopen http wrapper). (Ilia, Sara, Nuno)
- Fixed bug #33789 (Many Problems with SunFuncs). (Derick)
- Fixed bug #33671 (sun_rise and sun_set don't return a GMT timestamp if one passes an offset). (Derick)
- Fixed bug #32820 (date_sunrise and date_sunset don't handle GMT offset well). (Derick)
- Fixed bug #31347 (is_dir and is_file (incorrectly) return true for any string greater then 255 characters). (Nuno, Ilia)
- Fixed bug #30937 (date_sunrise() & date_sunset() don't handle endless day/night at high latitudes). (Derick)
- Fixed bug #30760 (Remove MessageBox on win32 for E_CORE errors if display_startup_error is off). (Ilia)
- Fixed bug #29955 (mb_strtoupper() / lower() broken with Turkish encoding). (Rui)
- Fixed bug #28899 (mb_substr() and substr() behave differently when "mbstring.func_overload" is enabled). (Rui)
- Fixed bug #27678 (number_format() crashes with large numbers). (Marcus)
Version 5.1.1
28-Nov-2005- Disabled native date class to prevent pear::date conflict. (Ilia)
- Improved safe_mode/open_basedir checks in cURL extension. (Ilia, Jani)
- Changed reflection constants be both PHP and class constants. (Johannes)
- Added an additional field $frame['object'] to the result array of debug_backtrace() that contains a reference to the respective object when the frame was called from an object. (Sebastian)
- Fixed bug #35423 (RecursiveDirectoryIterator doesnt appear to recurse with RecursiveFilterIterator). (Marcus)
- Fixed bug #35413 (Removed -dev flag from Zend Engine version). (Ilia)
- Fixed bug #35411 (Regression with \{$ handling). (Ilia)
- Fixed bug #35406 (eval hangs when evall'ed code ends with comment w/o newline). (Marcus)
- Fixed bug #35391 (pdo_mysql::exec does not return number of affected rows). (Tony)
- Fixed bug #35382 (Comment in end of file produces fatal error). (Ilia)
- Fixed bug #35360 (exceptions in interactive mode (php -a) may cause crash). (Dmitry)
- Fixed bug #35358 (Incorrect error messages for PDO class constants). (Ilia)
- Fixed bug #35338 (pdo_pgsql does not handle binary bound params). (Wez)
- Fixed bug #35316 (Application exception trying to create COM object). (Rob)
- Fixed bug #35170 (PHP_AUTH_DIGEST differs under Apache 1.x and 2.x). (Ilia)
Version 5.1.0
24-Nov-2005- Added support for class constants and static members for internal classes. (Dmitry, Michael Wallner)
- Added "new_link" parameter to mssql_connect() (Bug #34369). (Frank)
- Added missing safe_mode checks for image* functions and cURL. (Ilia)
- Added missing safe_mode/open_basedir checks for file uploads. (Ilia)
- Added PDO_MYSQL_ATTR_USE_BUFFERED_QUERY parameter for pdo_mysql. (Ilia)
- Added date_timezone_set() function to set the timezone that the date functions will use. (Derick)
- Added pg_fetch_all_columns() function to fetch all values of a column from a result cursor. (Ilia)
- Added support for LOCK_EX flag for file_put_contents(). (Ilia)
- Added bindto socket context option. (Ilia)
- Added offset parameter to the stream_copy_to_stream() function. (Ilia)
- Added offset & length parameters to substr_count() function. (Ilia)
- Added man pages for "phpize" and "php-config" scripts. (Jakub Vrana)
- Added support for .cc files in extensions. (Brian)
- Added PHP_INT_MAX and PHP_INT_SIZE as predefined constants. (Andrey)
- Added user opcode API that allow overloading of opcode handlers. (Dmitry)
- Added an optional remove old session parameter to session_regenerate_id(). (Ilia)
- Added array type hinting. (Dmitry)
- Added the tidy_get_opt_doc() function to return documentation for configuration options in tidy. (Patch by: nlopess@php.net)
- Added support for .cc files in extensions. (Brian)
- Added imageconvolution() function which can be used to apply a custom 3x3 matrix convolution to an image. (Pierre)
- Added optional first parameter to XsltProcessor::registerPHPFunctions to only allow certain functions to be called from XSLT. (Christian)
- Added the ability to override the autotools executables used by the buildconf script via the PHP_AUTOCONF and PHP_AUTOHEADER environmental variables. (Jon)
- Added several new functions to support the PostgreSQL v3 protocol introduced in PostgreSQL 7.4. (Christopher)
- pg_transaction_status() - in-transaction status of a database connection.
- pg_query_params() - execution of parameterized queries.
- pg_prepare() - prepare named queries.
- pg_execute() - execution of named prepared queries.
- pg_send_query_params() - async equivalent of pg_query_params().
- pg_send_prepare() - async equivalent of pg_prepare().
- pg_send_execute() - async equivalent of pg_execute().
- pg_result_error_field() - highly detailed error information, most importantly the SQLSTATE error code.
- pg_set_error_verbosity() - set verbosity of errors.
- Added optional fifth parameter "count" to preg_replace_callback() and preg_replace() to count the number of replacements made. FR #32275. (Andrey)
- Added optional third parameter "charlist" to str_word_count() which contains characters to be considered as word part. FR #31560. (Andrey, Ilia)
- Added interface Serializable. (Stanislav, Marcus)
- Added pg_field_type_oid() PostgreSQL function. (mauroi at digbang dot com)
- Added zend_declare_property_...() and zend_update_property_...() API functions for bool, double and binary safe strings. (Hartmut)
- Added possibility to access INI variables from within .ini file. (Andrei)
- Added variable $_SERVER['REQUEST_TIME'] containing request start time. (Ilia)
- Added optional float parameter to gettimeofday(). (Ilia)
- Added apache_reset_timeout() Apache1 function. (Rasmus)
- Added sqlite_fetch_column_types() 3rd argument for arrays. (Ilia)
- Added optional offset parameter to stream_get_contents() and file_get_contents(). (Ilia)
- Added optional maxlen parameter to file_get_contents(). (Ilia)
- Added SAPI hook to get the current request time. (Rasmus)
- Added new functions:
- array_diff_key() (Andrey)
- array_diff_ukey() (Andrey)
- array_intersect_key() (Christiano Duarte)
- array_intersect_ukey() (Christiano Duarte)
- array_product() (Andrey)
- DomDocumentFragment::appendXML() (Christian)
- fputcsv() (David Sklar)
- htmlspecialchars_decode() (Ilia)
- inet_pton() (Sara)
- inet_ntop() (Sara)
- mysqli::client_info property (Georg)
- posix_access() (Magnus)
- posix_mknod() (Magnus)
- SimpleXMLElement::registerXPathNamespace() (Christian)
- stream_context_get_default() (Wez)
- stream_socket_enable_crypto() (Wez)
- stream_wrapper_unregister() (Sara)
- stream_wrapper_restore() (Sara)
- stream_filter_remove() (Sara)
- time_sleep_until() (Ilia)
- Added DomDocument::$recover property for parsing not well-formed XML Documents. (Christian)
- Added Cursor support for MySQL 5.0.x in mysqli (Georg)
- Added proxy support to ftp wrapper via http. (Sara)
- Added MDTM support to ftp_url_stat. (Sara)
- Added zlib stream filter support. (Sara)
- Added bz2 stream filter support. (Sara)
- Added max_redirects context option that specifies how many HTTP redirects to follow. (Ilia)
- Added support of parameter=>value arrays to xsl_xsltprocessor_set_parameter(). (Tony)
- Improved PHP extension loading mechanism with support for module dependencies and conflicts. (Jani, Dmitry)
- Improved interactive mode of PHP CLI (php -a). (Johannes, Marcus)
- Improved performance of:
- general execution/compilation. (Andi, Thies, Sterling, Dmitry, Marcus)
- switch() statement. (Dmitry)
- several array functions. (Marcus)
- virtual path handling by adding a realpath() cache. (Andi)
- variable fetches. (Andi)
- magic method invocations. (Marcus)
- Improved support for embedded server in mysqli. (Georg)
- Improved mysqli extension. (Georg)
- added constructor for mysqli_stmt and mysqli_result classes
- added new function mysqli_get_charset()
- added new function mysqli_set_charset()
- added new class mysqli_driver
- added new class mysqli_warning
- added new class mysqli_exception
- added new class mysqli_sql_exception
- Improved SPL extension. (Marcus)
- Moved RecursiveArrayIterator from examples into extension
- Moved RecursiveFilterIterator from examples into extension
- Added SplObjectStorage
- Made all SPL constants class constants
- Renamed CachingRecursiveIterator to RecursiveCachingIterator to follow Recursive<*>Iterator naming scheme.
- added standard hierarchy of Exception classes
- added interface Countable
- added interfaces Subject and SplObserver
- added spl_autoload*() functions
- converted several 5.0 examples into c code
- added class SplFileObject
- added possibility to use a string with class_parents() and class_implements(). (Andrey)
- Changed type hints to allow "null" as default value for class and array. (Marcus, Derick, Dmitry)
- Changed SQLite extension to be a shared module in Windows distribution. (Edin)
- Changed "instanceof" and "catch" operators, is_a() and is_subclass_of() functions to not call __autoload(). (Dmitry)
- Changed sha1_file() and md5_file() functions to use streams instead of low level IO. (Uwe)
- Changed abstract private methods to be not allowed anymore. (Stas)
- Changed stream_filter_(ap|pre)pend() to return resource. (Sara)
- Changed mysqli_exception and sqlite_exception to use RuntimeException as base if SPL extension is present. (Georg, Marcus)
- Upgraded bundled libraries:
- PCRE library to version 6.2. (Andrei)
- SQLite 3 library in ext/pdo_sqlite to 3.2.7. (Ilia)
- SQLite 2 library in ext/sqlite to 2.8.16. (Ilia)
- Upgraded bundled libraries in Windows distribution. (Edin)
- zlib 1.2.3
- curl 7.14.0
- openssl 0.9.8
- ming 0.3b
- libpq (PostgreSQL) 8.0.1
- Implemented feature request #33452 (Year belonging to ISO week). (Derick)
- Allowed return by reference from internal functions. (Marcus, Andi, Dmitry)
- Rewrote strtotime() with support for timezones and many new formats. Implements feature requests #21399, #26694, #28088, #29150, #29585 and #29595. (Derick)
- Moved extensions to PECL:
- ext/cpdf (Tony, Derick)
- ext/dio (Jani, Derick)
- ext/fam (Jani, Derick)
- ext/ingres_ii (Jani, Derick)
- ext/mnogosearch (Jani, Derick)
- ext/w32api (Jani, Derick)
- ext/yp (Jani, Derick)
- ext/mcve (Jani, Derick, Pierre)
- ext/oracle (Jani, Derick)
- ext/ovrimos (Jani, Derick, Pierre)
- ext/pfpro (Jani, Derick, Pierre)
- ext/dbx (Jani, Derick)
- ext/ircg (Jani, Derick)
- Removed php_check_syntax() function which never worked properly. (Ilia)
- Removed garbage manager in Zend Engine which results in more aggressive freeing of data. (Dmitry, Andi)
- Fixed "make test" to work for phpized extensions. (Hartmut, Jani)
- Fixed Apache 2 regression with sub-request handling on non-linux systems. (Ilia, Tony)
- Fixed PDO shutdown problem (possible infinite loop running rollback on shutdown). (Wez)
- Fixed PECL bug #3714 (PDO: beginTransaction doesn't work if you're in auto-commit mode). (Wez)
- Fixed ZTS destruction. (Marcus)
- Fixed __get/__set to allow recursive calls for different properties. (Dmitry)
- Fixed a bug where stream_get_meta_data() did not return the "uri" element for files opened with tmpname(). (Derick)
- Fixed a problem with SPL iterators aggregating the inner iterator. (Marcus)
- Fixed an error in mysqli_fetch_fields (returned NULL instead of an array when row number > field_count). (Georg)
- Fixed bug in mysql::client_version(). (Georg)
- Fixed bug in mysqli extension with unsigned int(11) being represented as signed integer in PHP instead of string in 32bit systems. (Andrey)
- Fixed bug with $HTTP_RAW_POST_DATA not getting set. (Brian)
- Fixed crash inside stream_get_line() when length parameter equals 0. (Ilia)
- Fixed ext/mysqli to allocate less memory when fetching bound params of type (MEDIUM|LONG)BLOB/(MEDIUM|LONG)TEXT. (Andrey)
- Fixed extension initialization to respect dependencies between extensions. (Wez)
- Fixed failing queries (FALSE returned) with mysqli_query() on 64 bit systems. (Andrey)
- Fixed fgetcsv() and fputcsv() inconsistency. (Dmitry)
- Fixed inheritance check to control return by reference and pass by reference correctly (ArrayAccess can no longer support references correctly). (Marcus, Andi, Dmitry)
- Fixed initializing and argument checking for posix_mknod(). (Derick)
- Fixed memory corruption in ImageTTFText() with 64bit systems. (Andrey)
- Fixed memory corruption in pg_copy_from() in case the as_null parameter was passed. (Derick)
- Fixed memory corruption in stristr(). (Derick)
- Fixed possible GLOBALS variable override when register_globals are ON. (Ilia, Stefan)
- Fixed possible INI setting leak via virtual() in Apache 2 sapi. (Ilia)
- Fixed possible register_globals toggle via parse_str(). (Ilia, Stefan)
- Fixed potential GLOBALS overwrite via import_request_variables() and possible crash and/or memory corruption. (Ilia)
- Fixed segfaults when CURL callback functions throw exception. (Tony)
- Fixed support for shared extensions on AIX. (Dmitry)
- Fixed bug #35342 (isset(DOMNodeList->length) returns false). (Rob)
- Fixed bug #35341 (Fix for bug #33760 breaks build with older curl). (Tony)
- Fixed bug #35336 (crash on PDO::FETCH_CLASS + __set()). (Tony)
- Fixed bug #35303 (PDO prepare() crashes with invalid parameters). (Ilia)
- Fixed bug #35293 (PDO segfaults when using persistent connections). (Tony)
- Fixed bug #35278 (Multiple virtual() calls crash Apache 2 php module). (Ilia)
- Fixed bug #35273 (Error in mapping soap - java types). (Dmitry)
- Fixed bug #35249 (compile failure when ext/readline is compiled as shared). (Jani)
- Fixed bug #35248 (sqlite_query() doesn't set error_msg when return value is being used). (Ilia)
- Fixed bug #35243 (php_mblen() crashes when compiled with thread-safety on Linux). (Patch: shulmanb at il dot ibm dot com, Jani)
- Fixed bug #35239 (Objects can lose references). (Dmitry)
- Fixed bug #35229 (call_user_func() crashes when argument_stack is nearly full). (Dmitry)
- Fixed bug #35197 (Destructor is not called). (Tony)
- Fixed bug #35179 (tokenizer extension needs T_HALT_COMPILER). (Greg)
- Fixed bug #35176 (include()/require()/*_once() produce wrong error messages about main()). (Dmitry)
- Fixed bug #35147 (__HALT_COMPILER() breaks with --enable-zend-multibyte). (Dmitry, Moriyoshi)
- Fixed bug #35143 (gettimeofday() ignores current time zone). (Derick)
- Fixed bug #35142 (SOAP Client/Server Complex Object Support). (Dmitry)
- Fixed bug #35135 (PDOStatment without related PDO object may crash). (Ilia)
- Fixed bug #35091 (SoapClient leaks memory). (Dmitry)
- Fixed bug #35079 (stream_set_blocking(true) toggles, not enables blocking). (askalski at gmail dot com, Tony)
- Fixed bug #35078 (configure does not find ldap_start_tls_s). (Jani)
- Fixed bug #35046 (phpinfo() uses improper css enclosure). (Ilia)
- Fixed bugs #35022, #35019 (Regression in the behavior of key() and current() functions). (Ilia)
- Fixed bug #35017 (Exception thrown in error handler may cause unexpected behavior). (Dmitry)
- Fixed bug #35014 (array_product() always returns 0). (Ilia)
- Fixed bug #35009 (ZTS: Persistent resource destruct crashes when extension is compiled as shared). (Dmitry)
- Fixed bug #34996 (ImageTrueColorToPalette() crashes when ncolors is zero). (Tony)
- Fixed bug #34982 (array_walk_recursive() modifies elements outside function scope). (Dmitry)
- Fixed bug #34977 (Compile failure on MacOSX due to use of varargs.h). (Tony)
- Fixed bug #34968 (bz2 extension fails on to build on some win32 setups). (Ilia)
- Fixed bug #34965 (tidy is not binary safe). (Mike)
- Fixed bug #34957 (PHP doesn't respect ACLs for access checks). (Wez)
- Fixed bug #34950 (Unable to get WSDL through proxy). (Dmitry)
- Fixed bug #34938 (dns_get_record() doesn't resolve long hostnames and leaks). (Tony)
- Fixed bug #34905 (Digest authentication does not work with Apache 1). (Ilia)
- Fixed bug #34902 (mysqli::character_set_name() - undefined method). (Tony)
- Fixed bug #34899 (Fixed sqlite extension compile failure). (Ilia)
- Fixed bug #34893 (PHP5.1 overloading, Cannot access private property). (Dmitry)
- Fixed bug #34884 (Possible crash in ext/sqlite when sqlite.assoc_case is being used). (Tony, Ilia)
- Fixed bug #34879 (str_replace, array_map corrupt negative array indexes on 64-bit platforms). (Dmitry)
- Fixed bug #34873 (Segmentation Fault on foreach in object). (Dmitry)
- Fixed bug #34856 (configure fails to detect libiconv's type). (Tony)
- Fixed bug #34855 (ibase_service_attach() segfault on AMD64). (irie at gmx dot de, Tony)
- Fixed bug #34851 (SO_RECVTIMEO and SO_SNDTIMEO socket options expect integer parameter on Windows). (Mike)
- Fixed bug #34850 (--program-suffix and --program-prefix not included in man page names). (Jani)
- Fixed bug #34821 (zlib encoders fail on widely varying binary data on windows). (Mike, Ilia)
- Fixed bug #34818 (several functions crash when invalid mysqli_link object is passed). (Tony)
- Fixed bug #34810 (mysqli::init() and others use wrong $this pointer without checks). (Tony)
- Fixed bug #34809 (FETCH_INTO in PDO crashes without a destination object). (Ilia)
- Fixed bug #34802 (Fixed crash on object instantiation failure). (Ilia)
- Fixed bug #34796 (missing SSL linking in ext/ftp when configured as shared). (Jani)
- Fixed bug #34790 (preg_match_all(), named capturing groups, variable assignment/return => crash). (Dmitry)
- Fixed bug #34788 (SOAP Client not applying correct namespace to generated values). (Dmitry)
- Fixed bug #34787 (SOAP Client not handling boolean types correctly). (Dmitry)
- Fixed bug #34786 (2 @ results in change to error_reporting() to random value) (Dmitry, Tony)
- Fixed bug #34785 (subclassing of mysqli_stmt does not work). (Georg)
- Fixed bug #34782 (token_get_all() gives wrong result). (Dmitry)
- Fixed bug #34777 (Crash in dblib when fetching non-existent error info). (Ilia)
- Fixed bug #34771 (strtotime() fails with 1-12am/pm). (Derick)
- Fixed bug #34767 (Zend Engine 1 Compatibility not copying objects correctly). (Dmitry)
- Fixed bug #34758 (PDO_DBLIB did not implement rowCount()). (Ilia)
- Fixed bug #34757 (iconv_substr() gives "Unknown error" when offset > string length). (Tony)
- Fixed bug #34742 (ftp wrapper failures caused from segmented command transfer). (Ilia)
- Fixed bug #34725 (CLI segmentation faults during cleanup). (Dmitry)
- Fixed bug #34723 (array_count_values() strips leading zeroes). (Tony)
- Fixed bug #34712 (zend.ze1_compatibility_mode = on segfault). (Dmitry)
- Fixed bug #34704 (Infinite recursion due to corrupt JPEG). (Marcus)
- Fixed bug #34678 (__call(), is_callable() and static methods). (Dmitry)
- Fixed bug #34676 (missing support for strtotime("midnight") and strtotime("noon")). (Derick)
- Fixed bug #34645 (ctype corrupts memory when validating large numbers). (Ilia)
- Fixed bug #34643 (wsdl default value has no effect). (Dmitry)
- Fixed bug #34623 (Crash in pdo_mysql on longtext fields). (Ilia)
- Fixed bug #34617 (zend_deactivate: objects_store used after zend_objects_store_destroy is called). (Dmitry)
- Fixed bug #34590 (User defined PDOStatement class can't implement methods). (Marcus)
- Fixed bug #34584 (Segfault with SPL autoload handler). (Marcus)
- Fixed bug #34581 (crash with mod_rewrite). (Tony, Ilia)
- Fixed bug #34565 (mb_send_mail does not fetch mail.force_extra_parameters). (Marco, Ilia)
- Fixed bug #34557 (php -m exits with "error" 1). (Johannes)
- Fixed bug #34518 (Unset doesn't separate container in CV). (Dmitry)
- Fixed bug #34505 (Possible memory corruption when unmangling properties with empty names). (Tony)
- Fixed bug #34478 (Incorrect parsing of url's fragment (#...)). (Dmitry)
- Fixed bug #34467 (foreach + __get + __set inconsistency). (Dmitry)
- Fixed bug #34456 (Possible crash inside pspell extension). (Ilia)
- Fixed bug #34453 (parsing http://www.w3.org/2001/xml.xsd exception). (Dmitry)
- Fixed bug #34450 (Segfault when calling mysqli_close() in destructor). (Tony)
- Fixed bug #34449 (ext/soap: XSD_ANYXML functionality not exposed). (Dmitry)
- Fixed bug #34420 (Possible crash inside curl_multi_remove_handle()). (Ilia)
- Fixed bug #34358 (Fatal error: Cannot re-assign $this). (Dmitry)
- Fixed bug #34331 (php crashes when variables_order is empty). (Ilia)
- Fixed bug #34321 (Possible crash in filter code). (Ilia)
- Fixed bug #34311 (unserialize() crashes with chars above 191 dec). (Nuno)
- Fixed bug #34310 (foreach($arr as $c->d => $x) crashes). (Dmitry)
- Fixed bug #34307 (on_modify handler not called to set the default value if setting from php.ini was invalid). (Andrei)
- Fixed bug #34306 (
