Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
4777 lines (4659 sloc) 256 KB
03 Nov 2009, PHP 5.3.1 RC3
- Added "max_file_uploads" INI directive, which can be set to limit the
number of file uploads per-request to 100 by default, to prevent possible
DOS via temporary file exhaustion. (Ilia)
- Fixed crash in com_print_typeinfo when an invalid typelib is given. (Pierre)
- Fuxed bug #50052 (Different Hashes on Windows and Linux on wrong Salt size).
- Fixed bug #49908 (throwing exception in __autoload crashes when interface
is not defined). (Felipe)
- Fixed bug #49142 (crash when exception thrown from __tostring()).
(David Soria Parra)
- Fixed bug #49986 (Missing ICU DLLs on windows package). (Pierre)
- Fixed bug #48752 (Crash during date parsing with invalid date). (Pierre)
20 Oct 2009, PHP 5.3.1 RC2
- Upgraded bundled sqlite to version 3.6.19. (Scott)
- Fixed a safe_mode bypass in tempnam() identified by Grzegorz Stachowiak.
- 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.
- 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).
- Added support for ACL on Windows for thread safe SAPI (Apache2 for example)
and fix its support on NTS. (Pierre)
- Improve symbolic, mounted volume and junctions support for realpath on
Windows. (Pierre)
- 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).
- Fixed bug #49447 (php engine need to correctly check for socket API
return status on windows). (Sriram Natarajan)
- Fixed bug #48909 (Segmentation fault in mysqli_stmt_execute()). (Andrey)
- Fixed bug #48805 (IPv6 socket transport is not working). (Ilia)
- Fixed bug #48754 (mysql_close() crash php when no handle specified).
(Johannes, Andrey)
- Fixed bug #40013 (php_uname() does not return nodename on Netware (Guenter
- Fixed PECL bug #16842 (oci_error return false when NO_DATA_FOUND is raised).
(Chris Jones)
03 Sep 2009, PHP 5.3.1 RC1
- Upgraded bundled sqlite to version 3.6.17. (Scott)
- Added missing sanity checks around exif processing. (Ilia)
- Added error constant when json_encode() detects an invalid UTF-8 sequence.
- Improved readlink on Windows, suppress \??\ and use the drive syntax only.
- 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 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.
- 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)
- 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).
- Fixed bug #49289 (bcmath module doesn't compile with phpize configure).
- 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 #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 #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).
- Fixed bug #49032 (SplFileObject::fscanf() variables passed by reference).
- 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).
- Fixed bug #49018 (phar tar stores long filenames wit prefix/name reversed).
- 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).
- Fixed bug #48929 (Double \r\n 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 #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).
- 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 #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)
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).
- 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).
- 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).
- Fixed bug #46614 (Extended MySQLi class gives incorrect empty() result).
- 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 #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)
30 Jun 2009, PHP 5.3.0
- Upgraded bundled PCRE to version 7.9. (Nuno)
- Upgraded bundled sqlite to version 3.6.15. (Scott)
- Moved extensions to PECL (Derick, Lukas, Pierre, Scott):
. ext/dbase
. ext/fbsql
. ext/fdf
. ext/ncurses
. ext/mhash (BC layer is now entirely within ext/hash)
. ext/ming
. ext/msql
. ext/sybase (not maintained anymore, sybase_ct has to be used instead)
- Removed the experimental RPL (master/slave) functions from mysqli. (Andrey)
- Removed zend.ze1_compatibility_mode. (Dmitry)
- Removed all zend_extension_* php.ini directives. Zend extensions are now
always loaded using zend_extension directive. (Derick)
- Removed special treatment of "/tmp" in sessions for open_basedir.
Note: This undocumented behaviour was introduced in 5.2.2. (Alexey)
- Removed shebang line check from CGI sapi (checked by scanner). (Dmitry)
- Changed PCRE, Reflection and SPL extensions to be always enabled. (Marcus)
- Changed md5() to use improved implementation. (Solar Designer, Dmitry)
- Changed HTTP stream wrapper to accept any code between and including
200 to 399 as successful. (Mike, Noah Fontes)
- Changed __call() to be invoked on private/protected method access, similar to
properties and __get(). (Andrei)
- Changed dl() to be disabled by default. Enabled only when explicitly
registered by the SAPI. Currently enabled with cli, cgi and embed SAPIs.
- Changed opendir(), dir() and scandir() to use default context when no context
argument is passed. (Sara)
- Changed open_basedir to allow tightening in runtime contexts. (Sara)
- Changed PHP/Zend extensions to use flexible build IDs. (Stas)
- Changed error level E_ERROR into E_WARNING in Soap extension methods
parameter validation. (Felipe)
- Changed openssl info to show the shared library version number. (Scott)
- Changed floating point behaviour to consistently use double precision on all
platforms and with all compilers. (Christian Seiler)
- Changed round() to act more intuitively when rounding to a certain precision
and round very large and very small exponents correctly. (Christian Seiler)
- Changed session_start() to return false when session startup fails. (Jani)
- Changed property_exists() to check the existence of a property independent of
accessibility (like method_exists()). (Felipe)
- Changed array_reduce() to allow mixed $initial (Christian Seiler)
- Improved PHP syntax and semantics:
. Added lambda functions and closures. (Christian Seiler, Dmitry)
. Added "jump label" operator (limited "goto"). (Dmitry, Sara)
. Added NOWDOC syntax. (Gwynne Raskind, Stas, Dmitry)
. Added HEREDOC syntax with double quotes. (Lars Strojny, Felipe)
. Added support for using static HEREDOCs to initialize static variables and
class members or constants. (Matt)
. Improved syntax highlighting and consistency for variables in double-quoted
strings and literal text in HEREDOCs and backticks. (Matt)
. Added "?:" operator. (Marcus)
. Added support for namespaces. (Dmitry, Stas, Gregory, Marcus)
. Added support for Late Static Binding. (Dmitry, Etienne Kneuss)
. Added support for __callStatic() magic method. (Sara)
. Added forward_static_call(_array) to complete LSB. (Mike Lively)
. Added support for dynamic access of static members using $foo::myFunc().
(Etienne Kneuss)
. Improved checks for callbacks. (Marcus)
. Added __DIR__ constant. (Lars Strojny)
. Added new error modes E_USER_DEPRECATED and E_DEPRECATED.
E_DEPRECATED is used to inform about stuff being scheduled for removal
in future PHP versions. (Lars Strojny, Felipe, Marcus)
. Added "request_order" INI variable to control specifically $_REQUEST
behavior. (Stas)
. Added support for exception linking. (Marcus)
. Added ability to handle exceptions in destructors. (Marcus)
- Improved PHP runtime speed and memory usage:
. Substitute global-scope, persistent constants with their values at compile
time. (Matt)
. Removed direct executor recursion. (Dmitry)
. Use fastcall calling convention in executor on x86. (Dmitry)
. Use IS_CV for direct access to $this variable. (Dmitry)
. Use ZEND_FREE() opcode instead of ZEND_SWITCH_FREE(IS_TMP_VAR). (Dmitry)
. Lazy EG(active_symbol_table) initialization. (Dmitry)
. Optimized ZEND_RETURN opcode to not allocate and copy return value if it is
not used. (Dmitry)
. Replaced all flex based scanners with re2c based scanners.
(Marcus, Nuno, Scott)
. Added garbage collector. (David Wang, Dmitry).
. Improved PHP binary size and startup speed with GCC4 visibility control.
. Improved engine stack implementation for better performance and stability.
. Improved memory usage by moving constants to read only memory.
(Dmitry, Pierre)
. Changed exception handling. Now each op_array doesn't contain
ZEND_HANDLE_EXCEPTION opcode in the end. (Dmitry)
. Optimized require_once() and include_once() by eliminating fopen(3) on
second usage. (Dmitry)
ZEND_ADD_INTERFACE opcode. (Dmitry)
. Optimized string searching for a single character.
(Michal Dziemianko, Scott)
. Optimized interpolated strings to use one less opcode. (Matt)
- Improved php.ini handling: (Jani)
. Added ".htaccess" style user-defined php.ini files support for CGI/FastCGI.
. Added support for special [PATH=/opt/httpd/] and
[] sections. Directives set in these sections can
not be overridden by user-defined ini-files or during runtime.
. Added better error reporting for php.ini syntax errors.
. Allowed using full path to load modules using "extension" directive.
. Allowed "ini-variables" to be used almost everywhere ini php.ini files.
. Allowed using alphanumeric/variable indexes in "array" ini options.
. Added 3rd optional parameter to parse_ini_file() to specify the scanning
mode of INI_SCANNER_NORMAL or INI_SCANNER_RAW. In raw mode option values
and section values are treated as-is.
. Fixed get_cfg_var() to be able to return "array" ini options.
. Added optional parameter to ini_get_all() to only retrieve the current
value. (Hannes)
- Improved Windows support:
. Update all libraries to their latest stable version. (Pierre, Rob, Liz,
. Added Windows support for stat(), touch(), filemtime(), filesize() and
related functions. (Pierre)
. Re-added socket_create_pair() for Windows in sockets extension. (Kalle)
. Added inet_pton() and inet_ntop() also for Windows platforms.
(Kalle, Pierre)
. Added mcrypt_create_iv() for Windows platforms. (Pierre)
. Added ACL Cache support on Windows.
(Kanwaljeet Singla, Pierre, Venkat Raman Don)
. Added constants based on Windows' GetVersionEx information.
. Added support for ACL (is_writable, is_readable, reports now correct
results) on Windows. (Pierre, Venkat Raman Don, Kanwaljeet Singla)
. Added support for fnmatch() on Windows. (Pierre)
. Added support for time_nanosleep() and time_sleep_until() on Windows.
. Added support for symlink(), readlink(), linkinfo() and link() on Windows.
They are available only when the running platform supports them. (Pierre)
. the GMP extension now relies on MPIR instead of the GMP library. (Pierre)
. Added Windows support for stream_socket_pair(). (Kalle)
. Drop all external dependencies for the core features. (Pierre)
. Drastically improve the build procedure (Pierre, Kalle, Rob):
. VC9 (Visual C++ 2008) or later support
. Initial experimental x64 support
. MSI installer now supports all recent Windows versions, including
Windows 7. (John, Kanwaljeet Singla)
- Improved and cleaned CGI code:
. FastCGI is now always enabled and cannot be disabled.
See sapi/cgi/CHANGES for more details. (Dmitry)
. Added CGI SAPI -T option which can be used to measure execution
time of script repeated several times. (Dmitry)
- Improved streams:
. Fixed confusing error message on failure when no errors are logged. (Greg)
. Added stream_supports_lock() function. (Benjamin Schulz)
. Added context parameter for copy() function. (Sara)
. Added "glob://" stream wrapper. (Marcus)
. Added "params" as optional parameter for stream_context_create(). (Sara)
. Added ability to use stream wrappers in include_path. (Gregory, Dmitry)
- Improved DNS API
. Added Windows support for dns_check_record(), dns_get_mx(), checkdnsrr() and
getmxrr(). (Pierre)
. Added support for old style DNS functions (supports OSX and FBSD). (Scott)
. Added a new "entries" array in dns_check_record() containing the TXT
elements. (Felipe, Pierre)
- Improved hash extension:
. Changed mhash to be a wrapper layer around the hash extension. (Scott)
. Added hash_copy() function. (Tony)
. Added sha224 hash algorithm to the hash extension. (Scott)
- Improved IMAP support (Pierre):
. Added imap_gc() to clear the imap cache
. Added imap_utf8_to_mutf7() and imap_mutf7_to_utf8()
- Improved mbstring extension:
. Added "mbstring.http_output_conv_mimetypes" INI directive that allows
common non-text types such as "application/xhtml+xml" to be converted
by mb_output_handler(). (Moriyoshi)
- Improved OCI8 extension (Chris Jones/Oracle Corp.):
. Added Database Resident Connection Pooling (DRCP) and Fast
Application Notification (FAN) support.
. Added support for Oracle External Authentication (not supported
on Windows).
. Improve persistent connection handling of restarted DBs.
. Added SQLT_AFC (aka CHAR datatype) support to oci_bind_by_name.
. Fixed bug #45458 (Numeric keys for associative arrays are not
handled properly)
. Fixed bug #41069 (Segmentation fault with query over DB link).
. Fixed define of SQLT_BDOUBLE and SQLT_BFLOAT constants with Oracle
10g ORACLE_HOME builds.
. Changed default value of oci8.default_prefetch from 10 to 100.
. Fixed PECL Bug #16035 (OCI8: oci_connect without ORACLE_HOME defined causes
segfault) (Chris Jones/Oracle Corp.)
. Fixed PECL Bug #15988 (OCI8: sqlnet.ora isn't read with older Oracle
libraries) (Chris Jones/Oracle Corp.)
. Fixed PECL Bug #14268 (Allow "pecl install oci8" command to "autodetect" an
Instant Client RPM install) (Chris Jones/Oracle Corp.)
. Fixed PECL bug #12431 (OCI8 ping functionality is broken).
. Allow building (e.g from PECL) the PHP 5.3-based OCI8 code with
PHP 4.3.9 onwards.
. Provide separate extensions for Oracle 11g and 10g on Windows.
(Pierre, Chris)
- Improved OpenSSL extension:
. Added support for OpenSSL digest and cipher functions. (Dmitry)
. Added access to internal values of DSA, RSA and DH keys. (Dmitry)
. Fixed a memory leak on openssl_decrypt(). (Henrique)
. Fixed segfault caused by openssl_pkey_new(). (Henrique)
. Fixed bug caused by uninitilized variables in openssl_pkcs7_encrypt() and
openssl_pkcs7_sign(). (Henrique)
. Fixed error message in openssl_seal(). (Henrique)
- Improved pcntl extension: (Arnaud)
. Added pcntl_signal_dispatch().
. Added pcntl_sigprocmask().
. Added pcntl_sigwaitinfo().
. Added pcntl_sigtimedwait().
- Improved SOAP extension:
. Added support for element names in context of XMLSchema's <any>. (Dmitry)
. Added ability to use Traversable objects instead of plain arrays.
(Joshua Reese, Dmitry)
. Fixed possible crash bug caused by an uninitialized value. (Zdash Urf)
- Improved SPL extension:
. Added SPL to list of standard extensions that cannot be disabled. (Marcus)
. Added ability to store associative information with objects in
SplObjectStorage. (Marcus)
. Added ArrayAccess support to SplObjectStorage. (Marcus)
. Added SplDoublyLinkedList, SplStack, SplQueue classes. (Etienne)
. Added FilesystemIterator. (Marcus)
. Added GlobIterator. (Marcus)
. Added SplHeap, SplMinHeap, SplMaxHeap, SplPriorityQueue classes. (Etienne)
. Added new parameter $prepend to spl_autoload_register(). (Etienne)
. Added SplFixedArray. (Etienne, Tony)
. Added delaying exceptions in SPL's autoload mechanism. (Marcus)
. Added RecursiveTreeIterator. (Arnaud, Marcus)
. Added MultipleIterator. (Arnaud, Marcus, Johannes)
- Improved Zend Engine:
. Added "compact" handler for Zend MM storage. (Dmitry)
. Added "+" and "*" specifiers to zend_parse_parameters(). (Andrei)
. Added concept of "delayed early binding" that allows opcode caches to
perform class declaration (early and/or run-time binding) in exactly
the same order as vanilla PHP. (Dmitry)
- Improved crypt() function: (Pierre)
. Added Blowfish and extended DES support. (Using Blowfish implementation
from Solar Designer).
. Made crypt features portable by providing our own implementations
for crypt_r and the algorithms which are used when OS does not provide
them. PHP implementations are always used for Windows builds.
- Deprecated session_register(), session_unregister() and
session_is_registered(). (Hannes)
- Deprecated define_syslog_variables(). (Kalle)
- Deprecated ereg extension. (Felipe)
- Added new extensions:
. Added Enchant extension as a way to access spell checkers. (Pierre)
. Added fileinfo extension as replacement for mime_magic extension. (Derick)
. Added intl extension for Internationalization. (Ed B., Vladimir I.,
Dmitry L., Stanislav M., Vadim S., Kirti V.)
. Added mysqlnd extension as replacement for libmysql for ext/mysql, mysqli
and PDO_mysql. (Andrey, Johannes, Ulf)
. Added phar extension for handling PHP Archives. (Greg, Marcus, Steph)
. Added SQLite3 extension. (Scott)
- Added new date/time functionality: (Derick)
. date_parse_from_format(): Parse date/time strings according to a format.
. date_create_from_format()/DateTime::createFromFormat(): Create a date/time
object by parsing a date/time string according to a given format.
. date_get_last_errors()/DateTime::getLastErrors(): Return a list of warnings
and errors that were found while parsing a date/time string through:
. strtotime() / new DateTime
. date_create_from_format() / DateTime::createFromFormat()
. date_parse_from_format().
. support for abbreviation and offset based timezone specifiers for
the 'e' format specifier, DateTime::__construct(), DateTime::getTimeZone()
and DateTimeZone::getName().
. support for selectively listing timezone identifiers by continent or
country code through timezone_identifiers_list() /
. timezone_location_get() / DateTimezone::getLocation() for retrieving
location information from timezones.
. date_timestamp_set() / DateTime::setTimestamp() to set a Unix timestamp
without invoking the date parser. (Scott, Derick)
. date_timestamp_get() / DateTime::getTimestamp() to retrieve the Unix
timestamp belonging to a date object.
. two optional parameters to timezone_transitions_get() /
DateTimeZone::getTranstions() to limit the range of transitions being
. support for "first/last day of <month>" style texts.
. support for date/time strings returned by MS SQL.
. support for serialization and unserialization of DateTime objects.
. support for diffing date/times through date_diff() / DateTime::diff().
. support for adding/subtracting weekdays with strtotime() and
. DateInterval class to represent the difference between two date/times.
. support for parsing ISO intervals for use with DateInterval.
. date_add() / DateTime::add(), date_sub() / DateTime::sub() for applying an
interval to an existing date/time.
. proper support for "this week", "previous week"/"last week" and "next week"
phrases so that they actually mean the week and not a seven day period
around the current day.
. support for "<xth> <weekday> of" and "last <weekday> of" phrases to be used
with months - like in "last saturday of februari 2008".
. support for "back of <hour>" and "front of <hour>" phrases that are used in
. DatePeriod class which supports iterating over a DateTime object applying
DateInterval on each iteration, up to an end date or limited by maximum
number of occurences.
- Added compatibility mode in GD, imagerotate, image(filled)ellipse
imagefilter, imageconvolution and imagecolormatch are now always enabled.
- Added array_replace() and array_replace_recursive() functions. (Matt)
- Added ReflectionProperty::setAccessible() method that allows non-public
property's values to be read through ::getValue() and set through
::setValue(). (Derick, Sebastian)
- Added msg_queue_exists() function to sysvmsg extension. (Benjamin Schulz)
- Added Firebird specific attributes that can be set via PDO::setAttribute()
to control formatting of date/timestamp columns: PDO::FB_ATTR_DATE_FORMAT,
- Added gmp_testbit() function. (Stas)
- Added icon format support to getimagesize(). (Scott)
- Added LDAP_OPT_NETWORK_TIMEOUT option for ldap_set_option() to allow
setting network timeout (FR #42837). (Jani)
- Added optional escape character parameter to fgetcsv(). (David Soria Parra)
- Added an optional parameter to strstr() and stristr() for retrieval of either
the part of haystack before or after first occurrence of needle.
(Johannes, Felipe)
- Added xsl->setProfiling() for profiling stylesheets. (Christian)
- Added long-option feature to getopt() and made getopt() available also on
win32 systems by adding a common getopt implementation into core.
(David Soria Parra, Jani)
- Added support for optional values, and = as separator, in getopt(). (Hannes)
- Added lcfirst() function. (David C)
- Added PREG_BAD_UTF8_OFFSET_ERROR constant. (Nuno)
- Added native support for asinh(), acosh(), atanh(), log1p() and expm1().
- Added LIBXML_LOADED_VERSION constant (libxml2 version currently used). (Rob)
- Added JSON_FORCE_OBJECT flag to json_encode(). (Scott, Richard Quadling)
- Added timezone_version_get() to retrieve the version of the used timezone
database. (Derick)
- Added 'n' flag to fopen to allow passing O_NONBLOCK to the underlying
open(2) system call. (Mikko)
- Added "dechunk" filter which can decode HTTP responses with chunked
transfer-encoding. HTTP streams use this filter automatically in case
"Transfer-Encoding: chunked" header is present in response. It's possible to
disable this behaviour using "http"=>array("auto_decode"=>0) in stream
context. (Dmitry)
- Added support for CP850 encoding in mbstring extension.
(Denis Giffeler, Moriyoshi)
- Added stream_cast() and stream_set_options() to user-space stream wrappers,
allowing stream_select(), stream_set_blocking(), stream_set_timeout() and
stream_set_write_buffer() to work with user-space stream wrappers. (Arnaud)
- Added header_remove() function. (chsc at peytz dot dk, Arnaud)
- Added stream_context_get_params() function. (Arnaud)
- Added optional parameter "new" to sybase_connect(). (Timm)
- Added parse_ini_string() function. (grange at lemonde dot fr, Arnaud)
- Added str_getcsv() function. (Sara)
- Added openssl_random_pseudo_bytes() function. (Scott)
- Added ability to send user defined HTTP headers with SOAP request.
(Brian J.France, Dmitry)
- Added concatenation option to bz2.decompress stream filter.
(Keisial at gmail dot com, Greg)
- Added support for using compressed connections with PDO_mysql. (Johannes)
- Added the ability for json_decode() to take a user specified depth. (Scott)
- Added support for the mysql_stmt_next_result() function from libmysql.
- Added function preg_filter() that does grep and replace in one go. (Marcus)
- Added system independent realpath() implementation which caches intermediate
directories in realpath-cache. (Dmitry)
- Added optional clear_realpath_cache and filename parameters to
clearstatcache(). (Jani, Arnaud)
- Added litespeed SAPI module. (George Wang)
- Added ext/hash support to ext/session's ID generator. (Sara)
- Added quoted_printable_encode() function. (Tony)
- Added stream_context_set_default() function. (Davey Shafik)
- Added optional "is_xhtml" parameter to nl2br() which makes the function
output <br> when false and <br /> when true (FR #34381). (Kalle)
- Added PHP_MAXPATHLEN constant (maximum length of a path). (Pierre)
- Added support for SSH via libssh2 in cURL. (Pierre)
- Added support for gray levels PNG image with alpha in GD extension. (Pierre)
- Added support for salsa hashing functions in HASH extension. (Scott)
- Added DOMNode::getLineNo to get line number of parsed node. (Rob)
- Added table info to PDO::getColumnMeta() with SQLite. (Martin Jansen, Scott)
- Added mail logging functionality that allows logging of mail sent via
mail() function. (Ilia)
- Added json_last_error() to return any error information from json_decode().
- Added gethostname() to return the current system host name. (Ilia)
- Added shm_has_var() function. (Mike)
- Added depth parameter to json_decode() to lower the nesting depth from the
maximum if required. (Scott)
- Added pixelation support in imagefilter(). (Takeshi Abe, Kalle)
- Added SplObjectStorage::addAll/removeAll. (Etienne)
- Implemented FR #41712 (curl progress callback: CURLOPT_PROGRESSFUNCTION).
(sdteffen[at]gmail[dot].com, Pierre)
- Implemented FR #47739 (Missing cURL option do disable IPv6). (Pierre)
- Implemented FR #39637 (Missing cURL option CURLOPT_FTP_FILEMETHOD). (Pierre)
- Fixed an issue with ReflectionProperty::setAccessible().
(Sebastian, Roman Borschel)
- Fixed html_entity_decode() incorrectly converting numeric html entities
to different characters with cp1251 and cp866. (Scott)
- Fixed an issue in date() where a : was printed for the O modifier after a P
modifier was used. (Derick)
- Fixed exec() on Windows to not eat the first and last double quotes. (Scott)
- Fixed readlink on Windows in thread safe SAPI (apache2.x etc.). (Pierre)
- Fixed a bug causing miscalculations with the "last <weekday> of <n> month"
relative time string. (Derick)
- Fixed bug causing the algorithm parameter of mhash() to be modified. (Scott)
- Fixed invalid calls to free when internal fileinfo magic file is used. (Scott)
- Fixed memory leak inside wddx_add_vars() function. (Felipe)
- Fixed check in recode extension to allow builing of recode and mysql
extensions when using a recent libmysql. (Johannes)
- Fixed PECL bug #12794 (PDOStatement->nextRowset() doesn't work). (Johannes)
- Fixed PECL bug #12401 (Add support for ATTR_FETCH_TABLE_NAMES). (Johannes)
- Fixed bug #48696 (ldap_read() segfaults with invalid parameters). (Felipe)
- Fixed bug #48643 (String functions memory issue). (Dmitry)
- Fixed bug #48641 (tmpfile() uses old parameter parsing).
(crrodriguez at opensuse dot org)
- Fixed bug #48624 (.user.ini never gets parsed). (Pierre)
- Fixed bug #48620 (X-PHP-Originating-Script assumes no trailing CRLF in
existing headers). (Ilia)
- Fixed bug #48578 (Can't build 5.3 on FBSD 4.11). (Rasmus)
- Fixed bug #48535 (file_exists returns false when impersonate is used).
(Kanwaljeet Singla, Venkat Raman Don)
- Fixed bug #48493 (spl_autoload_register() doesn't work correctly when
prepending functions). (Scott)
- Fixed bug #48215 (Calling a method with the same name as the parent class
calls the constructor). (Scott)
- Fixed bug #48200 (compile failure with mbstring.c when
--enable-zend-multibyte is used). (Jani)
- Fixed bug #48188 (Cannot execute a scrollable cursors twice with PDO_PGSQL).
- Fixed bug #48185 (warning: value computed is not used in
pdo_sqlite_stmt_get_col line 271). (Matteo)
- Fixed bug #48087 (call_user_method() invalid free of arguments). (Felipe)
- Fixed bug #48060 (pdo_pgsql - large objects are returned as empty). (Matteo)
- Fixed bug #48034 (PHP crashes when script is 8192 (8KB) bytes long). (Dmitry)
- Fixed bug #48004 (Error handler prevents creation of default object). (Dmitry)
- Fixed bug #47880 (crashes in call_user_func_array()). (Dmitry)
- Fixed bug #47856 (stristr() converts needle to lower-case). (Ilia)
- Fixed bug #47851 (is_callable throws fatal error). (Dmitry)
- Fixed bug #47816 (pcntl tests failing on NetBSD). (Matteo)
- Fixed bug #47779 (Wrong value for SIG_UNBLOCK and SIG_SETMASK constants).
- Fixed bug #47771 (Exception during object construction from arg call calls
object's destructor). (Dmitry)
- Fixed bug #47767 (include_once does not resolve windows symlinks or junctions)
(Kanwaljeet Singla, Venkat Raman Don)
- Fixed bug #47757 (rename JPG to JPEG in phpinfo). (Pierre)
- Fixed bug #47745 (FILTER_VALIDATE_INT doesn't allow minimum integer). (Dmitry)
- Fixed bug #47714 (autoloading classes inside exception_handler leads to
crashes). (Dmitry)
- Fixed bug #47671 (Cloning SplObjectStorage instances). (Etienne)
- Fixed bug #47664 (get_class returns NULL instead of FALSE). (Dmitry)
- Fixed bug #47662 (Support more than 127 subpatterns in preg_match). (Nuno)
- Fixed bug #47596 (Bus error on parsing file). (Dmitry)
- Fixed bug #47572 (Undefined constant causes segmentation fault). (Felipe)
- Fixed bug #47560 (explode()'s limit parameter odd behaviour). (Matt)
- Fixed bug #47549 (get_defined_constants() return array with broken array
categories). (Ilia)
- Fixed bug #47535 (Compilation failure in ps_fetch_from_1_to_8_bytes()).
- Fixed bug #47534 (RecursiveDiteratoryIterator::getChildren ignoring
- Fixed bug #47443 (metaphone('scratch') returns wrong result). (Felipe)
- Fixed bug #47438 (mysql_fetch_field ignores zero offset). (Johannes)
- Fixed bug #47398 (PDO_Firebird doesn't implements quoter correctly). (Felipe)
- Fixed bug #47390 (odbc_fetch_into - BC in php 5.3.0). (Felipe)
- Fixed bug #47359 (Use the expected unofficial mimetype for bmp files). (Scott)
- Fixed bug #47343 (gc_collect_cycles causes a segfault when called within a
destructor in one case). (Dmitry)
- Fixed bug #47320 ($php_errormsg out of scope in functions). (Dmitry)
- Fixed bug #47318 (UMR when trying to activate user config). (Pierre)
- Fixed bug #47243 (OCI8: Crash at shutdown on Windows) (Chris Jones/Oracle
- Fixed bug #47231 (offsetGet error using incorrect offset). (Etienne)
- Fixed bug #47229 (preg_quote() should escape the '-' char). (Nuno)
- Fixed bug #47165 (Possible memory corruption when passing return value by
reference). (Dmitry)
- Fixed bug #47087 (Second parameter of mssql_fetch_array()). (Felipe)
- Fixed bug #47085 (rename() returns true even if the file in PHAR does not
exist). (Greg)
- Fixed bug #47050 (mysqli_poll() modifies improper variables). (Johannes)
- Fixed bug #47045 (SplObjectStorage instances compared with ==). (Etienne)
- Fixed bug #47038 (Memory leak in include). (Dmitry)
- Fixed bug #47031 (Fix constants in DualIterator example). (Etienne)
- Fixed bug #47021 (SoapClient stumbles over WSDL delivered with
"Transfer-Encoding: chunked"). (Dmitry)
- Fixed bug #46994 (OCI8: CLOB size does not update when using CLOB IN OUT param
in stored procedure) (Chris Jones/Oracle Corp.)
- Fixed bug #46979 (use with non-compound name *has* effect). (Dmitry)
- Fixed bug #46957 (The tokenizer returns deprecated values). (Felipe)
- Fixed bug #46944 (UTF-8 characters outside the BMP aren't encoded correctly).
- Fixed bug #46897 (ob_flush() should fail to flush unerasable buffers).
(David C.)
- Fixed bug #46849 (Cloning DOMDocument doesn't clone the properties). (Rob)
- Fixed bug #46847 (phpinfo() is missing some settings). (Hannes)
- Fixed bug #46844 (php scripts or included files with first line starting
with # have the 1st line missed from the output). (Ilia)
- Fixed bug #46817 (tokenizer misses last single-line comment (PHP 5.3+, with
re2c lexer)). (Matt, Shire)
- Fixed bug #46811 (ini_set() doesn't return false on failure). (Hannes)
- Fixed bug #46763 (mb_stristr() wrong output when needle does not exist).
(Henrique M. Decaria)
- Fixed bug #46755 (warning: use statement with non-compound name). (Dmitry)
- Fixed bug #46746 (xmlrpc_decode_request outputs non-suppressable error when
given bad data). (Ilia)
- Fixed bug #46738 (Segfault when mb_detect_encoding() fails). (Scott)
- Fixed bug #46731 (Missing validation for the options parameter of the
imap_fetch_overview() function). (Ilia)
- Fixed bug #46711 (cURL curl_setopt leaks memory in foreach loops). (magicaltux
[at] php [dot] net)
- Fixed bug #46701 (Creating associative array with long values in the key fails
on 32bit linux). (Shire)
- Fixed bug #46681 (mkdir() fails silently on PHP 5.3). (Hannes)
- Fixed bug #46653 (can't extend mysqli). (Johannes)
- Fixed bug #46646 (Restrict serialization on some internal classes like Closure
and SplFileInfo using exceptions). (Etienne)
- Fixed bug #46623 (OCI8: phpinfo doesn't show compile time ORACLE_HOME with
phpize) (Chris Jones/Oracle Corp.)
- Fixed bug #46578 (strip_tags() does not honor end-of-comment when it
encounters a single quote). (Felipe)
- Fixed bug #46546 (Segmentation fault when using declare statement with
non-string value). (Felipe)
- Fixed bug #46542 (Extending PDO class with a __call() function doesn't work as
expected). (Johannes)
- Fixed bug #46421 (SplFileInfo not correctly handling /). (Etienne)
- Fixed bug #46347 (parse_ini_file() doesn't support * in keys). (Nuno)
- Fixed bug #46268 (DateTime::modify() does not reset relative time values).
- Fixed bug #46241 (stacked error handlers, internal error handling in general).
- Fixed bug #46238 (Segmentation fault on static call with empty string method).
- Fixed bug #46192 (ArrayObject with objects as storage serialization).
- Fixed bug #46185 (importNode changes the namespace of an XML element). (Rob)
- Fixed bug #46178 (memory leak in ext/phar). (Greg)
- Fixed bug #46160 (SPL - Memory leak when exception is thrown in offsetSet).
- Fixed Bug #46147 (after stream seek, appending stream filter reads incorrect
data). (Greg)
- Fixed bug #46127 (php_openssl_tcp_sockop_accept forgets to set context on
accepted stream) (Mark Karpeles, Pierre)
- Fixed bug #46115 (Memory leak when calling a method using Reflection).
- Fixed bug #46110 (XMLWriter - openmemory() and openuri() leak memory on
multiple calls). (Ilia)
- Fixed bug #46108 (DateTime - Memory leak when unserializing). (Felipe)
- Fixed bug #46106 (Memory leaks when using global statement). (Dmitry)
- Fixed bug #46099 (Xsltprocessor::setProfiling - memory leak). (Felipe, Rob).
- Fixed bug #46087 (DOMXPath - segfault on destruction of a cloned object).
- Fixed bug #46048 (SimpleXML top-level @attributes not part of iterator).
(David C.)
- Fixed bug #46044 (Mysqli - wrong error message). (Johannes)
- Fixed bug #46042 (memory leaks with reflection of mb_convert_encoding()).
- Fixed bug #46039 (ArrayObject iteration is slow). (Arnaud)
- Fixed bug #46033 (Direct instantiation of SQLite3stmt and SQLite3result cause
a segfault.) (Scott)
- Fixed bug #45991 (Ini files with the UTF-8 BOM are treated as invalid).
- Fixed bug #45989 (json_decode() doesn't return NULL on certain invalid
strings). (magicaltux, Scott)
- Fixed bug #45976 (Moved SXE from SPL to SimpleXML). (Etienne)
- Fixed bug #45928 (large scripts from stdin are stripped at 16K border).
(Christian Schneider, Arnaud)
- Fixed bug #45911 (Cannot disable ext/hash). (Arnaud)
- Fixed bug #45907 (undefined reference to 'PHP_SHA512Init'). (Greg)
- Fixed bug #45826 (custom ArrayObject serialization). (Etienne)
- Fixed bug #45820 (Allow empty keys in ArrayObject). (Etienne)
- Fixed bug #45791 (json_decode() doesn't convert 0e0 to a double). (Scott)
- Fixed bug #45786 (FastCGI process exited unexpectedly). (Dmitry)
- Fixed bug #45757 (FreeBSD4.11 build failure: failed include; stdint.h).
- Fixed bug #45743 (property_exists fails to find static protected member in
child class). (Felipe)
- Fixed bug #45717 (Fileinfo/libmagic build fails, missing err.h and getopt.h).
- Fixed bug #45706 (Unserialization of classes derived from ArrayIterator
fails). (Etienne, Dmitry)
- Fixed bug #45696 (Not all DateTime methods allow method chaining). (Derick)
- Fixed bug #45682 (Unable to var_dump(DateInterval)). (Derick)
- Fixed bug #45447 (Filesystem time functions on Vista and server 2008).
- Fixed bug #45432 (PDO: persistent connection leak). (Felipe)
- Fixed bug #45392 (ob_start()/ob_end_clean() and memory_limit). (Ilia)
- Fixed bug #45384 (parse_ini_file will result in parse error with no trailing
newline). (Arnaud)
- Fixed bug #45382 (timeout bug in stream_socket_enable_crypto). (vnegrier at
optilian dot com, Ilia)
- Fixed bug #45044 (relative paths not resolved correctly). (Dmitry)
- Fixed bug #44861 (scrollable cursor don't work with pgsql). (Matteo)
- Fixed bug #44842 (parse_ini_file keys that start/end with underscore).
- Fixed bug #44575 (parse_ini_file comment # line problems). (Arnaud)
- Fixed bug #44409 (PDO::FETCH_SERIALIZE calls __construct()). (Matteo)
- Fixed bug #44173 (PDO->query() parameter parsing/checking needs an update).
- Fixed bug #44154 (pdo->errorInfo() always have three elements in the returned
array). (David C.)
- Fixed bug #44153 (pdo->errorCode() returns NULL when there are no errors).
(David C.)
- Fixed bug #44135 (PDO MySQL does not support CLIENT_FOUND_ROWS). (Johannes,
chx1975 at gmail dot com)
- Fixed bug #44100 (Inconsistent handling of static array declarations with
duplicate keys). (Dmitry)
- Fixed bug #43831 ($this gets mangled when extending PDO with persistent
connection). (Felipe)
- Fixed bug #43817 (opendir() fails on Windows directories with parent directory
unaccessible). (Dmitry)
- Fixed bug #43069 (SoapClient causes 505 HTTP Version not supported error
message). (Dmitry)
- Fixed bug #43008 (php://filter uris ignore url encoded filternames and can't
handle slashes). (Arnaud)
- Fixed bug #42362 (HTTP status codes 204 and 304 should not be gzipped).
(Scott, Edward Z. Yang)
- Fixed bug #41874 (separate STDOUT and STDERR in exec functions). (Kanwaljeet
Singla, Venkat Raman Don, Pierre)
- Fixed bug #41534 (SoapClient over HTTPS fails to reestablish connection).
- Fixed bug #38802 (max_redirects and ignore_errors). (patch by
- Fixed bug #35980 (touch() works on files but not on directories). (Pierre)
17 Jun 2009, PHP 5.2.10
- Updated timezone database to version 2009.9 (2009i) (Derick)
- Added "ignore_errors" option to http fopen wrapper. (David Zulke, Sara)
and CURLPROTO_* for redirect fixes in CURL 7.19.4. (Yoram Bar Haim, Stas)
- Added support for Sun CC (FR #46595 and FR #46513). (David Soria Parra)
- Changed default value of array_unique()'s optional sorting type parameter
back to SORT_STRING to fix backwards compatibility breakage introduced in
PHP 5.2.9. (Moriyoshi)
- Fixed memory corruptions while reading properties of zip files. (Ilia)
- Fixed memory leak in ob_get_clean/ob_get_flush. (Christian)
- Fixed segfault on invalid session.save_path. (Hannes)
- Fixed leaks in imap when a mail_criteria is used. (Pierre)
- Fixed missing erealloc() in fix for Bug #40091 in spl_autoload_register. (Greg)
- Fixed bug #48562 (Reference recursion causes segfault when used in
wddx_serialize_vars()). (Felipe)
- Fixed bug #48557 (Numeric string keys in Apache Hashmaps are not cast to
integers). (David Zuelke)
- Fixed bug #48518 (curl crashes when writing into invalid file handle). (Tony)
- Fixed bug #48514 (cURL extension uses same resource name for simple and
multi APIs). (Felipe)
- Fixed bug #48469 (ldap_get_entries() leaks memory on empty search
results). (Patrick)
- Fixed bug #48456 (CPPFLAGS not restored properly in phpize.m4). (Jani,
spisek at kerio dot com)
- Fixed bug #48448 (Compile failure under IRIX 6.5.30 building cast.c).
- Fixed bug #48441 (ldap_search() sizelimit, timelimit and deref options
persist). (Patrick)
- Fixed bug #48434 (Improve memory_get_usage() accuracy). (Arnaud)
- Fixed bug #48416 (Force a cache limit in ereg() to stop excessive memory
usage). (Scott)
- Fixed bug #48409 (Crash when exception is thrown while passing function
arguments). (Arnaud)
- Fixed bug #48378 (exif_read_data() segfaults on certain corrupted .jpeg
files). (Pierre)
- Fixed bug #48359 (Script hangs on snmprealwalk if OID is not increasing).
(Ilia, simonov at gmail dot com)
- Fixed bug #48336 (ReflectionProperty::getDeclaringClass() does not work
with redeclared property).
(patch by Markus dot Lidel at shadowconnect dot com)
- Fixed bug #48326 (constant MSG_DONTWAIT not defined). (Arnaud)
- Fixed bug #48313 (fgetcsv() does not return null for empty rows). (Ilia)
- Fixed bug #48309 (stream_copy_to_stream() and fpasstru() do not update
stream position of plain files). (Arnaud)
- Fixed bug #48307 (stream_copy_to_stream() copies 0 bytes when $source is a
socket). (Arnaud)
- Fixed bug #48273 (snmp*_real_walk() returns SNMP errors as values).
(Ilia, lytboris at gmail dot com)
- Fixed bug #48256 (Crash due to double-linking of history.o).
(tstarling at wikimedia dot org)
- Fixed bug #48248 (SIGSEGV when access to private property via &__get).
- Fixed bug #48247 (Crash on errors during startup). (Stas)
- Fixed bug #48240 (DBA Segmentation fault dba_nextkey). (Felipe)
- Fixed bug #48224 (Incorrect shuffle in array_rand). (Etienne)
- Fixed bug #48221 (memory leak when passing invalid xslt parameter).
- Fixed bug #48207 (CURLOPT_(FILE|WRITEHEADER options do not error out when
working with a non-writable stream). (Ilia)
- Fixed bug #48206 (Iterating over an invalid data structure with
RecursiveIteratorIterator leads to a segfault). (Scott)
- Fixed bug #48204 (xmlwriter_open_uri() does not emit warnings on invalid
paths). (Ilia)
- Fixed bug #48203 (Crash when CURLOPT_STDERR is set to regular file). (Jani)
- Fixed bug #48202 (Out of Memory error message when passing invalid file
path) (Pierre)
- Fixed bug #48156 (Added support for lcov v1.7). (Ilia)
- Fixed bug #48132 (configure check for curl ssl support fails with
--disable-rpath). (Jani)
- Fixed bug #48131 (Don't try to bind ipv4 addresses to ipv6 ips via bindto).
- Fixed bug #48070 (PDO_OCI: Segfault when using persistent connection).
(Pierre, Matteo, jarismar dot php at gmail dot com)
- Fixed bug #48058 (Year formatter goes wrong with out-of-int range). (Derick)
- Fixed bug #48038 (odbc_execute changes variables used to form params array).
- Fixed bug #47997 (stream_copy_to_stream returns 1 on empty streams). (Arnaud)
- Fixed bug #47991 (SSL streams fail if error stack contains items). (Mikko)
- Fixed bug #47981 (error handler not called regardless). (Hannes)
- Fixed bug #47969 (ezmlm_hash() returns different values depend on OS). (Ilia)
- Fixed bug #47946 (ImageConvolution overwrites background). (Ilia)
- Fixed bug #47940 (memory leaks in imap_body). (Pierre, Jake Levitt)
- Fixed bug #47937 (system() calls sapi_flush() regardless of output
buffering). (Ilia)
- Fixed bug #47903 ("@" operator does not work with string offsets). (Felipe)
- Fixed bug #47893 (CLI aborts on non blocking stdout). (Arnaud)
- Fixed bug #47849 (Non-deep import loses the namespace). (Rob)
- Fixed bug #47845 (PDO_Firebird omits first row from query). (Lars W)
- Fixed bug #47836 (array operator [] inconsistency when the array has
PHP_INT_MAX index value). (Matt)
- Fixed bug #47831 (Compile warning for strnlen() in main/spprintf.c).
(Ilia, rainer dot jung at kippdata dot de)
- Fixed bug #47828 (openssl_x509_parse() segfaults when a UTF-8 conversion
fails). (Scott, Kees Cook, Pierre)
- Fixed bug #47818 (Segfault due to bound callback param). (Felipe)
- Fixed bug #47801 (__call() accessed via parent:: operator is provided
incorrect method name). (Felipe)
- Fixed bug #47769 (Strange extends PDO). (Felipe)
- Fixed bug #47745 (FILTER_VALIDATE_INT doesn't allow minimum integer).
- Fixed bug #47721 (Alignment issues in mbstring and sysvshm extension).
(crrodriguez at opensuse dot org, Ilia)
- Fixed bug #47704 (PHP crashes on some "bad" operations with string
offsets). (Dmitry)
- Fixed bug #47695 (build error when xmlrpc and iconv are compiled against
different iconv versions). (Scott)
- Fixed bug #47667 (ZipArchive::OVERWRITE seems to have no effect).
(Mikko, Pierre)
- Fixed bug #47644 (Valid integers are truncated with json_decode()). (Scott)
- Fixed bug #47639 (pg_copy_from() WARNING: nonstandard use of \\ in a
string literal). (Ilia)
- Fixed bug #47616 (curl keeps crashing). (Felipe)
- Fixed bug #47598 (FILTER_VALIDATE_EMAIL is locale aware). (Ilia)
- Fixed bug #47566 (pcntl_wexitstatus() returns signed status).
(patch by james at jamesreno dot com)
- Fixed bug #47564 (unpacking unsigned long 32bit bit endian returns wrong
result). (Ilia)
- Fixed bug #47487 (performance degraded when reading large chunks after
fix of bug #44607). (Arnaud)
- Fixed bug #47468 (enable cli|cgi-only extensions for embed sapi). (Jani)
- Fixed bug #47435 (FILTER_FLAG_NO_PRIV_RANGE does not work with ipv6
addresses in the filter extension). (Ilia)
- Fixed bug #47430 (Errors after writing to nodeValue parameter of an absent
previousSibling). (Rob)
- Fixed bug #47365 (ip2long() may allow some invalid values on certain 64bit
systems). (Ilia)
- Fixed bug #47254 (Wrong Reflection for extends class). (Felipe)
- Fixed bug #47042 (cgi sapi is incorrectly removing SCRIPT_FILENAME).
(Sriram Natarajan, David Soria Parra)
- Fixed bug #46882 (Serialize / Unserialize misbehaviour under OS with
different bit numbers). (Matt)
- Fixed bug #46812 (get_class_vars() does not include visible private variable
looking at subclass). (Arnaud)
- Fixed bug #46386 (Digest authentication with SOAP module fails against MSSQL
SOAP services). (Ilia, lordelph at gmail dot com)
- Fixed bug #46109 (Memory leak when mysqli::init() is called multiple times).
- Fixed bug #45997 (safe_mode bypass with exec/system/passthru (windows only)).
- Fixed bug #45877 (Array key '2147483647' left as string). (Matt)
- Fixed bug #45822 (Near infinite-loops while parsing huge relative offsets).
(Derick, Mike Sullivan)
- Fixed bug #45799 (imagepng() crashes on empty image).
(Martin McNickle, Takeshi Abe)
- Fixed bug #45622 (isset($arrayObject->p) misbehaves with
ArrayObject::ARRAY_AS_PROPS set). (robin_fernandes at uk dot ibm dot com, Arnaud)
- Fixed bug #45614 (ArrayIterator::current(), ::key() can show 1st private prop
of wrapped object). (robin_fernandes at uk dot ibm dot com, Arnaud)
- Fixed bug #45540 (stream_context_create creates bad http request). (Arnaud)
- Fixed bug #45202 (zlib.output_compression can not be set with ini_set()).
- Fixed bug #45191 (error_log ignores date.timezone php.ini val when setting
logging timestamps). (Derick)
- Fixed bug #45092 (header HTTP context option not being used when compiled
using --with-curlwrappers). (Jani)
- Fixed bug #44996 (xmlrpc_decode() ignores time zone on iso8601.datetime).
(Ilia, kawai at apache dot org)
- Fixed bug #44827 (define() is missing error checks for class constants).
- Fixed bug #44214 (Crash using preg_replace_callback() and global variables).
(Nuno, Scott)
- Fixed bug #43073 (TrueType bounding box is wrong for angle<>0).
(Martin McNickle)
- Fixed bug #42663 (gzinflate() try to allocate all memory with truncated
data). (Arnaud)
- Fixed bug #42414 (some odbc_*() functions incompatible with Oracle ODBC
driver). (jhml at gmx dot net)
- Fixed bug #42362 (HTTP status codes 204 and 304 should not be gzipped).
(Scott, Edward Z. Yang)
- Fixed bug #42143 (The constant NAN is reported as 0 on Windows)
(Kanwaljeet Singla, Venkat Raman Don)
- Fixed bug #38805 (PDO truncates text from SQL Server text data type field).
26 Feb 2009, PHP 5.2.9
- Changed __call() to be invoked on private/protected method access, similar to
properties and __get(). (Andrei)
- Added optional sorting type flag parameter to array_unique(). Default is
- Fixed a crash on extract in zip when files or directories entry names contain
a relative path. (Pierre)
- Fixed error conditions handling in stream_filter_append(). (Arnaud)
- Fixed zip filename property read. (Pierre)
- Fixed explode() behavior with empty string to respect negative limit. (Shire)
- Fixed security issue in imagerotate(), background colour isn't validated
correctly with a non truecolour image. Reported by Hamid Ebadi,
APA Laboratory (Fixes CVE-2008-5498). (Scott)
- Fixed a segfault when malformed string is passed to json_decode(). (Scott)
- Fixed bug in xml_error_string() which resulted in messages being
off by one. (Scott)
- Fixed bug #47422 (modulus operator returns incorrect results on 64 bit
linux). (Matt)
- Fixed bug #47399 (mb_check_encoding() returns true for some illegal SJIS
characters). (for-bugs at hnw dot jp, Moriyoshi)
- Fixed bug #47353 (crash when creating a lot of objects in object
destructor). (Tony)
- Fixed bug #47322 (sscanf %d doesn't work). (Felipe)
- Fixed bug #47282 (FILTER_VALIDATE_EMAIL is marking valid email addresses
as invalid). (Ilia)
- Fixed bug #47220 (segfault in dom_document_parser in recovery mode). (Rob)
- Fixed bug #47217 (content-type is not set properly for file uploads). (Ilia)
- Fixed bug #47174 (base64_decode() interprets pad char in mid string as
terminator). (Ilia)
- Fixed bug #47165 (Possible memory corruption when passing return value by
reference). (Dmitry)
- Fixed bug #47152 (gzseek/fseek using SEEK_END produces strange results).
- Fixed bug #47131 (SOAP Extension ignores "user_agent" ini setting). (Ilia)
- Fixed bug #47109 (Memory leak on $a->{"a"."b"} when $a is not an object).
(Etienne, Dmitry)
- Fixed bug #47104 (Linking shared extensions fails with icc). (Jani)
- Fixed bug #47049 (SoapClient::__soapCall causes a segmentation fault).
- Fixed bug #47048 (Segfault with new pg_meta_data). (Felipe)
- Fixed bug #47042 (PHP cgi sapi is removing SCRIPT_FILENAME for non
apache). (Sriram Natarajan)
- Fixed bug #47037 (No error when using fopen with empty string). (Cristian
Rodriguez R., Felipe)
- Fixed bug #47035 (dns_get_record returns a garbage byte at the end of a
TXT record). (Felipe)
- Fixed bug #47027 (var_export doesn't show numeric indices on ArrayObject).
- Fixed bug #46985 (OVERWRITE and binary mode does not work, regression
introduced in 5.2.8). (Pierre)
- Fixed bug #46973 (IPv6 address filter rejects valid address). (Felipe)
- Fixed bug #46964 (Fixed pdo_mysql build with older version of MySQL). (Ilia)
- Fixed bug #46959 (Unable to disable PCRE). (Scott)
- Fixed bug #46918 (imap_rfc822_parse_adrlist host part not filled in
correctly). (Felipe)
- Fixed bug #46889 (Memory leak in strtotime()). (Derick)
- Fixed bug #46887 (Invalid calls to php_error_docref()). (oeriksson at
mandriva dot com, Ilia)
- Fixed bug #46873 (extract($foo) crashes if $foo['foo'] exists). (Arnaud)
- Fixed bug #46843 (CP936 euro symbol is not converted properly). (ty_c at
cybozuy dot co dot jp, Moriyoshi)
- Fixed bug #46798 (Crash in mssql extension when retrieving a NULL value
inside a binary or image column type). (Ilia)
- Fixed bug #46782 (fastcgi.c parse error). (Matt)
- Fixed bug #46760 (SoapClient doRequest fails when proxy is used). (Felipe)
- Fixed bug #46748 (Segfault when an SSL error has more than one error).
- Fixed bug #46739 (array returned by curl_getinfo should contain
content_type key). (Mikko)
- Fixed bug #46699 (xml_parse crash when parser is namespace aware). (Rob)
- Fixed bug #46419 (Elements of associative arrays with NULL value are
lost). (Dmitry)
- Fixed bug #46282 (Corrupt DBF When Using DATE). (arne at bukkie dot nl)
- Fixed bug #46026 (bz2.decompress/zlib.inflate filter tries to decompress
after end of stream). (Greg)
- Fixed bug #46005 (User not consistently logged under Apache2). (admorten
at umich dot edu, Stas)
- Fixed bug #45996 (libxml2 2.7 causes breakage with character data in
xml_parse()). (Rob)
- Fixed bug #45940 (MySQLI OO does not populate connect_error property on
failed connect). (Johannes)
- Fixed bug #45923 (mb_st[r]ripos() offset not handled correctly). (Moriyoshi)
- Fixed bug #45327 (memory leak if offsetGet throws exception). (Greg)
- Fixed bug #45239 (Encoding detector hangs with mbstring.strict_detection
enabled). (Moriyoshi)
- Fixed bug #45161 (Reusing a curl handle leaks memory). (Mark Karpeles, Jani)
- Fixed bug #44336 (Improve pcre UTF-8 string matching performance). (frode
at coretrek dot com, Nuno)
- Fixed bug #43841 (mb_strrpos() offset is byte count for negative values).
- Fixed bug #37209 (mssql_execute with non fatal errors). (Kalle)
- Fixed bug #35975 (Session cookie expires date format isn't the most
compatible. Now matches that of setcookie()). (Scott)
08 Dec 2008, PHP 5.2.8
- Reverted bug fix #42718 that broke magic_quotes_gpc (Scott)
04 Dec 2008, PHP 5.2.7
- Upgraded PCRE to version 7.8 (Fixes CVE-2008-2371). (Ilia)
- Updated timezone database to version 2008.9. (Derick)
- Upgraded bundled libzip to 0.9.0. (Pierre)
- Added logging option for error_log to send directly to SAPI. (Stas)
- Added "PHP_INI_SCAN_DIR" environment variable which can be used to
either disable or change the compile time ini scan directory (FR #45114).
- Fixed missing initialization of BG(page_uid) and BG(page_gid),
reported by Maksymilian Arciemowicz. (Stas)
- Fixed memory leak inside sqlite_create_aggregate(). (Felipe)
- Fixed memory leak inside PDO sqlite's sqliteCreateAggregate() method.
- Fixed a crash inside gd with invalid fonts (Fixes CVE-2008-3658). (Pierre)
- Fixed a possible overflow inside memnstr (Fixes CVE-2008-3659).
- Fixed incorrect php_value order for Apache configuration, reported by
Maksymilian Arciemowicz. (Stas)
- Fixed memory leak inside readline_callback_handler_remove() function.
- Fixed sybase_fetch_*() to continue reading after CS_ROW_FAIL status (Timm)
- Fixed a bug inside dba_replace() that could cause file truncation
withinvalid keys. (Ilia)
- Fixed memory leak inside readline_callback_handler_install() function.(Ilia)
- Fixed memory leak inside readline_completion_function() function. (Felipe)
- Fixed stream_get_contents() when using $maxlength and socket is notclosed.
indeyets [at] php [dot] net on #46049. (Arnaud)
- Fixed stream_get_line() to behave as documented on non-blocking streams.
- Fixed endless loop in PDOStatement::debugDumpParams().
(jonah.harris at gmail dot com)
- Fixed ability to use "internal" heaps in extensions. (Arnaud, Dmitry)
- Fixed weekdays adding/subtracting algorithm. (Derick)
- Fixed some ambiguities in the date parser. (Derick)
- Fixed a bug with the YYYY-MM format not resetting the day correctly.
- Fixed a bug in the DateTime->modify() methods, it would not use the advanced
relative time strings. (Derick)
- Fixed extraction of zip files or directories when the entry name is a
relative path. (Pierre)
- Fixed read or write errors for large zip archives. (Pierre)
- Fixed security issues detailed in CVE-2008-2665 and CVE-2008-2666.
(Christian Hoffmann)
- Fixed simplexml asXML() not to lose encoding when dumping entire
document to file. (Ilia)
- Fixed a crash inside PDO when trying instantiate PDORow manually.
- Fixed build failure of ext/mysqli with libmysql 6.0 - missing
rplfunctions. (Andrey)
- Fixed a regression when using strip_tags() and < is within an
- Fixed a crash on invalid method in ReflectionParameter constructor.
(Christian Seiler)
- Reverted fix for bug #44197 due to behaviour change in minor version.
- Fixed bug #46732 (mktime.year description is wrong). (Derick)
- Fixed bug #46696 (cURL fails in upload files with specified content-type).
- Fixed bug #46673 (stream_lock call with wrong parameter). (Arnaud)
- Fixed bug #46649 (Setting array element with that same array produces
inconsistent results). (Arnaud)
- Fixed bug #46626 (mb_convert_case does not handle apostrophe correctly).
- Fixed bug #46543 (ibase_trans() memory leaks when using wrong parameters).
- Fixed bug #46521 (Curl ZTS OpenSSL, error in config.m4 fragment).
(jd at cpanel dot net)
- Fixed bug #46496 (wddx_serialize treats input as ISO-8859-1). (Mark Karpeles)
- Fixed bug #46427 (SoapClient() stumbles over its "stream_context" parameter).
(Dmitry, Herman Radtke)
- Fixed bug #46426 (offset parameter of stream_get_contents() does not
workfor "0"). (Felipe)
- Fixed bug #46406 (Unregistering nodeclass throws E_FATAL). (Rob)
- Fixed bug #46389 (NetWare needs small patch for _timezone).
(patch by
- Fixed bug #46388 (stream_notification_callback inside of object destroys
object variables). (Felipe)
- Fixed bug #46381 (wrong $this passed to internal methods causes segfault).
- Fixed bug #46379 (Infinite loop when parsing '#' in one line file). (Arnaud)
- Fixed bug #46366 (bad cwd with / as pathinfo). (Dmitry)
- Fixed bug #46360 (TCP_NODELAY constant for socket_{get,set}_option).
(bugs at trick dot vanstaveren dot us)
- Fixed bug #46343 (IPv6 address filter accepts invalid address). (Ilia)
- Fixed bug #46335 (DOMText::splitText doesn't handle multibyte characters).
- Fixed bug #46323 (compilation of simplexml for NetWare breaks).
(Patch by guenter [at] php [dot] net)
- Fixed bug #46319 (PHP sets default Content-Type header for HTTP 304
response code, in cgi sapi). (Ilia)
- Fixed bug #46313 (Magic quotes broke $_FILES). (Arnaud)
- Fixed bug #46308 (Invalid write when changing property from inside getter).
- Fixed bug #46292 (PDO::setFetchMode() shouldn't requires the 2nd arg when
using FETCH_CLASSTYPE). (Felipe)
- Fixed bug #46274, #46249 (pdo_pgsql always fill in NULL for empty BLOB and
segfaults when returned by SELECT). (Felipe)
- Fixed bug #46271 (local_cert option is not resolved to full path). (Ilia)
- Fixed bug #46247 (ibase_set_event_handler() is allowing to pass callback
without event). (Felipe)
- Fixed bug #46246 (difference between call_user_func(array($this, $method))
and $this->$method()). (Dmitry)
- Fixed bug #46222 (ArrayObject EG(uninitialized_var_ptr) overwrite).
- Fixed bug #46215 (json_encode mutates its parameter and has some
class-specific state). (Felipe)
- Fixed bug #46206 (pg_query_params/pg_execute convert passed values to
strings). (Ilia)
- Fixed bug #46191 (BC break: DOMDocument saveXML() doesn't accept null).
- Fixed bug #46164 (stream_filter_remove() closes the stream). (Arnaud)
- Fixed bug #46157 (PDOStatement::fetchObject prototype error). (Felipe)
- Fixed bug #46147 (after stream seek, appending stream filter reads
incorrect data). (Greg)
- Fixed bug #46139 (PDOStatement->setFetchMode() forgets FETCH_PROPS_LATE).
(chsc at peytz dot dk, Felipe)
- Fixed bug #46127 (php_openssl_tcp_sockop_accept forgets to set context
on accepted stream) (Mark Karpeles, Pierre)
- Fixed bug #46110 (XMLWriter - openmemory() and openuri() leak memory on
multiple calls). (Ilia)
- Fixed bug #46088 (RegexIterator::accept - segfault). (Felipe)
- Fixed bug #46082 (stream_set_blocking() can cause a crash in some
circumstances). (Felipe)
- Fixed bug #46064 (Exception when creating ReflectionProperty object
on dynamicly created property). (Felipe)
- Fixed bug #46059 (Compile failure under IRIX 6.5.30 building posix.c).
- Fixed bug #46053 (SplFileObject::seek - Endless loop). (Arnaud)
- Fixed bug #46051 (SplFileInfo::openFile - memory overlap). (Arnaud)
- Fixed bug #46047 (SimpleXML converts empty nodes into object with
nested array). (Rob)
- Fixed bug #46031 (Segfault in AppendIterator::next). (Arnaud)
- Fixed bug #46029 (Segfault in DOMText when using with Reflection). (Rob)
- Fixed bug #46026 (bzip2.decompress/zlib.inflate filter tries to decompress
after end of stream). (Keisial at gmail dot com, Greg)
- Fixed bug #46024 (stream_select() doesn't return the correct number).
- Fixed bug #46010 (warnings incorrectly generated for iv in ecb mode).
- Fixed bug #46003 (isset on nonexisting node return unexpected results). (Rob)
- Fixed bug #45956 (parse_ini_file() does not return false with syntax errors
in parsed file). (Jani)
- Fixed bug #45901 (wddx_serialize_value crash with SimpleXMLElement object).
- Fixed bug #45862 (get_class_vars is inconsistent with 'protected' and
'private' variables). (ilewis at uk dot ibm dot com, Felipe)
- Fixed bug #45860 (header() function fails to correctly replace all Status
lines). (Dmitry)
- Fixed bug #45805 (Crash on throwing exception from error handler). (Dmitry)
- Fixed bug #45765 (ReflectionObject with default parameters of self::xxx cause
an error). (Felipe)
- Fixed bug #45751 (Using auto_prepend_file crashes (out of scope stack address
use)). (basant dot kukreja at sun dot com)
- Fixed bug #45722 (mb_check_encoding() crashes). (Moriyoshi)
- Fixed bug #45705 (rfc822_parse_adrlist() modifies passed address parameter).
- Fixed bug #45691 (Some per-dir or runtime settings may leak into other
requests). (Moriyoshi)
- Fixed bug #45581 (htmlspecialchars() double encoding &#x hex items). (Arnaud)
- Fixed bug #45580 (levenshtein() crashes with invalid argument). (Ilia)
- Fixed bug #45575 (Segfault with invalid non-string as event handler callback).
(Christian Seiler)
- Fixed bug #45568 (ISAPI doesn't properly clear auth_digest in header).
(Patch by: navara at emclient dot com)
- Fixed bug #45556 (Return value from callback isn't freed). (Felipe)
- Fixed bug #45555 (Segfault with invalid non-string as
register_introspection_callback). (Christian Seiler)
- Fixed bug #45553 (Using XPath to return values for attributes with a
namespace does not work). (Rob)
- Fixed bug #45529 (new DateTimeZone() and date_create()->getTimezone() behave
different). (Derick)
- Fixed bug #45522 (FCGI_GET_VALUES request does not return supplied values).
- Fixed bug #45486 (mb_send_mail(); header 'Content-Type: text/plain; charset='
parsing incorrect). (Felipe)
- Fixed bug #45485 (strip_tags and <?XML tag). (Felipe)
- Fixed bug #45460 (imap patch for fromlength fix in imap_headerinfo doesn't
accept lengths of 1024). (Felipe, andrew at lifescale dot com)
- Fixed bug #45449 (filesize() regression using ftp wrapper).
(crrodriguez at suse dot de)
- Fixed bug #45423 (fastcgi parent process doesn't invoke php_module_shutdown
before shutdown) (basant dot kukreja at sun dot com)
- Fixed bug #45406 (session.serialize_handler declared by shared extension fails).
(Kalle, oleg dot grenrus at dynamoid dot com)
- Fixed bug #45405 (snmp extension memory leak).
(Federico Cuello, Rodrigo Campos)
- Fixed bug #45382 (timeout bug in stream_socket_enable_crypto). (Ilia)
- Fixed bug #45373 (php crash on query with errors in params). (Felipe)
- Fixed bug #45352 (Segmentation fault because of tick function on second
request). (Dmitry)
- Fixed bug #45312 (Segmentation fault on second request for array functions).
- Fixed bug #45303 (Opening php:// wrapper in append mode results in a warning).
- Fixed bug #45251 (double free or corruption with setAttributeNode()). (Rob)
- Fixed bug #45226 and #18916 (xmlrpc_set_type() segfaults and wrong behavior
with valid ISO8601 date string). (Jeff Lawsons)
- Fixed bug #45220 (curl_read callback returns -1 when needs to return
size_t (unsigned)). (Felipe)
- Fixed bug #45181 (chdir() should clear relative entries in stat cache).
- Fixed bug #45178 (memory corruption on assignment result of "new" by
reference). (Dmitry)
- Fixed bug #45166 (substr() overflow changes). (Felipe)
- Fixed bug #45151 (Crash with URI/file..php (filename contains 2 dots)).
(Fixes CVE-2008-3660) (Dmitry)
- Fixed bug #45139 (ReflectionProperty returns incorrect declaring class).
- Fixed bug #45124 ($_FILES['upload']['size'] sometimes return zero and some
times the filesize). (Arnaud)
- Fixed bug #45028 (CRC32 output endianness is different between crc32() and
hash()). (Tony)
- Fixed bug #45004 (pg_insert() does not accept 4 digit timezone format).
- Fixed bug #44991 (Compile Failure With freetds0.82).
(jklowden at freetds dot org, matthias at dsx dot at)
- Fixed bug #44938 (gettext functions crash with overly long domain).
(Christian Schneider, Ilia)
- Fixed bug #44925 (preg_grep() modifies input array). (Nuno)
- Fixed bug #44900 (OpenSSL extension fails to link with OpenSSL 0.9.6).
(jd at cpanel dot net, Pierre)
- Fixed bug #44891 Memory leak using registerPHPFunctions and XSLT Variable
as function parameter. (Rob)
- Fixed bug #44882 (SOAP extension object decoding bug). (Dmitry)
- Fixed bug #44830 (Very minor issue with backslash in heredoc). (Matt)
- Fixed bug #44818 (php://memory writeable when opened read only). (Arnaud)
- Fixed bug #44811 (Improve error message when creating a new SoapClient
that contains invalid data). (Markus Fischer, David C)
- Fixed bug #44798 (Memory leak assigning value to attribute). (Ilia)
- Fixed bug #44716 (Progress notifications incorrect). (Hannes)
- Fixed bug #44712 (stream_context_set_params segfaults on invalid arguments).
- Fixed bug #44617 (wrong HTML entity output when substitute_character=entity).
- Fixed bug #44607 (stream_get_line unable to correctly identify the "ending"
in the stream content). (Arnaud)
- Fixed bug #44425 (Extending PDO/MySQL class with a __call() function doesn't
work). (Johannes)
- Fixed bug #44327 (PDORow::queryString property & numeric offsets / Crash).
- Fixed bug #44251, #41125 (PDO + quote() + prepare() can result in segfault).
(tsteiner at nerdclub dot net)
- Fixed bug #44246 (closedir() accepts a file resource opened by fopen()).
(Dmitry, Tony)
- Fixed bug #44182 (extract($a, EXTR_REFS) can fail to split copy-on-write
references). (robin_fernandes at uk dot ibm dot com)
- Fixed bug #44181 (extract($a, EXTR_OVERWRITE|EXTR_REFS) can fail to create
references to $a). (robin_fernandes at uk dot ibm dot com)
- Fixed bug #44127 (UNIX abstract namespace socket connect does not work).
- Fixed bug #43993 (mb_substr_count() behaves differently to substr_count()
with overlapping needles). (Moriyoshi)
- Fixed Bug #43958 (class name added into the error message). (Dmitry)
- Fixed bug #43941 (json_encode silently cuts non-UTF8 strings). (Stas)
- Fixed bug #43925 (Incorrect argument counter in prepared statements with
pgsql). (Felipe)
- Fixed bug #43731 (socket_getpeername: cannot use on stdin with inetd).
- Fixed bug #43723 (SOAP not sent properly from client for <choice>). (Dmitry)
- Fixed bug #43668 (Added odbc.default_cursortype to control the ODBCcursor
model). (Patrick)
- Fixed bug #43666 (Fixed code to use ODBC 3.52 datatypes for 64bit
systems). (Patrick)
- Fixed bug #43540 (rfc1867 handler newlength problem). (Arnaud)
- Fixed bug #43452 (strings containing a weekday, or a number plus weekday
behaved incorrect of the current day-of-week was the same as the one in the
phrase). (Derick)
- Fixed bug #43353 (wrong detection of 'data' wrapper causes notice).
(gk at gknw dot de, Arnaud)
- Fixed bug #43053 (Regression: some numbers shown in scientific notation).
(int-e at gmx dot de)
- Fixed bug #43045 (SOAP encoding violation on "INF" for type double/float).
- Fixed bug #42862 (IMAP toolkit crash: rfc822.c legacy routine buffer
overflow). (Fixes CVE-2008-2829) (Dmitry)
- Fixed bug #42855 (dns_get_record() doesn't return all text from TXT record).
(a dot u dot savchuk at gmail dot com)
- Fixed bug #42737 (preg_split('//u') triggers a E_NOTICE with newlines).
- Fixed bug #42718 (FILTER_UNSAFE_RAW not applied when configured as default
filter). (Arnaud)
- Fixed bug #42604 ("make test" fails with --with-config-file-scan-dir=path).
- Fixed bug #42473 (ob_start php://output and headers). (Arnaud)
- Fixed bug #42318 (problem with nm on AIX, not finding object files).
- Fixed bug #42294 (Unified solution for round() based on C99 round). (Ilia)
- Fixed bug #42078 (pg_meta_data mix tables metadata from different schemas).
- Fixed bug #41348 (OCI8: allow compilation with Oracle 8.1). (Chris Jones)
- Fixed bug #41033 (enable signing with DSA keys.
(gordyf at google dot com, Pierre)
- Fixed bug #37100 (data is returned truncated with BINARY CURSOR). (Tony)
- Fixed bug #30312 (crash in sybase_unbuffered_query() function). (Timm)
- Fixed bug #24679 (pg_* functions doesn't work using schema). (Felipe)
- Fixed bug #14962 (PECL) (::extractTo 2nd argument is not really optional)
(Mark van Der Velden)
- Fixed bug #14032 (Mail() always returns false but mail is sent). (Mikko)
01 May 2008, PHP 5.2.6
- Fixed two possible crashes inside posix extension (Tony)
- Fixed incorrect heredoc handling when label is used within the block.
- Fixed possible stack buffer overflow in FastCGI SAPI. (Andrei Nigmatulin)
- Fixed sending of uninitialized paddings which may contain some information. (Andrei Nigmatulin)
- Fixed a bug in formatting timestamps when DST is active in the default timezone (Derick)
- Properly address incomplete multibyte chars inside escapeshellcmd() (Ilia, Stefan Esser)
- Fix integer overflow in printf(). (Stas, Maksymilian Aciemowicz)
- Fixed security issue detailed in CVE-2008-0599. (Rasmus)
- Fixed potential memleak in stream filter parameter for zlib filter. (Greg)
- Added Reflection API metadata for the methods of the DOM classes. (Sebastian)
- Fixed weird behavior in CGI parameter parsing. (Dmitry, Hannes Magnusson)
- Fixed a safe_mode bypass in cURL identified by Maksymilian Arciemowicz.
- Fixed a bug with PDO::FETCH_COLUMN|PDO::FETCH_GROUP mode when a column # by
which to group by data is specified. (Ilia)
- Fixed segfault in filter extension when using callbacks. (Arnar Mar Sig,
- Fixed faulty fix for bug #40189 (endless loop in zlib.inflate stream filter). (Greg)
- Upgraded PCRE to version 7.6 (Nuno)
- Fixed bug #44742 (timezone_offset_get() causes segmentation faults). (Derick)
- Fixed bug #44720 (Prevent crash within session_register()). (Scott)
- Fixed bug #44703 (htmlspecialchars() does not detect bad character set argument). (Andy Wharmby)
- Fixed bug #44673 (With CGI argv/argc starts from arguments, not from script) (Dmitry)
- Fixed bug #44667 (proc_open() does not handle pipes with the mode 'wb' correctly). (Jani)
- Fixed bug #44663 (Crash in imap_mail_compose if "body" parameter invalid). (Ilia)
- Fixed bug #44650 (escaepshellscmd() does not check arg count). (Ilia)
- Fixed bug #44613 (Crash inside imap_headerinfo()). (Ilia, jmessa)
- Fixed bug #44603 (Order issues with Content-Type/Length headers on POST). (Ilia)
- Fixed bug #44594 (imap_open() does not validate # of retries parameter). (Ilia)
- Fixed bug #44591 (imagegif's filename parameter). (Felipe)
- Fixed bug #44557 (Crash in imap_setacl when supplied integer as username) (Thomas Jarosch)
- Fixed bug #44487 (call_user_method_array issues a warning when throwing an exception). (David Soria Parra)
- Fixed bug #44478 (Inconsistent behaviour when assigning new nodes). (Rob, Felipe)
- Fixed bug #44445 (email validator does not handle domains starting/ending with a -). (Ilia)
- Fixed bug #44440 (st_blocks undefined under BeOS). (Felipe)
- Fixed bug #44394 (Last two bytes missing from output). (Felipe)
- Fixed bug #44388 (Crash inside exif_read_data() on invalid images) (Ilia)
- Fixed bug #44373 (PDO_OCI extension compile failed). (Felipe)
- Fixed bug #44333 (SEGFAULT when using mysql_pconnect() with client_flags). (Felipe)
- Fixed bug #44306 (Better detection of MIPS processors on Windows). (Ilia)
- Fixed bug #44242 (metaphone('CMXFXM') crashes PHP). (Felipe)
- Fixed bug #44233 (MSG_PEEK undefined under BeOS R5). (jonathonfreeman at gmail dot com, Ilia)
- Fixed bug #44216 (strftime segfaults on large negative value). (Derick)
- Fixed bug #44209 (strtotime() doesn't support 64 bit timestamps on 64 bit platforms). (Derick)
- Fixed bug #44206 (OCI8 selecting ref cursors leads to ORA-1000 maximum open cursors reached). (Oracle Corp.)
- Fixed bug #44200 (A crash in PDO when no bound targets exists and yet bound parameters are present). (Ilia)
- Fixed bug #44197 (socket array keys lost on socket_select). (Felipe)
- Fixed bug #44191 (preg_grep messes up array index). (Felipe)
- Fixed bug #44189 (PDO setAttribute() does not properly validate values for native numeric options). (Ilia)
- Fixed bug #44184 (Double free of loop-variable on exception). (Dmitry)
- Fixed bug #44171 (Invalid FETCH_COLUMN index does not raise an error). (Ilia)
- Fixed bug #44166 (Parameter handling flaw in PDO::getAvailableDrivers()). (Ilia)
- Fixed bug #44159 (Crash: $pdo->setAttribute(PDO::STATEMENT_ATTR_CLASS, NULL)). (Felipe)
- Fixed bug #44152 (Possible crash with syslog logging on ZTS builds). (Ilia)
- Fixed bug #44141 (private parent constructor callable through static function). (Dmitry)
- Fixed bug #44113 (OCI8 new collection creation can fail with OCI-22303). (Oracle Corp.)
- Fixed bug #44069 (Huge memory usage with concatenation using . instead of .=). (Dmitry)
- Fixed bug #44046 (crash inside array_slice() function with an invalid by-ref offset). (Ilia)
- Fixed bug #44028 (crash inside stream_socket_enable_crypto() when enabling encryption without crypto type). (Ilia)
- Fixed bug #44018 (RecursiveDirectoryIterator options inconsistancy). (Marcus)
- Fixed bug #44008 (OCI8 incorrect usage of OCI-Lob->close crashes PHP). (Oracle Corp.)
- Fixed bug #43998 (Two error messages returned for incorrect encoding for mb_strto[upper|lower]). (Rui)
- Fixed bug #43994 (mb_ereg 'successfully' matching incorrect). (Rui)
- Fixed bug #43954 (Memory leak when sending the same HTTP status code multiple times). (Scott)
- Fixed bug #43927 (koi8r is missing from html_entity_decode()). (andy at demos dot su, Tony)
- Fixed bug #43912 (Interbase column names are truncated to 31 characters). (Ilia)
- Fixed bug #43875 (Two error messages returned for $new and $flag argument in mysql_connect()). (Hannes)
- Fixed bug #43863 (str_word_count() breaks on cyrillic "ya" in locale cp1251). (phprus at gmail dot com, Tony)
- Fixed bug #43841 (mb_strrpos offset is byte count for negative values). (Rui)
- Fixed bug #43840 (mb_strpos bounds check is byte count rather than a character count). (Rui)
- Fixed bug #43808 (date_create never fails (even when it should)). (Derick)
- Fixed bug #43793 (zlib filter is unable to auto-detect gzip/zlib file headers). (Greg)
- Fixed bug #43703 (Signature compatibility check broken). (Dmitry)
- Fixed bug #43677 (Inconsistent behaviour of include_path set with php_value). (manuel at mausz dot at)
- Fixed bug #43663 (Extending PDO class with a __call() function doesn't work). (David Soria Parra)
- Fixed bug #43647 (Make FindFile use PATH_SEPARATOR instead of ";"). (Ilia)
- Fixed bug #43635 (mysql extension ingores INI settings on NULL values passed to mysql_connect()). (Ilia)
- Fixed bug #43620 (Workaround for a bug inside libcurl 7.16.2 that can result in a crash). (Ilia)
- Fixed bug #43614 (incorrect processing of numerical string keys of array in arbitrary serialized data). (Dmitriy Buldakov, Felipe)
- Fixed bug #43606 (define missing depencies of the exif extension). (crrodriguez at suse dot de)
- Fixed bug #43589 (a possible infinite loop in bz2_filter.c). (Greg)
- Fixed bug #43580 (removed bogus declaration of a non-existent php_is_url() function). (Ilia)
- Fixed bug #43559 (array_merge_recursive() doesn't behave as expected with duplicate NULL values). (Felipe, Tony)
- Fixed bug #43533 (escapeshellarg('') returns null). (Ilia)
- Fixed bug #43527 (DateTime created from a timestamp reports environment timezone). (Derick)
- Fixed bug #43522 (stream_get_line() eats additional characters). (Felipe, Ilia, Tony)
- Fixed bug #43507 (SOAPFault HTTP Status 500 - would like to be able to set the HTTP Status). (Dmitry)
- Fixed bug #43505 (Assign by reference bug). (Dmitry)
- Fixed bug #43498 (file_exists() on a proftpd server got SIZE not allowed in ASCII mode). (Ilia, crrodriguez at suse dot de)
- Fixed bug #43497 (OCI8 XML/getClobVal aka temporary LOBs leak UGA memory). (Chris)
- Fixed bug #43495 (array_merge_recursive() crashes with recursive arrays). (Ilia)
- Fixed bug #43493 (pdo_pgsql does not send username on connect when password is not available). (Ilia)
- Fixed bug #43491 (Under certain conditions, file_exists() never returns). (Dmitry)
- Fixed bug #43483 (get_class_methods() does not list all visible methods). (Dmitry)
- Fixed bug #43482 (array_pad() does not warn on very small pad numbers). (Ilia)
- Fixed bug #43457 (Prepared statement with incorrect parms doesn't throw exception with pdo_pgsql driver). (Ilia)
- Fixed bug #43450 (Memory leak on some functions with implicit object __toString() call). (David C.)
- Fixed bug #43386 (array_globals not reset to 0 properly on init). (Ilia)
- Fixed bug #43377 (PHP crashes with invalid argument for DateTimeZone). (Ilia)
- Fixed bug #43373 (pcntl_fork() should not raise E_ERROR on error). (Ilia)
- Fixed bug #43364 (recursive xincludes don't remove internal xml nodes properly). (Rob, patch from
- Fixed bug #43301 (mb_ereg*_replace() crashes when replacement string is invalid PHP expression and 'e' option is used). (Jani)
- Fixed bug #43295 (crash because of uninitialized SG(sapi_headers).mimetype). (Dmitry)
- Fixed bug #43293 (Multiple segfaults in getopt()). (Hannes)
- Fixed bug #43279 (pg_send_query_params() converts all elements in 'params' to strings). (Ilia)
- Fixed bug #43276 (Incomplete fix for bug #42739, mkdir() under safe_mode). (Ilia)
- Fixed bug #43248 (backward compatibility break in realpath()). (Dmitry)
- Fixed bug #43221 (SimpleXML adding default namespace in addAttribute). (Rob)
- Fixed bug #43216 (stream_is_local() returns false on "file://"). (Dmitry)
- Fixed bug #43201 (Crash on using uninitialized vals and __get/__set). (Dmitry)
- Fixed bug #43182 (file_put_contents() LOCK_EX does not work properly on file truncation). (Ilia)
- Fixed bug #43175 (__destruct() throwing an exception with __call() causes segfault). (Dmitry)
- Fixed bug #43128 (Very long class name causes segfault). (Dmitry)
- Fixed bug #43105 (PHP seems to fail to close open files). (Hannes)
- Fixed bug #43092 (curl_copy_handle() crashes with > 32 chars long URL). (Jani)
- Fixed bug #43003 (Invalid timezone reported for DateTime objects constructed using a timestamp). (Derick)
- Fixed bug #42978 (mismatch between number of bound params and values causes a crash in pdo_pgsql). (Ilia)
- Fixed bug #42945 (preg_split() swallows part of the string). (Nuno)
- Fixed bug #42937 (__call() method not invoked when methods are called on parent from child class). (Dmitry)
- Fixed bug #42841 (REF CURSOR and oci_new_cursor() crash PHP). (Chris)
- Fixed bug #42838 (Wrong results in array_diff_uassoc) (Felipe)
- Fixed bug #42779 (Incorrect forcing from HTTP/1.0 request to HTTP/1.1 response). (Ilia)
- Fixed bug #42736 (xmlrpc_server_call_method() crashes). (Tony)
- Fixed bug #42692 (Procedure 'int1' not present with doc/lit SoapServer). (Dmitry)
- Fixed bug #42548 (mysqli PROCEDURE calls can't return result sets). (Hartmut)
- Fixed bug #42505 (new sendmail default breaks on Netware platform) (Guenter Knauf)
- Fixed bug #42369 (Implicit conversion to string leaks memory). (David C., Rob).
- Fixed bug #42272 (var_export() incorrectly escapes char(0)). (Derick)
- Fixed bug #42261 (Incorrect lengths for date and boolean data types). (Ilia)
- Fixed bug #42190 (Constructing DateTime with TimeZone Indicator invalidates DateTimeZone). (Derick)
- Fixed bug #42177 (Warning "array_merge_recursive(): recursion detected" comes again...). (Felipe)
- Fixed bug #41941 (oci8 extension not lib64 savvy). (Chris)
- Fixed bug #41828 (Failing to call RecursiveIteratorIterator::__construct() causes a sefault). (Etienne)
- Fixed bug #41599 (setTime() fails after modify() is used). (Derick)
- Fixed bug #41562 (SimpleXML memory issue). (Rob)
- Fixed bug #40013 (php_uname() does not return nodename on Netware (Guenter Knauf)
- Fixed bug #38468 (Unexpected creation of cycle). (Dmitry)
- Fixed bug #32979 (OpenSSL stream->fd casts broken in 64-bit build) (stotty at tvnet dot hu)
08 Nov 2007, PHP 5.2.5
- Upgraded PCRE to version 7.3 (Nuno)
- Added optional parameter $provide_object to debug_backtrace(). (Sebastian)
- Added alpha support for imagefilter() IMG_FILTER_COLORIZE. (Pierre)
- Added ability to control memory consumption between request using
ZEND_MM_COMPACT environment variable. (Dmitry)
- Improved speed of array_intersect_key(), array_intersect_assoc(),
array_uintersect_assoc(), array_diff_key(), array_diff_assoc() and
array_udiff_assoc(). (Dmitry)
- Fixed move_uploaded_file() to always set file permissions of resulting file
according to UMASK. (Andrew Sitnikov)
- Fixed possible crash in ext/soap because of uninitialized value. (Zdash Urf)
- Fixed regression in glob() when enforcing safe_mode/open_basedir checks on
paths containing '*'. (Ilia)
- Fixed "mail.force_extra_parameters" php.ini directive not to be modifiable
in .htaccess due to the security implications - reported by SecurityReason.
- Fixed PDO crash when driver returns empty LOB stream. (Stas)
- Fixed dl() to only accept filenames - reported by Laurent Gaffie. (Stas)
- Fixed dl() to limit argument size to MAXPATHLEN (CVE-2007-4887).
(Christian Hoffmann)
- Fixed iconv_*() functions to limit argument sizes as workaround to libc
bug (CVE-2007-4783, CVE-2007-4840 by Laurent Gaffie).
(Christian Hoffmann, Stas)
- Fixed missing brackets leading to build warning and error in the log.
Win32 code. (Andrey)
- Fixed leaks with multiple connects on one mysqli object. (Andrey)
- Fixed endianness detection on MacOS when building universal binary.
(Uwe Schindler, Christian Speich, Tony)
- Fixed possible triggering of buffer overflows inside glibc
implementations of the fnmatch(), setlocale() and glob() functions.
Reported by Laurent Gaffie. (Ilia)
- Fixed imagerectangle regression with 1x1 rectangle (libgd #106). (Pierre)
- Fixed htmlentities/htmlspecialchars not to accept partial multibyte
sequences. (Stas)
- Fixed bug #43196 (array_intersect_assoc() crashes with non-array input).
- Fixed bug #43139 (PDO ignores ATTR_DEFAULT_FETCH_MODE in some cases with
fetchAll()). (Ilia)
- Fixed bug #43137 (rmdir() and rename() do not clear statcache). (Jani)
- Fixed bug #43130 (Bound parameters cannot have - in their name). (Ilia)
- Fixed bug #43099 (XMLWriter::endElement() does not check # of params).
- Fixed bug #43020 (Warning message is missing with shuffle() and more
than one argument). (Scott)
- Fixed bug #42976 (Crash when constructor for newInstance() or
newInstanceArgs() fails) (Ilia)
- Fixed bug #42943 (ext/mssql: Move *timeout initialization from RINIT
to connect time). (Ilia)
- Fixed bug #42917 (PDO::FETCH_KEY_PAIR doesn't work with setFetchMode).
- Fixed bug #42890 (Constant "LIST" defined by mysqlclient and c-client).
- Fixed bug #42869 (automatic session id insertion adds sessions id to
non-local forms). (Ilia)
- Fixed bug #42818 ($foo = clone(array()); leaks memory). (Dmitry)
- Fixed bug #42817 (clone() on a non-object does not result in a fatal
error). (Ilia)
- Fixed bug #42785 (json_encode() formats doubles according to locale rather
then following standard syntax). (Ilia)
- Fixed bug #42783 (pg_insert() does not accept an empty list for
insertion). (Ilia)
- Fixed bug #42773 (WSDL error causes HTTP 500 Response). (Dmitry)
- Fixed bug #42772 (Storing $this in a static var fails while handling a cast
to string). (Dmitry)
- Fixed bug #42767 (highlight_string() truncates trailing comment). (Ilia)
- Fixed bug #42739 (mkdir() doesn't like a trailing slash when safe_mode is
enabled). (Ilia)
- Fixed bug #42703 (Exception raised in an iterator::current() causes segfault
in FilterIterator) (Marcus)
- Fixed bug #42699 (PHP_SELF duplicates path). (Dmitry)
- Fixed bug #42654 (RecursiveIteratorIterator modifies only part of leaves)
- Fixed bug #42643 (CLI segfaults if using ATTR_PERSISTENT). (Ilia)
- Fixed bug #42637 (SoapFault : Only http and https are allowed). (Bill Moran)
- Fixed bug #42629 (Dynamically loaded PHP extensions need symbols exported
on MacOSX). (jdolecek at NetBSD dot org)
- Fixed bug #42627 (bz2 extension fails to build with -fno-common).
(dolecek at netbsd dot org)
- Fixed Bug #42596 (session.save_path MODE option does not work). (Ilia)
- Fixed bug #42590 (Make the engine recognize \v and \f escape sequences).
- Fixed bug #42587 (behavior change regarding symlinked .php files). (Dmitry)
- Fixed bug #42579 (apache_reset_timeout() does not exist). (Jani)
- Fixed bug #42549 (ext/mysql failed to compile with libmysql 3.23). (Scott)
- Fixed bug #42523 (PHP_SELF duplicates path). (Dmitry)
- Fixed bug #42512 (ip2long('') should return 4294967295 on
64-bit PHP). (Derick)
- Fixed bug #42506 (php_pgsql_convert() timezone parse bug) (nonunnet at
gmail dot com, Ilia)
- Fixed bug #42496 (OCI8 cursor is not closed when using 2 clobs in a select
query). (Oracle Corp.)
- Fixed bug #42462 (Segmentation when trying to set an attribute in a
DOMElement). (Rob)
- Fixed bug #42453 (CGI SAPI does not shut down cleanly with -i/-m/-v cmdline
options). (Dmitry)
- Fixed bug #42452 (PDO classes do not expose Reflection API information).
- Fixed bug #42468 (Write lock on file_get_contents fails when using a
compression stream). (Ilia)
- Fixed bug #42488 (SoapServer reports an encoding error and the error itself
breaks). (Dmitry)
- Fixed bug #42378 (mysqli_stmt_bind_result memory exhaustion). (Andrey)
- Fixed bug #42359 (xsd:list type not parsed). (Dmitry)
- Fixed bug #42326 (SoapServer crash). (Dmitry)
- Fixed bug #42214 (SoapServer sends clients internal PHP errors). (Dmitry)
- Fixed bug #42189 (xmlrpc_set_type() crashes php on invalid datetime
values). (Ilia)
- Fixed bug #42139 (XMLReader option constants are broken using XML()). (Rob)
- Fixed bug #42086 (SoapServer return Procedure '' not present for WSIBasic
compliant wsdl). (Dmitry)
- Fixed bug #41822 (Relative includes broken when getcwd() fails). (Ab5602,
- Fixed bug #41561 (Values set with php_admin_* in httpd.conf can be overwritten
with ini_set()). (Stas, Jani)
- Fixed bug #39651 (proc_open() append mode doesn't work on windows). (Nuno)
30 Aug 2007, PHP 5.2.4
- Removed --enable-versioning configure option. (Jani)
- Upgraded PCRE to version 7.2 (Nuno)
- Updated timezone database to version 2007.6. (Derick)
- Improved openssl_x509_parse() to return extensions in readable form. (Dmitry)
- Enabled changing the size of statement cache for non-persistent OCI8
connections. (Chris Jones, Tony)
- Changed "display_errors" php.ini option to accept "stderr" as value which
makes the error messages to be outputted to STDERR instead of STDOUT with
CGI and CLI SAPIs (FR #22839). (Jani)
- Changed error handler to send HTTP 500 instead of blank page on PHP errors.
(Dmitry, Andrei Nigmatulin)
- Changed mail() function to be always available. (Johannes)
- Added check for unknown options passed to configure. (Jani)
- Added persistent connection status checker to pdo_pgsql.
(Elvis Pranskevichus, Ilia)
- Added support for ATTR_TIMEOUT inside pdo_pgsql driver. (Ilia)
- Added php_ini_loaded_file() function which returns the path to the actual
php.ini in use. (Jani)
- Added GD version constants GD_MAJOR_VERSION, GD_MINOR_VERSION,
- Added missing open_basedir checks to CGI.
(anight at eyelinkmedia dot com, Tony)
- Added missing format validator to unpack() function. (Ilia)
- Added missing error check inside bcpowmod(). (Ilia)
(Andrey A. Belashkov, Tony)
- Added missing MSG_EOR and MSG_EOF constants to sockets extension. (Jani)
- Added PCRE_VERSION constant. (Tony)
- Added ReflectionExtension::info() function to print the phpinfo()
block for an extension. (Johannes)
- Implemented FR #41884 (ReflectionClass::getDefaultProperties() does not
handle static attributes). (Tony)
- Fixed "Floating point exception" inside wordwrap().
(Mattias Bengtsson, Ilia)
- Fixed several integer overflows in ImageCreate(), ImageCreateTrueColor(),
ImageCopyResampled() and ImageFilledPolygon() reported by Mattias Bengtsson.
- Fixed size calculation in chunk_split(). (Stas)
- Fixed integer overflow in str[c]spn(). (Stas)
- Fixed money_format() not to accept multiple %i or %n tokens.
(Stas, Ilia)
- Fixed zend_alter_ini_entry() memory_limit interruption
vulnerability. (Ilia)
- Fixed INFILE LOCAL option handling with MySQL extensions not to be
allowed when open_basedir or safe_mode is active. (Stas)
- Fixed session.save_path and error_log values to be checked against
open_basedir and safe_mode (CVE-2007-3378) (Stas, Maksymilian Arciemowicz)
- Fixed possible invalid read in glob() win32 implementation (CVE-2007-3806).
- Improved fix for MOPB-03-2007. (Ilia)
- Corrected fix for CVE-2007-2872. (Ilia)
- Fixed possible crash in imagepsloadfont(), work around a bug in the pslib on
Windows. (Pierre)
- Fixed oci8 and PDO_OCI extensions to allow configuring with Oracle 11g
client libraries. (Chris Jones)
- Fixed EOF handling in case of reading from file opened in write only mode.
- Fixed var_export() to use the new H modifier so that it can generate
parseable PHP code for floats, independent of the locale. (Derick)
- Fixed regression introduced by the fix for the libgd bug #74. (Pierre)
- Fixed SimpleXML's behavior when used with empty(). (Sara)
- Fixed crash in OpenSSL extension because of non-string passphrase. (Dmitry)
- Fixed PECL Bug #11345 (PDO_OCI crash after National language Support "NLS"
environment initialization error). (Chris Jones)
- Fixed PECL bug #11216 (crash in ZipArchive::addEmptyDir when a directory
already exists). (Pierre)
- Fixed bug #43926 (isInstance() isn't equivalent to instanceof operator). (Marcus)
- Fixed bug #42368 (Incorrect error message displayed by pg_escape_string).
- Fixed bug #42365 (glob() crashes and/or accepts way too many flags).
- Fixed Bug #42364 (Crash when using getRealPath with DirectoryIterator).
- Fixed bug #42292 ($PHP_CONFIG not set for phpized builds). (Jani)
- Fixed bug #42261 (header wrong for date field).
(roberto at spadim dot com dot br, Ilia)
- Fixed bug #42259 (SimpleXMLIterator loses ancestry). (Rob)
- Fixed bug #42247 (ldap_parse_result() not defined under win32). (Jani)
- Fixed bug #42243 (copy() does not output an error when the first arg is a
dir). (Ilia)
- Fixed bug #42242 (sybase_connect() crashes). (Ilia)
- Fixed bug #42237 (stream_copy_to_stream returns invalid values for mmaped
streams). (andrew dot minerd at sellingsource dot com, Ilia)
- Fixed bug #42233 (Problems with æøå in extract()). (Jani)
- Fixed bug #42222 (possible buffer overflow in php_openssl_make_REQ). (Pierre)
- Fixed bug #42211 (property_exists() fails to find protected properties
from a parent class). (Dmitry)
- Fixed bug #42208 (substr_replace() crashes when the same array is passed
more than once). (crrodriguez at suse dot de, Ilia)
- Fixed bug #42198 (SCRIPT_NAME and PHP_SELF truncated when inside a userdir
and using PATH_INFO). (Dmitry)
- Fixed bug #42195 (C++ compiler required always). (Jani)
- Fixed bug #42183 (classmap causes crash in non-wsdl mode). (Dmitry)
- Fixed bug #42173 (oci8 INTERVAL and TIMESTAMP type fixes). (Chris)
- Fixed bug #42151 (__destruct functions not called after catching a SoapFault
exception). (Dmitry)
- Fixed bug #42142 (substr_replace() returns FALSE when length > string length).
- Fixed bug #42135 (Second call of session_start() causes creation of SID).
- Fixed bug #42134 (oci_error() returns false after oci_new_collection() fails).
- Fixed bug #42119 (array_push($arr,&$obj) doesn't work with
zend.ze1_compatibility_mode On). (Dmitry)
- Fixed bug #42117 (bzip2.compress loses data in internal buffer).
(Philip, Ilia)
- Fixed bug #42112 (deleting a node produces memory corruption). (Rob)
- Fixed bug #42107 (sscanf broken when using %2$s format parameters). (Jani)
- Fixed bug #42090 (json_decode causes segmentation fault). (Hannes)
- Fixed bug #42082 (NodeList length zero should be empty). (Hannes)
- Fixed bug #42072 (No warning message for clearstatcache() with arguments).
- Fixed bug #42071 (ini scanner allows using NULL as option name). (Jani)
- Fixed bug #42027 (is_file() / is_dir() matches file/dirnames with wildcard char
or trailing slash in Windows). (Dmitry)
- Fixed bug #42019 (configure option --with-adabas=DIR does not work). (Jani)
- Fixed bug #42015 (ldap_rename(): server error "DSA is unwilling to perform").
(bob at mroczka dot com, Jani)
- Fixed bug #42009 (is_a() and is_subclass_of() should NOT call autoload, in the
same way as "instanceof" operator). (Dmitry)
- Fixed bug #41989 (move_uploaded_file() & relative path in ZTS mode). (Tony)
- Fixed bug #41984 (Hangs on large SoapClient requests). (Dmitry)
- Fixed bug #41983 (Error Fetching http headers terminated by '\n'). (Dmitry)
- Fixed bug #41973 (--with-ldap=shared fails with LDFLAGS="-Wl,--as-needed"). (Nuno)
- Fixed bug #41971 (PDOStatement::fetch and PDOStatement::setFetchMode causes
unexpected behavior). (Ilia)
- Fixed bug #41964 (strtotime returns a timestamp for non-time string of
pattern '(A|a) .+'). (Derick)
- Fixed bug #41961 (Ensure search for hidden private methods does not stray from
class hierarchy). (robin_fernandes at uk dot ibm dot com)
- Fixed bug #41947 (SimpleXML incorrectly registers empty strings asnamespaces).
- Fixed bug #41929 (Foreach on object does not iterate over all visible properties).
- Fixed bug #41919 (crash in string to array conversion).
(judas dot iscariote at gmail dot com, Ilia)
- Fixed bug #41909 (var_export() is locale sensitive when exporting float
values). (Derick)
- Fixed bug #41908 (CFLAGS="-Os" ./configure --enable-debug fails).
(christian at hoffie dot info, Tony)
- Fixed bug #41904 (proc_open(): empty env array should cause empty environment
to be passed to process). (Jani)
- Fixed bug #41867 (SimpleXML: getName is broken). (Rob)
- Fixed bug #41865 (fputcsv(): 2nd parameter is not optional). (Jani)
- Fixed bug #41861 (SimpleXML: getNamespaces() returns the namespaces of a node's
siblings). (Rob)
- Fixed bug #41845 (pgsql extension does not compile with PostgreSQL <7.4). (Ilia)
- Fixed bug #41844 (Format returns incorrect number of digits for negative years
-0001 to -0999). (Derick)
- Fixed bug #41842 (Cannot create years < 0100 & negative years with date_create
or new DateTime). (Derick)
- Fixed bug #41833 (addChild() on a non-existent node, no node created,
getName() segfaults). (Rob)
- Fixed bug #41831 (pdo_sqlite prepared statements convert resources to
strings). (Ilia)
- Fixed bug #41815 (Concurrent read/write fails when EOF is reached). (Sascha)
- Fixed bug #41813 (segmentation fault when using string offset as an object).
(judas dot iscariote at gmail dot com, Tony)
- Fixed bug #41795 (checkdnsrr does not support DNS_TXT type).
(lucas at facebook dot com, Tony)
- Fixed bug #41773 (php_strip_whitespace() sends headers with errors
suppressed). (Tony)
- Fixed bug #41770 (SSL: fatal protocol error due to buffer issues). (Ilia)
- Fixed bug #41765 (Recode crashes/does not work on amd64).
(nexus at smoula dot net, Stas)
- Fixed bug #41724 (libxml_get_last_error() - errors service request scope).
(thekid at php dot net, Ilia)
- Fixed bug #41717 (imagepolygon does not respect thickness). (Pierre)
- Fixed bug #41713 (Persistent memory consumption on win32 since 5.2). (Dmitry)
- Fixed bug #41711 (NULL temporary lobs not supported in OCI8).
(Chris Jones, Tony)
- Fixed bug #41709 (strtotime() does not handle 00.00.0000). (Derick)
- Fixed bug #41698 (float parameters truncated to integer in prepared
statements). (Ilia)
- Fixed bug #41692 (ArrayObject shows weird behavior in respect to
inheritance). (Tony)
- Fixed bug #41691 (ArrayObject::exchangeArray hangs Apache). (Tony)
- Fixed bug #41686 (Omitting length param in array_slice not possible). (Ilia)
- Fixed bug #41685 (array_push() fails to warn when next index is
already occupied). (Ilia)
- Fixed bug #41655 (open_basedir bypass via glob()). (Ilia)
- Fixed bug #41640 (get_class_vars produces error on class constants).
- Fixed bug #41635 (SoapServer and zlib.output_compression with FastCGI
result in major slowdown). (Dmitry)
- Fixed bug #41633 (Crash instantiating classes with self-referencing
constants). (Dmitry)
- Fixed bug #41630 (segfault when an invalid color index is present in the
image data). (Reported by Elliot <wccoder@gmail dot com>) (Pierre)
- Fixed bug #41628 (PHP settings leak between Virtual Hosts in Apache 1.3).
(Scott, manuel at mausz dot at)
- Fixed bug #41608 (segfault on a weird code with objects and switch()).
- Fixed bug #41600 (url rewriter tags doesn't work with namespaced tags).
- Fixed bug #41596 (Fixed a crash inside pdo_pgsql on some non-well-formed
SQL queries). (Ilia)
- Fixed bug #41594 (OCI8 statement cache is flushed too frequently). (Tony)
- Fixed bug #41582 (SimpleXML crashes when accessing newly created element).
- Fixed bug #41576 (configure failure when using --without-apxs or some other
SAPIs disabling options). (Jani)
- Fixed bug #41567 (json_encode() double conversion is inconsistent with PHP).
(Lucas, Ilia)
- Fixed bug #41566 (SOAP Server not properly generating href attributes).
- Fixed bug #41555 (configure failure: regression caused by fix for #41265).
- Fixed bug #41527 (WDDX deserialize numeric string array key).
(Matt, Ilia)
- Fixed bug #41523 (strtotime('0000-00-00 00:00:00') is parsed as 1999-11-30).
- Fixed bug #41518 (file_exists() warns of open_basedir restriction on
non-existent file). (Tony)
- Fixed bug #41445 (parse_ini_file() has a problem with certain types of
integer as sections). (Tony)
- Fixed bug #41433 (DBA: configure fails to include correct db.h for db4).
- Fixed bug #41372 (Internal pointer of source array resets during array
copying). (Dmitry)
- Fixed bug #41350 (my_thread_global_end() error during request shutdown on
Windows). (Scott, Andrey)
- Fixed bug #41278 (get_loaded_extensions() should list Zend extensions).
- Fixed bug #41127 (Memory leak in ldap_{first|next}_attribute functions).
- Fixed bug #40757 (get_object_vars get nothing in child class). (Dmitry)
- Fixed bug #40705 (Iterating within function moves original array pointer).
- Fixed bug #40509 (key() function changed behaviour if global array is used
within function). (Dmitry)
- Fixed bug #40419 (Trailing slash in CGI request does not work). (Dmitry)
- Fixed bug #39330 (apache2handler does not call shutdown actions before
apache child die). (isk at ecommerce dot com, Gopal, Tony)
- Fixed bug #39291 (ldap_sasl_bind() misses the sasl_authc_id parameter).
(diafour at gmail dot com, Jani)
- Fixed bug #37715 (array pointers resetting on copy). (Dmitry)
- Fixed bug #37273 (Symlinks and mod_files session handler allow open_basedir
bypass). (Ilia)
- Fixed bug #36492 (Userfilters can leak buckets). (Sara)
- Fixed bugs #36796, #36918, #41371 (stream_set_blocking() does not work).
- Fixed bug #35981 (pdo-pgsql should not use pkg-config when not present).
- Fixed bug #31892 (PHP_SELF incorrect without cgi.fix_pathinfo, but turning on
screws up PATH_INFO). (Dmitry)
- Fixed bug #21197 (socket_read() outputs error with PHP_NORMAL_READ).
(Nuno, Jani)
31 May 2007, PHP 5.2.3
- Changed CGI install target to php-cgi and 'make install' to install CLI
when CGI is selected. (Jani)
- Changed JSON maximum nesting depth from 20 to 128. (Rasmus)
- Improved compilation of heredocs and interpolated strings. (Matt, Dmitry)
- Optimized out a couple of per-request syscalls. (Rasmus)
- Optimized digest generation in md5() and sha1() functions. (Ilia)
- Upgraded bundled SQLite 3 to version 3.3.17. (Ilia)
- Added "max_input_nesting_level" php.ini option to limit nesting level of
input variables. Fix for MOPB-03-2007. (Stas)
- Added a 4th parameter flag to htmlspecialchars() and htmlentities() that
makes the function not encode existing html entities. (Ilia)
- Added PDO::FETCH_KEY_PAIR mode that will fetch a 2 column result set into
an associated array. (Ilia)
- Added --ini switch to CLI that prints out configuration file names. (Marcus)
- Added mysql_set_charset() to allow runtime altering of connection encoding.
- Implemented FR #41416 (getColumnMeta() should also return table name). (Tony)
- Fixed an integer overflow inside chunk_split(). Identified by Gerhard Wagner.
- Fixed SOAP extension's handler() to work even when
"always_populate_raw_post_data" is off. (Ilia)
- Fixed possible infinite loop in imagecreatefrompng. (libgd #86)
(by Xavier Roche, CVE-2007-2756). (Pierre)
- Fixed ext/filter Email Validation Vulnerability (MOPB-45 by Stefan Esser).
- Fixed altering $this via argument named "this". (Dmitry)
- Fixed PHP CLI usage of php.ini from the binary location. (Hannes)
- Fixed segfault in strripos(). (Tony, Joxean Koret)
- Fixed bug #41693 (scandir() allows empty directory names). (Ilia)
- Fixed bug #41673 (json_encode breaks large numbers in arrays). (Ilia)
- Fixed bug #41525 (ReflectionParameter::getPosition() not available). (Marcus)
- Fixed bug #41511 (Compile failure under IRIX 6.5.30 building md5.c). (Jani)
- Fixed bug #41504 (json_decode() incorrectly decodes JSON arrays with empty
string keys). (Ilia)
- Fixed bug #41492 (open_basedir/safe_mode bypass inside realpath()). (Ilia)
- Fixed bug #41477 (no arginfo about SoapClient::__soapCall()). (Ilia)
- Fixed bug #41455 (ext/dba/config.m4 pollutes global $LIBS and $LDFLAGS).
(mmarek at suse dot cz, Tony)
- Fixed bug #41442 (imagegd2() under output control). (Tony)
- Fixed bug #41430 (Fatal error with negative values of maxlen parameter of
file_get_contents()). (Tony)
- Fixed bug #41423 (PHP assumes wrongly that certain ciphers are enabled in
OpenSSL). (Pierre)
- Fixed bug #41421 (Uncaught exception from a stream wrapper segfaults).
(Tony, Dmitry)
- Fixed bug #41403 (json_decode cannot decode floats if localeconv
decimal_point is not '.'). (Tony)
- Fixed bug #41401 (wrong unary operator precedence). (Stas)
- Fixed bug #41394 (dbase_create creates file with corrupted header). (Tony)
- Fixed bug #41390 (Clarify error message with invalid protocol scheme).
- Fixed bug #41378 (fastcgi protocol lacks support for Reason-Phrase in
"Status:" header). (anight at eyelinkmedia dot com, Dmitry)
- Fixed bug #41374 (whole text concats values of wrong nodes). (Rob)
- Fixed bug #41358 (configure cannot determine SSL lib with libcurl >= 7.16.2).
- Fixed bug #41353 (crash in openssl_pkcs12_read() on invalid input). (Ilia)
- Fixed bug #41351 (Invalid opcode with foreach ($a[] as $b)). (Dmitry, Tony)
- Fixed bug #41347 (checkdnsrr() segfaults on empty hostname). (Scott)
- Fixed bug #41337 (WSDL parsing doesn't ignore non soap bindings). (Dmitry)
- Fixed bug #41326 (Writing empty tags with Xmlwriter::WriteElement[ns])
- Fixed bug #41321 (downgrade read errors in getimagesize() to E_NOTICE).
- Fixed bug #41304 (compress.zlib temp files left). (Dmitry)
- Fixed bug #41293 (Fixed creation of HTTP_RAW_POST_DATA when there is no
default post handler). (Ilia)
- Fixed bug #41291 (FastCGI does not set SO_REUSEADDR).
(fmajid at kefta dot com, Dmitry)
- Fixed gd build when used with freetype 1.x (Pierre, Tony)
- Fixed bug #41287 (Namespace functions don't allow xmlns definition to be
optional). (Rob)
- Fixed bug #41285 (Improved fix for CVE-2007-1887 to work with non-bundled
sqlite2 lib). (Ilia)
- Fixed bug #41283 (Bug with deserializing array key that are doubles or
floats in wddx). (Ilia)
- Fixed bug #41257 (lookupNamespaceURI does not work as expected). (Rob)
- Fixed bug #41236 (Regression in timeout handling of non-blocking SSL
connections during reads and writes). (Ilia)
- Fixed bug #41134 (zend_ts_hash_clean not thread-safe).
(marco dot cova at gmail dot com, Tony)
- Fixed bug #41097 (ext/soap returning associative array as indexed without
using WSDL). (Dmitry)
- Fixed bug #41004 (minOccurs="0" and null class member variable). (Dmitry)
- Fixed bug #39542 (Behavior of require/include different to < 5.2.0).
03 May 2007, PHP 5.2.2
- Improved bundled GD
. Sync to 2.0.35
. Added imagegrabwindow and imagegrabscreen, capture a screen or a
window using its handle (Pierre)
. colors allocated henceforth from the resulting image overwrite the palette
colors (Rob Leslie)
. Improved thread safety of the gif support (Roman Nemecek, Nuno, Pierre)
. Use the dimension of the GIF frame to create the destination image (Pierre)
. Load only once the local color map from a GIF data (Pierre)
. Improved thread safety of the freetype cache (Scott MacVicar, Nuno, Pierre)
. imagearc huge CPU usage with large angles, libgd bug #74 (Pierre)
- Improved FastCGI SAPI to support external pipe and socket servers on win32.
- Improved Zend Memory Manager
. guarantee of reasonable time for worst cases of best-fit free block
searching algorithm. (Dmitry)
. better cache usage and less fragmentation on erealloc() (Tony, Dmitry)
- Improved SPL (Marcus)
. Added SplFileInfo::getBasename(), DirectoryIterator::getBasename().
. Added SplFileInfo::getLinkTarget(), SplFileInfo::getRealPath().
. Made RecursiveFilterIterator::accept() abstract as stated in documentation.
- Improved SOAP
. Added ability to encode arrays with "SOAP-ENC:Array" type instead of WSDL
type. To activate the ability use "feature"=>SOAP_USE_XSI_ARRAY_TYPE
option in SoapClient/SoapServer constructors. (Rob, Dmitry)
- Added GMP_VERSION constant. (Tony)
- Added --ri switch to CLI which allows to check extension information. (Marcus)
- Added tidyNode::getParent() method (John, Nuno)
- Added openbasedir and safemode checks in zip:// stream wrapper and
ZipArchive::open (Pierre)
- Added php_pdo_sqlite_external.dll, a version of the PDO SQLite driver that
links against an external sqlite3.dll. This provides Windows users to upgrade
their sqlite3 version outside of the PHP release cycle. (Wez, Edin)
- Added linenumbers to array returned by token_get_all(). (Johannes)
- Upgraded SQLite 3 to version 3.3.16 (Ilia)
- Upgraded libraries bundled in the Windows distribution. (Edin)
. c-client (imap) to version 2006e
. libpq (PostgreSQL) to version 8.2.3
. libmysql (MySQL) to version 5.0.37
. openssl to version 0.9.8e
- Upgraded PCRE to version 7.0 (Nuno)
- Updated timezone database to version 2007.5. (Derick)
- Fixed commandline handling for CLI and CGI. (Marcus, Johannes)
- Fixed iterator_apply() with a callback using __call(). (Johannes)
- Fixed possible multi bytes issues in openssl csr parser (Pierre)
- Fixed shmop_open() with IPC_CREAT|IPC_EXCL flags on Windows.
(Vladimir Kamaev, Tony).
- Fixed possible leak in ZipArchive::extractTo when safemode checks fails (Ilia)
- Fixed possible relative path issues in zip_open and TS mode (old API) (Pierre)
- Fixed zend_llist_remove_tail (Michael Wallner, Dmitry)
- Fixed a thread safety issue in gd gif read code (Nuno, Roman Nemecek)
- Fixed CVE-2007-1001, GD wbmp used with invalid image size (Pierre)
- Fixed unallocated memory access/double free in in array_user_key_compare()
(MOPB-24 by Stefan Esser) (Stas)
- Fixed wrong length calculation in unserialize S type
(MOPB-29 by Stefan Esser) (Stas)
- Fixed bug #41215 (setAttribute return code reversed). (Ilia)
- Fixed bug #41192 (Per Directory Values only work for one key). (Dmitry)
- Fixed bug #41175 (addAttribute() fails to add an attribute with an empty
value). (Ilia)
- Fixed bug #41159 (mysql_pconnect() hash does not account for connect
flags). (Ilia)
- Fixed bug #41121 (range() overflow handling for large numbers on 32bit
machines). (Ilia)
- Fixed bug #41118 (PHP does not handle overflow of octal integers). (Tony)
- Fixed bug #41109 ( says "implements" Iterator instead of
"extends"). (Marcus)
- Fixed bug #40130 (TTF usage doesn't work properly under Netware). (Scott,
gk at gknw dot de)
- Fixed bug #41093 (magic_quotes_gpc ignores first arrays keys). (Arpad, Ilia)
- Fixed bug #41075 (memleak when creating default object caused exception).
- Fixed bug #41067 (json_encode() problem with UTF-16 input). (jp at df5ea
dot net. Ilia)
- Fixed bug #41063 (chdir doesn't like root paths). (Dmitry)
- Fixed bug #41061 ("visibility error" in ReflectionFunction::export()).
- Fixed bug #41043 (pdo_oci crash when freeing error text with persistent
connection). (Tony)
- Fixed bug #41037 (unregister_tick_function() inside the tick function crash PHP).
- Fixed bug #41034 (json_encode() ignores null byte started keys in arrays).
- Fixed bug #41026 (segfault when calling "self::method()" in shutdown functions).
- Fixed bug #40999 (mcrypt_create_iv() not using random seed). (Ilia)
- Fixed bug #40998 (long session array keys are truncated). (Tony)
- Implement feature request #40947, allow a single filter as argument
for filter_var_array (Pierre)
- Fixed bug #40935 (pdo_mysql does not raise an exception on empty
fetchAll()). (Ilia)
- Fixed bug #40931 (open_basedir bypass via symlink and move_uploaded_file()).
- Fixed bug #40921 (php_default_post_reader crashes when post_max_size is
exceeded). (trickie at gmail dot com, Ilia)
- Fixed bug #40915 (addcslashes unexpected behavior with binary input). (Tony)
- Fixed bug #40899 (memory leak when nesting list()). (Dmitry)
- Fixed bug #40897 (error_log file not locked). (Ilia)
- Fixed bug #40883 (mysql_query() is allocating memory incorrectly). (Tony)
- Fixed bug #40872 (inconsistency in offsetSet, offsetExists treatment of
string enclosed integers). (Marcus)
- Fixed bug #40861 (strtotime() doesn't handle double negative relative time
units correctly). (Derick, Ilia)
- Fixed bug #40854 (imap_mail_compose() creates an invalid terminator for
multipart e-mails). (Ilia)
- Fixed bug #40848 (sorting issue on 64-bit Solaris). (Wez)
- Fixed bug #40836 (Segfault in ext/dom). (Rob)
- Fixed bug #40833 (Crash when using unset() on an ArrayAccess object retrieved
via __get()). (Dmitry)
- Fixed bug #40822 (pdo_mysql does not return rowCount() on select). (Ilia)
- Fixed bug #40815 (using strings like "class::func" and static methods in
set_exception_handler() might result in crash). (Tony)
- Fixed bug #40809 (Poor performance of ".="). (Dmitry)
- Fixed bug #40805 (Failure executing function ibase_execute()). (Tony)
- Fixed bug #40800 (cannot disable memory_limit with -1). (Dmitry, Tony)
- Fixed bug #40794 (ReflectionObject::getValues() may crash when used with
dynamic properties). (Tony)
- Fixed bug #40784 (Case sensitivity in constructor's fallback). (Tony)
- Fixed bug #40770 (Apache child exits when PHP memory limit reached). (Dmitry)
- Fixed bug #40764 (line thickness not respected for horizontal and vertical
lines). (Pierre)
- Fixed bug #40758 (Test fcgi_is_fastcgi() is wrong on windows). (Dmitry)
- Fixed bug #40754 (added substr() & substr_replace() overflow checks). (Ilia)
- Fixed bug #40752 (parse_ini_file() segfaults when a scalar setting is
redeclared as an array). (Tony)
- Fixed bug #40750 (openssl stream wrapper ignores default_stream_timeout).
- Fixed bug #40727 (segfault in PDO when failed to bind parameters). (Tony)
- Fixed bug #40709 (array_reduce() behaves strange with one item stored arrays).
- Fixed bug #40703 (Resolved a possible namespace conflict between libxmlrpc
and MySQL's NDB table handler). (Ilia)
- Fixed bug #40961 (Incorrect results of DateTime equality check). (Mike)
- Fixed bug #40678 (Cross compilation fails). (Tony)
- Fixed bug #40621 (Crash when constructor called inappropriately). (Tony)
- Fixed bug #40609 (Segfaults when using more than one SoapVar in a request).
(Rob, Dmitry)
- Fixed bug #40606 (umask is not being restored when request is finished).
- Fixed bug #40598 (libxml segfault). (Rob)
- Fixed bug #40591 (list()="string"; gives invalid opcode). (Dmitry)
- Fixed bug #40578 (imagettftext() multithreading issue). (Tony, Pierre)
- Fixed bug #40576 (double values are truncated to 6 decimal digits when
encoding). (Tony)
- Fixed bug #40560 (DIR functions do not work on root UNC path). (Dmitry)
- Fixed bug #40548 (SplFileInfo::getOwner/getGroup give a warning on broken
symlink). (Marcus)
- Fixed bug #40546 (SplFileInfo::getPathInfo() throws an exception if directory
is in root dir). (Marcus)
- Fixed bug #40545 (multithreading issue in zend_strtod()). (Tony)
- Fixed bug #40503 (json_encode() value corruption on 32bit systems with
overflown values). (Ilia)
- Fixed bug #40467 (Partial SOAP request sent when XSD sequence or choice
include minOccurs=0). (Dmitry)
- Fixed bug #40465 (Ensure that all PHP elements are printed by var_dump).
(wharmby at uk dot ibm dot com, Ilia)
- Fixed bug #40464 (session.save_path wont use default-value when safe_mode
or open_basedir is enabled). (Ilia)
- Fixed bug #40455 (proc_open() uses wrong command line when safe_mode_exec_dir
is set). (Tony)
- Fixed bug #40432 (strip_tags() fails with greater than in attribute). (Ilia)
- Fixed bug #40431 (dynamic properties may cause crash in ReflectionProperty
methods). (Tony)
- Fixed bug #40451 (addAttribute() may crash when used with non-existent child
node). (Tony)
- Fixed bug #40442 (ArrayObject::offsetExists broke in 5.2.1, works in 5.2.0).
(olivier at elma dot fr, Marcus)
- Fixed bug #40428 (imagepstext() doesn't accept optional parameter). (Pierre)
- Fixed bug #40417 (Allow multiple instances of the same named PDO token in
prepared statement emulation code). (Ilia)
- Fixed bug #40414 (possible endless fork() loop when running fastcgi).
- Fixed bug #40410 (ext/posix does not compile on MacOS 10.3.9). (Tony)
- Fixed bug #40392 (memory leaks in PHP milter SAPI).
(tuxracer69 at gmail dot com, Tony)
- Fixed bug #40371 (pg_client_encoding() not working on Windows). (Edin)
- Fixed bug #40352 (FCGI_WEB_SERVER_ADDRS function get lost). (Dmitry)
- Fixed bug #40290 (strtotime() returns unexpected result with particular
timezone offset). (Derick)
- Fixed bug #40286 (PHP fastcgi with PHP_FCGI_CHILDREN don't kill children when
parent is killed). (Dmitry)
- Fixed bug #40261 (Extremely slow data handling due to memory fragmentation).
- Fixed bug #40236 (php -a function allocation eats memory). (Dmitry)
- Fixed bug #40109 (iptcembed fails on non-jfif jpegs). (Tony)
- Fixed bug #39965 (Latitude and longitude are backwards in date_sun_info()).
- Implement #39867 (openssl PKCS#12 support) (Marc Delling, Pierre)
- Fixed bug #39836 (SplObjectStorage empty after unserialize). (Marcus)
- Fixed bug #39416 (Milliseconds in date()). (Derick)
- Fixed bug #39396 (stream_set_blocking crashes on Win32). (Ilia, maurice at
iceblog dot de)
- Fixed bug #39351 (relative include fails on Solaris). (Dmitry, Tony)
- Fixed bug #39322 (proc_terminate() destroys process resource). (Nuno)
- Fixed bug #38406 (crash when assigning objects to SimpleXML attributes). (Tony)
- Fixed bug #37799 (ftp_ssl_connect() falls back to non-ssl connection). (Nuno)
- Fixed bug #36496 (SSL support in imap_open() not working on Windows). (Edin)
- Fixed bug #36226 (Inconsistent handling when passing nillable arrays).
- Fixed bug #35872 (Avoid crash caused by object store being referenced during
- Fixed bug #34794 (proc_close() hangs when used with two processes).
(jdolecek at netbsd dot org, Nuno)
- Fixed PECL bug #10194 (crash in Oracle client when memory limit reached in
the callback). (Tony)
- Fixed substr_compare and substr_count information leak (MOPB-14) (Stas, Ilia)
- Fixed crash on op-assign where argument is string offset (Brian, Stas)
- Fixed bug #38710 (data leakage because of nonexisting boundary checking in
statements in mysqli) (Stas)
- Fixed bug #37386 (autocreating element doesn't assign value to first node).
- Fixed bug #37013 (server hangs when returning circular object references).
- Fixed bug #33664 Console window appears when using exec()
(Richard Quadling, Stas)
08 Feb 2007, PHP 5.2.1
- Added read-timeout context option "timeout" for HTTP streams. (Hannes, Ilia).
- 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.
- 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.
- 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.
- 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
. 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 GetFistFile/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
. 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).
- 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).
- 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).
- 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).
- 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).
- 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).
- 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
- Fixed bug #39732 (oci_bind_array_by_name doesn't work on Solaris 64bit).
- 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).
- 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).
- 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).
- 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).
- Fixed bug #39398 (Booleans are not automatically translated to integers).
- 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)
- Fixed bug #39364 (Removed warning on empty haystack inside mb_strstr()).
- 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
(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).
- Fixed bug #39090 (DirectoryFilterDots doxygen docs and example is wrong).
- 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).
- 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).
- 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).
- 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).
- 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
- Fixed bug #37773 (iconv_substr() gives "Unknown error" when string
length = 1"). (Ilia)
- Fixed bug #37627 (session save_path check checks the parent directory).
- 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).
- 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)
02 Nov 2006, PHP 5.2.0
- 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.7. (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.
- 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.
- 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)
- 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().
- 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.
- 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().
. 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()
- 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.
. 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).
- 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
- 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 #39721 (Runtime inheritance causes data corruption). (Dmitry)
- Fixed bug #39304 (Segmentation fault with list unpacking of string offset).
- 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).
- 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).
- 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).
- 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).
- 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).
- Fixed bug #38579 (include_once() may include the same file twice). (Dmitry)
- Fixed bug #38574 (missing curl constants and improper constant detection).
- 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 bug #38511, #38473, #38263 (Fixed session extension request shutdown
order to ensure it is shutdown before the extensions it may depend on).
- Fixed bug #38488 (Access to "php://stdin" and family crashes PHP on win32).
- 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)
- Implemented #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).
- Fixed bug #38303 (spl_autoload_register() suppress all errors silently).
- Fixed bug #38290 (configure script ignores --without-cdb,inifile,flatfile).
- Fixed bug #38289 (segfault in session_decode() when _SESSION is NULL).
- 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).
- 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 bug #38213, #37611, #37571 (wddx encoding fails to handle certain
characters). (Ilia)
- Fixed bug #38212 (Segfault on invalid imagecreatefromgd2part() parameters).
- 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).
- 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)).
- 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).
- 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>).
- 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).
- Fixed bug #36949 (invalid internal mysqli objects dtor). (Mike)
- Implement #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)
- Implement #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)
04 May 2006, PHP 5.1.4
- 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 no 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).
28 Apr 2006, PHP 5.1.3
- 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.
- Changed get_headers() to use the default context. (Ilia)
- Added lchown() and lchgrp() to change user/group ownership of symlinks.
- 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:
- 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.
- 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).
- Fixed bug #37103 (libmbfl headers not installed). (Jani)
- 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).
- 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).
- 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)z
- 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).
- 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).
- Fixed bug #36756 (DOMDocument::removeChild corrupts node). (Rob)
- Fixed bug #36749 (SOAP: 'Error Fetching http body' when using HTTP Proxy).
- Fixed bug #36745 (No error message when load data local file isn't found).
- 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).
- Fixed bug #36689 (Removed arbitrary limit on the length of syslog messages).
- 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).
- 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).
- 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).