cvs: phpweb / ChangeLog-5.php UPDATE_5_2.txt downloads.php index.php /releases 5_2_1.php index.php
| From: | Ilia Alshanetsky | Date: | Fri, 09 Feb 2007 00:17:27 +0000 |
| Subject: | cvs: phpweb / ChangeLog-5.php UPDATE_5_2.txt downloads.php index.php /releases 5_2_1.php index.php | ||
| Groups: | php.mirrors | ||
| Request: | Send a blank email to php-mirrors+get-34161@lists.php.net to get a copy of this message | ||
iliaa Fri Feb 9 00:17:27 2007 UTC
Added files:
/phpweb/releases 5_2_1.php
Modified files:
/phpweb ChangeLog-5.php UPDATE_5_2.txt downloads.php index.php
/phpweb/releases index.php
Log:
5.2.1 Release
http://cvs.php.net/viewvc.cgi/phpweb/ChangeLog-5.php?r1=1.41&r2=1.42&diff_format=u Index: phpweb/ChangeLog-5.php diff -u phpweb/ChangeLog-5.php:1.41 phpweb/ChangeLog-5.php:1.42 --- phpweb/ChangeLog-5.php:1.41 Thu Nov 2 20:29:40 2006 +++ phpweb/ChangeLog-5.php Fri Feb 9 00:17:27 2007 @@ -1,5 +1,5 @@ <?php -// $Id: ChangeLog-5.php,v 1.41 2006/11/02 20:29:40 bjori Exp $ +// $Id: ChangeLog-5.php,v 1.42 2007/02/09 00:17:27 iliaa Exp $ $_SERVER['BASE_PAGE'] = 'ChangeLog-5.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc'; site_header("PHP 5 ChangeLog"); @@ -11,6 +11,279 @@ <hr /> +<a name="5.2.1"></a> +<h3>Version 5.2.1</h3> +<b>08-Feb-2007</b> +<ul> +<li>Added CURLOPT_TCP_NODELAY constant to Curl extension. (Sara)</li> +<li>Added support for hex numbers of any size. (Matt)</li> +<li>Added function stream_socket_shutdown(). It is a wrapper for system shutdown() function, that shut downs part of a full-duplex connection. (Dmitry)</li> +<li>Added internal heap protection (Dmitry)</li> + <ul> + <li>memory-limit is always enabled (--enable-memory-limit removed)</li> + <li>default value if memory-limit is set to 128M</li> + <li>safe unlinking</li> + <li>cookies</li> + <li>canary protection (debug build only)</li> + <li>random generation of cookies and canaries</li> + </ul> +</li> +<li>Added forward support for 'b' prefix in front of string literals. (Andrei)</li> +<li>Added three new functions to ext/xmlwriter (Rob, Ilia)</li> + <ul> + <li>xmlwriter_start_dtd_entity()</li> + <li>xmlwriter_end_dtd_entity()</li> + <li>xmlwriter_write_dtd_entity()</li> + </ul> +</li> +<li>Added a meta tag to phpinfo() output to prevent search engines from indexing the page. (Ilia)</li> +<li>Added new function, sys_get_temp_dir(). (Hartmut)</li> +<li>Added missing object support to file_put_contents(). (Ilia)</li> +<li>Added support for md2, ripemd256 and ripemd320 algos to hash(). (Sara)</li> +<li>Added forward support for (binary) cast. (Derick)</li> +<li>Added optimization for imageline with horizontal and vertical lines (Pierre)</li> + +<li>Removed dependency from SHELL32.DLL. (Dmitry)</li> +<li>Removed double "wrong parameter count" warnings in various functions. (Hannes)</li> +<li>Moved extensions to PECL: + <ul> + <li>ext/informix (Derick, Tony)</li> + </ul> +</li> +<li>Changed double-to-string utilities to use BSD implementation. (Dmitry, Tony)</li> +<li>Updated bundled libcURL to version 7.16.0 in the Windows distro. (Edin)</li> +<li>Updated timezone database to version 2006.16. (Derick)</li> +<li>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).</li> +<li>Improved proc_open(). Now on Windows it can run external commands not through CMD.EXE. (Dmitry)</li> +<li>VCWD_REALPATH() is improved to use realpath cache without VIRTUAL_DIR. (Dmitry)</li> +<li>ext/bcmath initialization code is moved from request startup to module startup. (Dmitry)</li> +<li>Zend Memory Manager Improvements (Dmitry)</li> + <ul> + <li>use HeapAlloc() instead of VirtualAlloc()</li> + <li>use "win32" storage manager (instead of "malloc") on Windows by default</li> + </ul> +</li> +<li>Zip Extension Improvements (Pierre) + <ul> + <li>Fixed leak in statName and stateIndex</li> + <li>Fixed return setComment (Hannes)</li> + <li>Added addEmptyDir method</li> + </ul> +</li> +<li>Filter Extension Improvements (Ilia, Pierre) + <ul> + <li>Fixed a bug when callback function returns a non-modified value.</li> + <li>Added filter support for $_SERVER in cgi/apache2 sapis.</li> + <li>Make sure PHP_SELF is filtered in Apache 1 sapi.</li> + <li><?php bugfix(39358); ?> (INSTALL_HEADERS contains incorrect reference to php_filter.h).</li> + <li>Added "default" option that allows a default value to be set for an invalid or missing value.</li> + <li>Invalid filters fails instead of returning unsafe value</li> + <li>Fixed possible double encoding problem with sanitizing filters</li> + <li>Make use of space-strict strip_tags() function</li> + <li>Fixed whitespace trimming</li> + <li>Added support for FastCGI environment variables. (Dmitry)</li> + </ul> +</li> +<li>PDO_MySQL Extension Improvements (Ilia) + <ul> + <li>Enabled buffered queries by default.</li> + <li>Enabled prepared statement emulation by default.</li> + </ul> +</li> + +<li>Small optimization of the date() function. (Matt,Ilia)</li> +<li>Optimized the internal is_numeric_string() function. (Matt,Ilia)</li> +<li>Optimized array functions utilizing php_splice(). (Ilia)</li> +<li>Windows related optimizations (Dmitry, Stas)</li> + <ul> + <li>COM initialization/deinitialization are done only if necessary</li> + <li>removed unnecessary checks for ISREG file and corresponding stat() calls</li> + <li>opendir() is reimplementation using GetFistFile/GetNextFile those are faster then _findfirst/_findnext</li> + <li>implemented registry cache that prevent registry lookup on each request. In case of modification of corresponding registry-tree PHP will reload it automatic</li> + <li>start timeout thread only if necessary</li> + <li>stat() is reimplementation using GetFileAttributesEx(). The new implementation is faster then implementation in MS VC CRT, but it doesn't support Windows 95.</li> + </ul> +</li> +<li>Streams optimization (Dmitry) + <ul> + <li>removed unnecessary ftell() calls (one call for each included PHP file)</li> + <li>disabled calls to read() after EOF</li> + </ul> +</li> + +<li>Fixed incorrect function names on FreeBSD where inet_pton() was named __inet_pton() and inet_ntop() was named __inet_ntop(). (Hannes)</li> +<li>Fixed FastCGI impersonation for persistent connections on Windows. (Dmitry)</li> +<li>Fixed wrong signature initialization in imagepng (Takeshi Abe)</li> +<li>Fixed ftruncate() with negative size on FreeBSD. (Hannes)</li> +<li>Fixed segfault in RegexIterator when given invalid regex. (Hannes)</li> +<li>Fixed segfault in SplFileObject->openFile()->getPathname(). (Hannes)</li> +<li>Fixed segfault in ZTS mode when OCI8 statements containing sub-statements are destroyed in wrong order. (Tony)</li> +<li>Fixed the validate email filter so that the letter "v" can also be used in the user part of the email address. (Derick)</li> +<li><?php bugfix(40297); ?> (compile failure in ZTS mode when collections support is missing). (Tony)</li> +<li><?php bugfix(40285); ?> (The PDO prepare parser goes into an infinite loop in some instances). (Ilia)</li> +<li><?php bugfix(40274); ?> (Sessions fail with numeric root keys). (Ilia)</li> +<li><?php bugfix(40259); ?> (ob_start call many times - memory error). (Dmitry)</li> +<li><?php bugfix(40231); ?> (file_exists incorrectly reports false). (Dmitry)</li> +<li><?php bugfix(40228); ?> (ZipArchive::extractTo does create empty directories recursively). (Pierre)</li> +<li><?php bugfix(40200); ?> (The FastCgi version has different realpath results than thread safe version). (Dmitry)</li> +<li><?php bugfix(40191); ?> (use of array_unique() with objects triggers segfault). (Tony)</li> +<li><?php bugfix(40189); ?> (possible endless loop in zlib.inflate stream filter). (Greg, Tony)</li> +<li><?php bugfix(40169); ?> (CURLOPT_TCP_NODELAY only available in curl >= 7.11.2). (Tony)</li> +<li><?php bugfix(40129); ?> (iconv extension doesn't compile with CodeWarrior on Netware). (gk at gknw dot de, Tony)</li> +<li><?php bugfix(40127); ?> (apache2handler doesn't compile on Netware). (gk at gknw dot de)</li> +<li><?php bugfix(40121); ?> (PDO_DBLIB driver wont free statements). (Ilia)</li> +<li><?php bugfix(40098); ?> (php_fopen_primary_script() not thread safe). (Ilia)</li> +<li><?php bugfix(40092); ?> (chroot() doesn't clear realpath cache). (Dmitry)</li> +<li><?php bugfix(40091); ?> (spl_autoload_register with 2 instances of the same class). (Ilia)</li> +<li><?php bugfix(40083); ?> (milter SAPI functions always return false/null). (Tony)</li> +<li><?php bugfix(40079); ?> (php_get_current_user() not thread safe). (Ilia, wharmby at uk dot ibm dot com)</li> +<li><?php bugfix(40078); ?> (ORA-01405 when fetching NULL values using oci_bind_array_by_name()). (Tony)</li> +<li><?php bugfix(40076); ?> (zend_alloc.c: Value of enumeration constant must be in range of signed integer). (Dmitry)</li> +<li><?php bugfix(40073); ?> (exif_read_data dies on certain images). (Tony, Marcus)</li> +<li><?php bugfix(40036); ?> (empty() does not work correctly with ArrayObject when using ARRAY_AS_PROPS). (Ilia)</li> +<li><?php bugfix(40012); ?> (php_date.c doesn't compile on Netware). (gk at gknw dot de, Derick)</li> +<li><?php bugfix(40009); ?> (http_build_query(array()) returns NULL). (Ilia)</li> +<li><?php bugfix(40002); ?> (Try/Catch performs poorly). (Dmitry)</li> +<li><?php bugfix(39993); ?> (tr_TR.UTF-8 locale has problems with PHP). (Ilia)</li> +<li><?php bugfix(39990); ?> (Cannot "foreach" over overloaded properties). (Dmitry)</li> +<li><?php bugfix(39988); ?> (type argument of oci_define_by_name() is ignored). (Chris Jones, Tony)</li> +<li><?php bugfix(39984); ?> (redirect response code in header() could be ignored in CGI sapi). (Ilia)</li> +<li><?php bugfix(39979); ?> (PGSQL_CONNECT_FORCE_NEW will causes next connect to establish a new connection). (Ilia)</li> +<li><?php bugfix(39971); ?> (pg_insert/pg_update do not allow now() to be used for timestamp fields). (Ilia)</li> +<li><?php bugfix(39969); ?> (ini setting short_open_tag has no effect when using --enable-maintainer-zts). (Dmitry)</li> +<li><?php bugfix(39952); ?> (zip ignoring --with-libdir on zlib checks) (judas dot iscariote at gmail dot com)</li> +<li><?php bugfix(39944); ?> (References broken). (Dmitry)</li> +<li><?php bugfix(39935); ?> (Extensions tidy,mcrypt,mhash,pdo_sqlite ignores --with-libdir). (judas dot iscariote at gmail dot com, Derick)</li> +<li><?php bugfix(39903); ?> (Notice message when executing __halt_compiler() more than once). (Tony)</li> +<li><?php bugfix(39898); ?> (FILTER_VALIDATE_URL validates \r\n\t etc). (Ilia)</li> +<li><?php bugfix(39890); ?> (using autoconf 2.6x and --with-layout=GNU breaks PEAR install path). (Tony)</li> +<li><?php bugfix(39884); ?> (ReflectionParameter::getClass() throws exception for type hint self). (thekid at php dot net)</li> +<li><?php bugfix(39878); ?> (CURL doesn't compile on Sun Studio Pro). (Ilia)</li> +<li><?php bugfix(39873); ?> (number_format() breaks with locale & decimal points). (Ilia)</li> +<li><?php bugfix(39869); ?> (safe_read does not initialize errno). (michiel at boland dot org, Dmitry)</li> +<li><?php bugfix(39850); ?> (SplFileObject throws contradictory/wrong error messages when trying to open "php://wrong"). (Tony)</li> +<li><?php bugfix(39846); ?> (Invalid IPv4 treated as valid). (Ilia)</li> +<li><?php bugfix(39845); ?> (Persistent connections generate a warning in pdo_pgsql). (Ilia)</li> +<li><?php bugfix(39832); ?> (SOAP Server: parameter not matching the WSDL specified type are set to 0). (Dmitry)</li> +<li><?php bugfix(39825); ?> (foreach produces memory error). (Dmitry)</li> +<li><?php bugfix(39816); ?> (apxs2filter ignores httpd.conf & .htaccess php config settings). (Ilia)</li> +<li><?php bugfix(39815); ?> (SOAP double encoding is not locale-independent). (Dmitry)</li> +<li><?php bugfix(39797); ?> (virtual() does not reset changed INI settings). (Ilia) </li> +<li><?php bugfix(39795); ?> (build fails on AIX because crypt_r() uses different data struct). (Tony)</li> +<li><?php bugfix(39791); ?> (Crash in strtotime() on overly long relative date multipliers). (Ilia)</li> +<li><?php bugfix(39787); ?> (PHP doesn't work with Apache 2.3). (mv at binarysec dot com).</li> +<li><?php bugfix(39782); ?> (setTime() on a DateTime constructed with a Weekday yields incorrect results). (Ilia)</li> +<li><?php bugfix(39780); ?> (PNG image with CRC/data error raises fatal error) (Pierre)</li> +<li><?php bugfix(39779); ?> (Enable AUTH PLAIN mechanism in underlying libc-client). (michael dot heimpold at s2000 dot tu-chemnitz dot de, Ilia)</li> +<li><?php bugfix(39775); ?> ("Indirect modification ..." message is not shown). (Dmitry)</li> +<li><?php bugfix(39763); ?> (magic quotes are applied twice by ext/filter in parse_str()). (Ilia) </li> +<li><?php bugfix(39760); ?> (cloning fails on nested SimpleXML-Object). (Rob)</li> +<li><?php bugfix(39759); ?> (Can't use stored procedures fetching multiple result sets in pdo_mysql). (Ilia)</li> +<li><?php bugfix(39754); ?> (Some POSIX extension functions not thread safe). (Ilia, wharmby at uk dot ibm dot com)</li> +<li><?php bugfix(39751); ?> (putenv crash on Windows). (KevinJohnHoffman at gmail.com)</li> +<li><?php bugfix(39732); ?> (oci_bind_array_by_name doesn't work on Solaris 64bit). (Tony)</li> +<li><?php bugfix(39724); ?> (Broken build due to spl/filter usage of pcre extension). (Tony, Ilia)</li> +<li><?php bugfix(39718); ?> (possible crash if assert.callback is set in ini). (Ilia)</li> +<li><?php bugfix(39702); ?> (php crashes in the allocator on linux-m68k). (Dmitry)</li> +<li><?php bugfix(39685); ?> (iconv() - undefined function). (Hannes)</li> +<li><?php bugfix(39673); ?> (file_get_contents causes bus error on certain offsets). (Tony)</li> +<li><?php bugfix(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)</li> +<li><?php bugfix(39662); ?> (Segfault when calling asXML() of a cloned SimpleXMLElement). (Rob, Tony)</li> +<li><?php bugfix(39656); ?> (crash when calling fetch() on a PDO statment object after closeCursor()). (Ilia, Tony)</li> +<li><?php bugfix(39653); ?> (ext/dba doesn't check for db-4.5 and db-4.4 when db4 support is enabled). (Tony)</li> +<li><?php bugfix(39652); ?> (Wrong negative results from memory_get_usage()). (Dmitry)</li> +<li><?php bugfix(39648); ?> (Implementation of PHP functions chown() and chgrp() are not thread safe). (Ilia, wharmby at uk dot ibm dot com)</li> +<li><?php bugfix(39640); ?> (Segfault with "Allowed memory size exhausted"). (Dmitry)</li> +<li><?php bugfix(39625); ?> (Apache crashes on importStylesheet call). (Rob)</li> +<li><?php bugfix(39623); ?> (thread safety fixes on *nix for putenv() & mime_magic). (Ilia, wharmby at uk dot ibm dot com)</li> +<li><?php bugfix(39621); ?> (str_replace() is not binary safe on strings with equal length). (Tony)</li> +<li><?php bugfix(39613); ?> (Possible segfault in imap initialization due to missing module dependency). (wharmby at uk dot ibm dot com, Tony)</li> +<li><?php bugfix(39606); ?> (Use of com.typelib_file in PHP.ini STILL causes A/V). (Rob)</li> +<li><?php bugfix(39602); ?> (Invalid session.save_handler crashes PHP). (Dmitry)</li> +<li><?php bugfix(39596); ?> (Creating Variant of type VT_ARRAY). (Rob)</li> +<li><?php bugfix(39583); ?> (ftp_put() does not change transfer mode to ASCII). (Tony)</li> +<li><?php bugfix(39576); ?> (array_walk() doesn't separate user data zval). (Tony)</li> +<li><?php bugfix(39575); ?> (move_uploaded_file() no longer working (safe mode related)). (Tony)</li> +<li><?php bugfix(39571); ?> (timeout ssl:// connections). (Ilia)</li> +<li><?php bugfix(39564); ?> (PDO::errorInfo() returns inconsistent information when sqlite3_step() fails). (Tony)</li> +<li><?php bugfix(39548); ?> (ZMSG_LOG_SCRIPT_NAME not routed to OutputDebugString() on Windows). (Dmitry)</li> +<li><?php bugfix(39538); ?> (fgetcsv can't handle starting newlines and trailing odd number of backslashes). (David Soria Parra, Pierre)</li> +<li><?php bugfix(39534); ?> (Error in maths to calculate of ZEND_MM_ALIGNED_MIN_HEADER_SIZE). (wharmby at uk dot ibm dot com, Dmitry)</li> +<li><?php bugfix(39527); ?> (Failure to retrieve results when multiple unbuffered, prepared statements are used in pdo_mysql). (Ilia)</li> +<li><?php bugfix(39508); ?> (imagefill crashes with small images 3 pixels or less). (Pierre)</li> +<li><?php bugfix(39506); ?> (Archive corrupt with ZipArchive::addFile method). (Pierre)</li> +<li><?php bugfix(39504); ?> (xmlwriter_write_dtd_entity() creates Attlist tag, not entity). (Hannes)</li> +<li><?php bugfix(39483); ?> (Problem with handling of \ char in prepared statements). (Ilia, suhachov at gmail dot com)</li> +<li><?php bugfix(39458); ?> (ftp_nlist() returns false on empty dirs). (Nuno)</li> +<li><?php bugfix(39454); ?> (Returning a SOAP array segfaults PHP). (Dmitry)</li> +<li><?php bugfix(39450); ?> (getenv() fills other super-globals). (Ilia, Tony)</li> +<li><?php bugfix(39449); ?> (Overloaded array properties do not work correctly). (Dmitry)</li> +<li><?php bugfix(39445); ?> (Calling debug_backtrace() in the __toString() function produces a crash). (Dmitry)</li> +<li><?php bugfix(39438); ?> (Fatal error: Out of memory). (Dmitry)</li> +<li><?php bugfix(39435); ?> ('foo' instanceof bar gives invalid opcode error). (Sara)</li> +<li><?php bugfix(39414); ?> (Syntax error while compiling with Sun Workshop Complier). (Johannes)</li> +<li><?php bugfix(39398); ?> (Booleans are not automatically translated to integers). (Ilia)</li> +<li><?php bugfix(39394); ?> (Missing check for older variants of openssl). (Ilia)</li> +<li><?php bugfix(39367); ?> (clearstatcache() doesn't clear realpath cache). (j at pureftpd dot org, Dmitry)</li> +<li><?php bugfix(39366); ?> (imagerotate does not use alpha with angle > 45 degrees) (Pierre)</li> +<li><?php bugfix(39364); ?> (Removed warning on empty haystack inside mb_strstr()). (Ilia)</li> +<li><?php bugfix(39362); ?> (Added an option to imap_open/imap_reopen to control the number of connection retries). (Ilia)</li> +<li>Fixed bugs <?php bugl(39361); ?>, <?php bugl(39400); ?> (mbstring function overloading problem). (Seiji)</li> +<li><?php bugfix(39354); ?> (Allow building of curl extension against libcurl 7.16.0). (Ilia) </li> +<li><?php bugfix(39350); ?> (crash with implode("\n", array(false))). (Ilia)</li> +<li><?php bugfix(39344); ?> (Unnecessary calls to OnModify callback routine for an extension INI directive). (wharmby at uk dot ibm dot com, Dmitry)</li> +<li><?php bugfix(39320); ?> (ZEND_HASH_APPLY_STOP causes deletion). (Marcus)</li> +<li><?php bugfix(39313); ?> (spl_autoload triggers Fatal error). (Marcus)</li> +<li><?php bugfix(39300); ?> (make install fails if wget is not available). (Tony)</li> +<li><?php bugfix(39297); ?> (Memory corruption because of indirect modification of overloaded array). (Dmitry)</li> +<li><?php bugfix(39286); ?> (misleading error message when invalid dimensions are given) (Pierre)</li> +<li><?php bugfix(39273); ?> (imagecopyresized may ignore alpha channel) (Pierre)</li> +<li><?php bugfix(39265); ?> (Fixed path handling inside mod_files.sh). (michal dot taborsky at gmail dot com, Ilia)</li> +<li><?php bugfix(39217); ?> (serialNumber might be -1 when the value is too large). (Pierre, Tony)</li> +<li><?php bugfix(39215); ?> (Inappropriate close of stdin/stdout/stderr). (Wez, Ilia)</li> +<li><?php bugfix(39201); ?> (Possible crash in Apache 2 with 413 ErrorHandler). (Ilia)</li> +<li><?php bugfix(39151); ?> (Parse error in recursiveiteratoriterator.php). (Marcus)</li> +<li><?php bugfix(39121); ?> (Incorrect return array handling in non-wsdl soap client). (Dmitry)</li> +<li><?php bugfix(39090); ?> (DirectoryFilterDots doxygen docs and example is wrong). (Marcus)</li> +<li><?php bugfix(38852); ?> (XML-RPC Breaks iconv). (Hannes)</li> +<li><?php bugfix(38770); ?> (unpack() broken with longs on 64 bit machines). (Ilia, David Soria Parra).</li> +<li><?php bugfix(38698); ?> (for some keys cdbmake creates corrupted db and cdb can't read valid db). (Marcus)</li> +<li><?php bugfix(38680); ?> (Added missing handling of basic types in json_decode). (Ilia)</li> +<li><?php bugfix(38604); ?> (Fixed request time leak inside foreach() when iterating through virtual properties). (Dmitry)</li> +<li><?php bugfix(38602); ?> (header( "HTTP/1.0 ..." ) does not change proto version). (Ilia)</li> +<li><?php bugfix(38542); ?> (proc_get_status() returns wrong PID on windows). (Nuno)</li> +<li><?php bugfix(38536); ?> (SOAP returns an array of values instead of an object). (Dmitry)</li> +<li><?php bugfix(38456); ?> (Apache2 segfaults when virtual() is called in .php ErrorDocument). (Ilia)</li> +<li><?php bugfix(38325); ?> (spl_autoload_register() gives wrong line for "class not found"). (Ilia)</li> +<li><?php bugfix(38319); ?> (Remove bogus warnings from persistent PDO connections). (Ilia)</li> +<li><?php bugfix(38274); ?> (Memlimit fatal error sent to "wrong" stderr when using fastcgi). (Dmitry)</li> +<li><?php bugfix(38252); ?> (Incorrect PDO error message on invalid default fetch mode). (Ilia)</li> +<li><?php bugfix(37927); ?> (Prevent trap when COM extension processes argument of type VT_DISPATCH|VT_REF) (Andy)</li> +<li><?php bugfix(37773); ?> (iconv_substr() gives "Unknown error" when string length = 1"). (Ilia)</li> +<li><?php bugfix(37627); ?> (session save_path check checks the parent directory). (Ilia)</li> +<li><?php bugfix(37619); ?> (proc_open() closes stdin on fork() failure). (jdolecek at NetBSD dot org, Nuno)</li> +<li><?php bugfix(37588); ?> (COM Property propputref converts to PHP function and can't be accesed). (Rob)</li> +<li><?php bugfix(36975); ?> (natcasesort() causes array_pop() to misbehave). (Hannes)</li> +<li><?php bugfix(36812); ?> (pg_execute() modifies input array). (Ilia)</li> +<li><?php bugfix(36798); ?> (Error parsing named parameters with queries containing high-ascii chars). (Ilia)</li> +<li><?php bugfix(36644); ?> (possible crash in variant_date_from_timestamp()). (Ilia)</li> +<li><?php bugfix(36427); ?> (proc_open() / proc_close() leak handles on windows). (jdolecek at NetBSD dot org, Nuno)</li> +<li><?php bugfix(36392); ?> (wrong number of decimal digits with %e specifier in sprintf). (Matt,Ilia)</li> +<li><?php bugfix(36214); ?> (__get method works properly only when conditional operator is used). (Dmitry)</li> +<li><?php bugfix(35634); ?> (Erroneous "Class declarations may not be nested" error raised). (Carl P. Corliss, Dmitry)</li> +<li><?php bugfix(35106); ?> (nested foreach fails when array variable has a reference). (Dmitry)</li> +<li><?php bugfix(34564); ?> (COM extension not returning modified "out" argument) (Andy)</li> +<li><?php bugfix(33734); ?> (Something strange with COM Object). (Rob)</li> +<li><?php bugfix(33386); ?> (ScriptControl only sees last function of class). (Rob)</li> +<li><?php bugfix(33282); ?> (Re-assignment by reference does not clear the is_ref flag) (Ilia, Dmitry, Matt Wilmas)</li> +<li><?php bugfix(30074); ?> (apparent symbol table error with extract($blah, EXTR_REFS)) (Brian)</li> +<li><?php bugfix(29840); ?> (is_executable() does not honor safe_mode_exec_dir setting). (Ilia)</li> +<li>Fixed PECL bug #7295 (ORA-01405: fetched column value is NULL on LOB fields). (Tony)</li> + +</ul> + +<hr /> + <a name="5.2.0"></a> <h3>Version 5.2.0</h3> <b>02-Nov-2006</b> http://cvs.php.net/viewvc.cgi/phpweb/UPDATE_5_2.txt?r1=1.2&r2=1.3&diff_format=u Index: phpweb/UPDATE_5_2.txt diff -u phpweb/UPDATE_5_2.txt:1.2 phpweb/UPDATE_5_2.txt:1.3 --- phpweb/UPDATE_5_2.txt:1.2 Fri Nov 3 10:59:32 2006 +++ phpweb/UPDATE_5_2.txt Fri Feb 9 00:17:27 2007 @@ -173,6 +173,25 @@ you to fine-grain the levels of the messages stored. +============================== +Backwards incompatible changes +============================== + +In the PHP core +=============== +getrusage() will return NULL when passed incompatible arguments +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/standard/microtime.c?r1=1.57&r2=1.58 && ?r1=1.53.2.2&r2=1.53.2.2.2.1 + +In ext/zip +========== +ZipArchive::setCommentName() now returns TRUE on success +ZipArchive::setCommentIndex() now return TRUE on success +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.c?r1=1.1.2.15&r2=1.1.2.16 + +In ext/spl +========== +SplFileObject::getFilename() now returns the filename, not relative/path/to/file +As of 5.2.1 #See http://cvs.php.net/viewcvs.cgi/php-src/ext/spl/spl_directory.c?r1=1.45.2.27.2.10&r2=1.45.2.27.2.11 ================== NEW ERROR MESSAGES ================== @@ -198,6 +217,15 @@ strrpos("foo", "f", 4); /* Notice: strrpos(): Offset is greater than the length of haystack string in filename on line n */ +/* when allow_url_include is OFF (default) */ +include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+"; +/* Warning: include(): URL file-access is disabled in the server configuration in filename on line n */ + +/* when allow_url_include is OFF (default) */ +include "php://input"; +/* Warning: include(): URL file-access is disabled in the server configuration in filename on line n */ +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/standard/php_fopen_wrapper.c?r1=1.45.2.4.2.3&r2=1.45.2.4.2.4 + ?> OO related in the PHP core @@ -309,6 +337,19 @@ ?> +In the date extension +===================== + +<?php + +strtotime("today", "now");' +/* Warning: strtotime() expects parameter 2 to be long, string given in filename on line n */ + +new DateTime(new stdclass); +/* Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() expects parameter 1 to be string, object given' in filename:n */ +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.43.2.45.2.33&r2=1.43.2.45.2.34 +?> + In the dBase extension ====================== @@ -317,6 +358,9 @@ dbase_open("foo", -1); /* Warning: Invalid access mode -1 in filename on line n */ +dbase_open("foo", null); +/* Warning: The filename cannot be empty in filename on line n */ +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/dbase/dbase.c?r1=1.74.2.2.2.5&r2=1.74.2.2.2.6&diff_format=u ?> In the mcrypt extension @@ -368,6 +412,27 @@ ?> +In the sysvmsg extension +======================== +<?php + +/* Warning: maximum size of the message has to be greater then zero in filename on line n */ + +?> + +In the Zip extension +==================== +<?php +$obj = new ZipArchive(); +$obj->open("archive.zip"); +$obj->setCommentName("", "comment");' +/* Notice: ZipArchive::setCommentName(): Empty string as entry name in filename on line n */ + +$obj->getCommentName(""); +/* Notice: ZipArchive::getCommentName(): Empty string as entry name in filename on line n */ +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.c?r1=1.1.2.15&r2=1.1.2.16 +?> + ============ NEW FEATURES @@ -692,6 +757,12 @@ boolean XMLReader::setSchema(string filename) Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read() +In ext/zip +========== + ZipArchive: + bool addEmptyDir(string dirname) + Creates an empty directory in the archive +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.c?r1=1.1.2.15&r2=1.1.2.16 New class constants =================== @@ -730,6 +801,9 @@ - Returns numerically indexed array with all timezone identifiers string timezone_name_from_abbr(string abbr[, long gmtOffset[, long isdst]]) - Returns the timezone name from abbreviation +As of 5.2.1: #See http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.58.2.6.2.9&r2=1.58.2.6.2.10&diff_format=u + int stream_socket_shutdown(resource stream, int how) + - Causes all or part of a full-duplex connection on the socket associated with stream to be shut down In ext/mbstring =============== @@ -750,6 +824,16 @@ string mb_strstr(string haystack, string needle[, bool part[, string encoding]]) - Finds first occurrence of a string within another +In ext/ming +=========== +As of 5.2.1: See http://cvs.php.net/viewvc.cgi/php-src/ext/ming/ming.c?r1=1.79.2.4.2.4&r2=1.79.2.4.2.5&diff_format=u + void ming_setSWFCompression(int num) + - Sets output compression + void swfmovie::namedanchor(string name) + - Creates anchor + void swfmovie::protect([string pasword]) + - Protects + In ext/openssl ============== resource openssl_csr_get_public_key(mixed csr) @@ -792,6 +876,13 @@ - End current element - returns FALSE on error bool xmlwriter_write_raw(resource xmlwriter, string content) - Write text - returns FALSE on error +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/xmlwriter/php_xmlwriter.c?r1=1.20.2.12.2.8&r2=1.20.2.12.2.9 + bool xmlwriter_start_dtd_entity(resource xmlwriter, string name, bool isparam) + - Create start DTD Entity - returns FALSE on error + bool xmlwriter_end_dtd_entity(resource xmlwriter) + - End current DTD Entity - returns FALSE on error + bool xmlwriter_write_dtd_entity(resource xmlwriter, string name, string content [, bool pe [, string pubid [, string sysid [, string ndataid]]]]) + - Write full DTD Entity tag - returns FALSE on error New optional parameters @@ -809,10 +900,21 @@ =========== - array curl_multi_info_read(resource mh [, long msgs_in_queue]) (msgs_in_queue) +In ext/imap +=========== + - resource imap_open ( string mailbox, string username, string password [, int options[, int n_retries]]) (n_retries) + - bool imap_reopen(resource stream_id, string mailbox [, int options [, int n_retries]]) (n_retries) +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.7&r2=1.208.2.7.2.8 + In ext/mbstring =============== - int mb_strrpos(string haystack, string needle [, int offset [, string encoding]]) (offset) +In ext/ming +=========== + - int swfmovie::streamMP3(mixed file [, float skip]) (skip) +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/ming/ming.c?r1=1.79.2.4.2.3&r2=1.79.2.4.2.4 + In ext/openssl ============== - int openssl_verify(string data, string signature, mixed key [, int signature_algo]) (signature_algo) @@ -830,6 +932,11 @@ - SimpleXMLElement simplexml_load_file(string filename [, string class_name [, int options [, string ns [, bool is_prefix]]]]) (ns, is_prefix) - SimpleXMLElement simplexml_load_string(string data [, string class_name [, int options [, string ns [, bool is_prefix]]]]) (ns, is_prefix) +In ext/spl +========== + - array iterator_to_array(Traversable it [, bool use_keys = true]) (use_keys) +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_iterators.c?r1=1.73.2.30.2.20&r2=1.73.2.30.2.21 + In ext/xmlreader ================ - boolean XMLReader::open(string URI [, string encoding [, int options]]) (encoding, options) @@ -860,6 +967,10 @@ - PREG_NO_ERROR - PREG_RECURSION_LIMIT_ERROR - UPLOAD_ERR_EXTENSION +As of 5.2.1: (See http://cvs.php.net/viewvc.cgi/php-src/ext/standard/file.c?r1=1.409.2.6.2.13&r2=1.409.2.6.2.14&diff_format=u) + - STREAM_SHUT_RD + - STREAM_SHUT_WR + - STREAM_SHUT_RDWR In ext/curl =========== @@ -876,6 +987,25 @@ - CURLOPT_FTP_SSL - CURLOPT_FTPSSLAUTH +In ext/ming +=========== +As of 5.2.1: See http://cvs.php.net/viewvc.cgi/php-src/ext/ming/ming.c?r1=1.79.2.4.2.4&r2=1.79.2.4.2.5&diff_format=u + - SWFTEXTFIELD_USEFONT + - SWFTEXTFIELD_AUTOSIZE + - SWF_SOUND_NOT_COMPRESSED + - SWF_SOUND_ADPCM_COMPRESSED + - SWF_SOUND_MP3_COMPRESSED + - SWF_SOUND_NOT_COMPRESSED_LE + - SWF_SOUND_NELLY_COMPRESSED + - SWF_SOUND_5KHZ + - SWF_SOUND_11KHZ + - SWF_SOUND_22KHZ + - SWF_SOUND_44KHZ + - SWF_SOUND_8BITS + - SWF_SOUND_16BITS + - SWF_SOUND_MONO + - SWF_SOUND_STEREO + In ext/openssl ============== - OPENSSL_VERSION_NUMBER http://cvs.php.net/viewvc.cgi/phpweb/downloads.php?r1=1.271&r2=1.272&diff_format=u Index: phpweb/downloads.php diff -u phpweb/downloads.php:1.271 phpweb/downloads.php:1.272 --- phpweb/downloads.php:1.271 Fri Dec 8 02:44:10 2006 +++ phpweb/downloads.php Fri Feb 9 00:17:27 2007 @@ -1,5 +1,5 @@ <?php -// $Id: downloads.php,v 1.271 2006/12/08 02:44:10 bjori Exp $ +// $Id: downloads.php,v 1.272 2007/02/09 00:17:27 iliaa Exp $ $_SERVER['BASE_PAGE'] = 'downloads.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc'; @@ -74,33 +74,41 @@ ?> <a name="v5"></a> -<h1>PHP 5.2.0</h1> +<h1>PHP 5.2.1</h1> <h2>Complete Source Code</h2> <ul> <li> - <?php download_link('php-5.2.0.tar.bz2', 'PHP 5.2.0 (tar.bz2)'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: e6029fafcee029edcfa2ceed7a005333</span> + <?php download_link('php-5.2.1.tar.bz2', 'PHP 5.2.1 (tar.bz2)'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: 261218e3569a777dbd87c16a15f05c8d</span> </li> <li> - <?php download_link('php-5.2.0.tar.gz', 'PHP 5.2.0 (tar.gz)'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: 52d7e8b3d8d7573e75c97340f131f988</span> + <?php download_link('php-5.2.1.tar.gz', 'PHP 5.2.1 (tar.gz)'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: 604eaee2b834bb037d2c83e53e300d3f</span> </li> </ul> <h2>Windows Binaries</h2> <ul> <li> - <?php download_link('php-5.2.0-Win32.zip', 'PHP 5.2.0 zip package'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: 910734e96f41190020272d80b82ce553</span> + <?php download_link('php-5.2.1-Win32.zip', 'PHP 5.2.1 zip package'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: 682dd66fb03c7dd24c522f474e1b04b6</span> </li> <li> - <?php download_link('php-5.2.0-win32-installer.msi', 'PHP 5.2.0 installer'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: 1521d6e9b273299ebd8081d174146d22</span> + <?php download_link('php-5.2.1-win32-installer.msi', 'PHP 5.2.1 installer'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: cc2ba36fa05d186e26f96755207a7826</span> </li> <li> - <?php download_link('pecl-5.2.0-Win32.zip', 'Collection of PECL modules for PHP 5.2.0'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: 638f5997884ae3ce35d2b3ec12f399b2</span> + <?php download_link('php-5.2.1-nts-Win32.zip', 'PHP 5.2.1 Non-thread-safe Win32 binaries'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: 815c8c61af58fffdc34d34c24310ffe2</span> + </li> + <li> + <?php download_link('pecl-5.2.1-Win32.zip', 'PECL 5.2.1 Win32 binaries'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: dc8b394146faf7effa6f26df02e8e534</span> + </li> + <li> + <?php download_link('pecl-5.2.1-Win32.zip', 'PECL 5.2.1 Non-thread-safe Win32 binaries'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: ffd78a31a704d68c8adadc9288261583</span> </li> </ul> http://cvs.php.net/viewvc.cgi/phpweb/index.php?r1=1.852&r2=1.853&diff_format=u Index: phpweb/index.php diff -u phpweb/index.php:1.852 phpweb/index.php:1.853 --- phpweb/index.php:1.852 Thu Feb 8 17:01:51 2007 +++ phpweb/index.php Fri Feb 9 00:17:27 2007 @@ -146,6 +146,61 @@ // DO NOT REMOVE THIS COMMENT (the RSS parser is dependant on it) ?> +<h1>PHP 5.2.1 Released</h1> +<p> + <span class="newsdate">[08-Feb-2007]</span> + The PHP development team would like to announce the immediate available for PHP 5.2.1. + This release is a major stability and security enhancement of the 5.X branch, and all + users are strongly encouraged to upgrade to it as soon as possible. + Further details about this release can be found in the release announcement + <a href="/releases/5_2_1.php">5.2.1</a>, the full list of changes is + available in the ChangeLog <a href="/ChangeLog-5.php#5.2.1">PHP 5</a>. +</p> + +<p> +<b>Security Enhancements and Fixes in PHP 5.2.1:</b> +</p> +<ul> + <li>Fixed a possible safe_mode & open_basedir bypasses inside the session extension.</li> + <li>Prevent search engine from indexing the phpinfo() page.</li> + <li>Fixed a number of input processing bugs inside the filter extension.</li> + <li>Fixed unserialize() abuse on 64 bit systems with certain input strings.</li> + <li>Fixed possible overflows and stack corruptions in the session extension.</li> + <li>Fixed an underflow inside the internal sapi_header_op() function.</li> + <li>Fixed allocation bugs caused by attempts to allocate negative values in some code paths.</li> + <li>Fixed possible stack overflows inside zip, imap & sqlite extensions.</li> + <li>Fixed several possible buffer overflows inside the stream filters.</li> + <li>Fixed non-validated resource destruction inside the shmop extension.</li> + <li>Fixed a possible overflow in the str_replace() function.</li> + <li>Fixed possible clobbering of super-globals in several code paths.</li> + <li>Fixed a possible information disclosure inside the wddx extension.</li> + <li>Fixed a possible string format vulnerability in *print() functions on 64 bit systems.</li> + <li>Fixed a possible buffer overflow inside mail() and ibase_{delete,add,modify}_user() functions.</li> + <li>Fixed a string format vulnerability inside the odbc_result_all() function.</li> + <li>Memory limit is now enabled by default.</li> + <li>Added internal heap protection.</li> + <li>Extended filter extension support for $_SERVER IN cgi AND apache2 SAPIs.</li> +</ul> + + +<p> +Majority of the security vulnerabilities discovered and resolved can in most +cases be only abused by local users and cannot be triggered remotely. +However, some of the above issues can be triggered remotely and in shared +hosting environments based on Apache module even local exploits can present +a critical danger. Therefor we strongly advise all users of PHP, regardless +of the version to upgrade to 5.2.1 release as soon as possible. +</p> + +<p> +For users upgrading from PHP 5.0 and PHP 5.1 there is an upgrading guide +available <a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases +and PHP 5.2.1. +</p> + +<hr /> + + <h1>The front page has changed</h1> <p> <span class="newsdate">[08-Feb-2007]</span> http://cvs.php.net/viewvc.cgi/phpweb/releases/index.php?r1=1.4&r2=1.5&diff_format=u Index: phpweb/releases/index.php diff -u phpweb/releases/index.php:1.4 phpweb/releases/index.php:1.5 --- phpweb/releases/index.php:1.4 Thu Nov 2 18:03:50 2006 +++ phpweb/releases/index.php Fri Feb 9 00:17:27 2007 @@ -1,5 +1,5 @@ <?php -// $Id: index.php,v 1.4 2006/11/02 18:03:50 iliaa Exp $ +// $Id: index.php,v 1.5 2007/02/09 00:17:27 iliaa Exp $ $_SERVER['BASE_PAGE'] = 'releases/index.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc'; @@ -92,6 +92,7 @@ <option value="php-5.1.4.tar.gz">5.1.4</option> <option value="php-5.1.5.tar.gz">5.1.5</option> <option value="php-5.1.6.tar.gz">5.1.6</option> + <option value="php-5.2.0.tar.gz">5.2.0</option> </select> </p> </form> @@ -111,6 +112,38 @@ </p> <a name="v5"></a> +<a name="5.2.0"></a> +<h2>5.2.0</h2> + +<ul> + <li>Released: 02 Nov 2006</li> + <li>Announcement: <a href="/releases/5_2_0.php">English</a></li> + <li><a href="/ChangeLog-5.php#5.2.0">ChangeLog</a></li> + <li> + Download: + <ul> + <li> + <?php download_link('php-5.2.0.tar.bz2','Source (tar.bz2)'); ?><br /> + <span class="md5sum">md5: e6029fafcee029edcfa2ceed7a005333</span> + </li> + <li> + <?php download_link('php-5.2.0.tar.gz','Source (tar.gz)'); ?><br /> + <span class="md5sum">md5: 52d7e8b3d8d7573e75c97340f131f988</span> + </li> + <li> + <?php download_link('php-5.2.0-Win32.zip','Windows binary'); ?><br /> + <span class="md5sum">md5: 910734e96f41190020272d80b82ce553</span> + </li> + <li> + <?php download_link('pecl-5.2.0-Win32.zip','Collection of PECL modules for PHP 5.2.0'); ?><br /> + <span class="md5sum">md5: 638f5997884ae3ce35d2b3ec12f399b2</span> + </li> + </ul> + </li> +</ul> + + +<a name="v5"></a> <a name="5.1.6"></a> <h2>5.1.6</h2> http://cvs.php.net/viewvc.cgi/phpweb/releases/5_2_1.php?view=markup&rev=1.1 Index: phpweb/releases/5_2_1.php +++ phpweb/releases/5_2_1.php <?php // $Id: 5_2_1.php,v 1.1 2007/02/09 00:17:27 iliaa Exp $ $_SERVER['BASE_PAGE'] = 'releases/5_2_1.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc'; site_header("PHP 5.2.1 Release Announcement"); ?> <h1>PHP 5.2.1 Release Announcement</h1> <p> The PHP development team would like to announce the immediate available for PHP 5.2.1. This release is a major stability and security enhancement of the 5.X branch, and all users are strongly encouraged to upgrade to it as soon as possible. </p> <p> <b>Security Enhancements and Fixes in PHP 5.2.1:</b> </p> <ul> <li>Fixed a possible safe_mode & open_basedir bypasses inside the session extension.</li> <li>Prevent search engine from indexing the phpinfo() page.</li> <li>Fixed a number of input processing bugs inside the filter extension.</li> <li>Fixed unserialize() abuse on 64 bit systems with certain input strings.</li> <li>Fixed possible overflows and stack corruptions in the session extension.</li> <li>Fixed an underflow inside the internal sapi_header_op() function.</li> <li>Fixed allocation bugs caused by attempts to allocate negative values in some code paths.</li> <li>Fixed possible stack overflows inside zip, imap & sqlite extensions.</li> <li>Fixed several possible buffer overflows inside the stream filters.</li> <li>Fixed non-validated resource destruction inside the shmop extension.</li> <li>Fixed a possible overflow in the str_replace() function.</li> <li>Fixed possible clobbering of super-globals in several code paths.</li> <li>Fixed a possible information disclosure inside the wddx extension.</li> <li>Fixed a possible string format vulnerability in *print() functions on 64 bit systems.</li> <li>Fixed a possible buffer overflow inside mail() and ibase_{delete,add,modify}_user() functions.</li> <li>Fixed a string format vulnerability inside the odbc_result_all() function.</li> <li>Memory limit is now enabled by default.</li> <li>Added internal heap protection.</li> <li>Extended filter extension support for $_SERVER IN cgi AND apache2 SAPIs.</li> </ul> <p> Majority of the security vulnerabilities discovered and resolved can in most cases be only abused by local users and cannot be triggered remotely. However, some of the above issues can be triggered remotely and in shared hosting environments based on Apache module even local exploits can present a critical danger. Therefor we strongly advise all users of PHP, regardless of the version to upgrade to 5.2.1 release as soon as possible. </p> <p> <b>The key improvements of PHP 5.2.1 include:</b> </p> <ul> <li>Several performance improvements in the engine, streams API and some Windows specific optimizations</li> <li>PDO_MySQL now uses buffered queries by default and emulates prepared statements to bypass limitation of MySQL's prepared statement API.</li> <li>Many improvements and enhancements to the filter and zip extesions.</li> <li>Memory limit is now always enabled, this includes Windows builds, with a default limit of 128 megabytes.</li> <li>Added several performance optimizations using faster Win32 APIs (this change means that PHP no longer supports Windows 98).</li> <li>FastCGI speed optimized build of PHP for Windows made available for downloading.</li> <li>Over 180 various bug fixes.</li> </ul> <p> For users upgrading from PHP 5.0 and PHP 5.1 there is an upgrading guide available <a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases and PHP 5.2.1. </p> <p> For a full list of changes in PHP 5.2.1, see the <a href="/ChangeLog-5.php#5.2.1">ChangeLog</a>. </p> <?php site_footer(); ?>
http://cvs.php.net/viewvc.cgi/phpweb/ChangeLog-5.php?r1=1.41&r2=1.42&diff_format=u Index: phpweb/ChangeLog-5.php diff -u phpweb/ChangeLog-5.php:1.41 phpweb/ChangeLog-5.php:1.42 --- phpweb/ChangeLog-5.php:1.41 Thu Nov 2 20:29:40 2006 +++ phpweb/ChangeLog-5.php Fri Feb 9 00:17:27 2007 @@ -1,5 +1,5 @@ <?php -// $Id: ChangeLog-5.php,v 1.41 2006/11/02 20:29:40 bjori Exp $ +// $Id: ChangeLog-5.php,v 1.42 2007/02/09 00:17:27 iliaa Exp $ $_SERVER['BASE_PAGE'] = 'ChangeLog-5.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc'; site_header("PHP 5 ChangeLog"); @@ -11,6 +11,279 @@ <hr /> +<a name="5.2.1"></a> +<h3>Version 5.2.1</h3> +<b>08-Feb-2007</b> +<ul> +<li>Added CURLOPT_TCP_NODELAY constant to Curl extension. (Sara)</li> +<li>Added support for hex numbers of any size. (Matt)</li> +<li>Added function stream_socket_shutdown(). It is a wrapper for system shutdown() function, that shut downs part of a full-duplex connection. (Dmitry)</li> +<li>Added internal heap protection (Dmitry)</li> + <ul> + <li>memory-limit is always enabled (--enable-memory-limit removed)</li> + <li>default value if memory-limit is set to 128M</li> + <li>safe unlinking</li> + <li>cookies</li> + <li>canary protection (debug build only)</li> + <li>random generation of cookies and canaries</li> + </ul> +</li> +<li>Added forward support for 'b' prefix in front of string literals. (Andrei)</li> +<li>Added three new functions to ext/xmlwriter (Rob, Ilia)</li> + <ul> + <li>xmlwriter_start_dtd_entity()</li> + <li>xmlwriter_end_dtd_entity()</li> + <li>xmlwriter_write_dtd_entity()</li> + </ul> +</li> +<li>Added a meta tag to phpinfo() output to prevent search engines from indexing the page. (Ilia)</li> +<li>Added new function, sys_get_temp_dir(). (Hartmut)</li> +<li>Added missing object support to file_put_contents(). (Ilia)</li> +<li>Added support for md2, ripemd256 and ripemd320 algos to hash(). (Sara)</li> +<li>Added forward support for (binary) cast. (Derick)</li> +<li>Added optimization for imageline with horizontal and vertical lines (Pierre)</li> + +<li>Removed dependency from SHELL32.DLL. (Dmitry)</li> +<li>Removed double "wrong parameter count" warnings in various functions. (Hannes)</li> +<li>Moved extensions to PECL: + <ul> + <li>ext/informix (Derick, Tony)</li> + </ul> +</li> +<li>Changed double-to-string utilities to use BSD implementation. (Dmitry, Tony)</li> +<li>Updated bundled libcURL to version 7.16.0 in the Windows distro. (Edin)</li> +<li>Updated timezone database to version 2006.16. (Derick)</li> +<li>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).</li> +<li>Improved proc_open(). Now on Windows it can run external commands not through CMD.EXE. (Dmitry)</li> +<li>VCWD_REALPATH() is improved to use realpath cache without VIRTUAL_DIR. (Dmitry)</li> +<li>ext/bcmath initialization code is moved from request startup to module startup. (Dmitry)</li> +<li>Zend Memory Manager Improvements (Dmitry)</li> + <ul> + <li>use HeapAlloc() instead of VirtualAlloc()</li> + <li>use "win32" storage manager (instead of "malloc") on Windows by default</li> + </ul> +</li> +<li>Zip Extension Improvements (Pierre) + <ul> + <li>Fixed leak in statName and stateIndex</li> + <li>Fixed return setComment (Hannes)</li> + <li>Added addEmptyDir method</li> + </ul> +</li> +<li>Filter Extension Improvements (Ilia, Pierre) + <ul> + <li>Fixed a bug when callback function returns a non-modified value.</li> + <li>Added filter support for $_SERVER in cgi/apache2 sapis.</li> + <li>Make sure PHP_SELF is filtered in Apache 1 sapi.</li> + <li><?php bugfix(39358); ?> (INSTALL_HEADERS contains incorrect reference to php_filter.h).</li> + <li>Added "default" option that allows a default value to be set for an invalid or missing value.</li> + <li>Invalid filters fails instead of returning unsafe value</li> + <li>Fixed possible double encoding problem with sanitizing filters</li> + <li>Make use of space-strict strip_tags() function</li> + <li>Fixed whitespace trimming</li> + <li>Added support for FastCGI environment variables. (Dmitry)</li> + </ul> +</li> +<li>PDO_MySQL Extension Improvements (Ilia) + <ul> + <li>Enabled buffered queries by default.</li> + <li>Enabled prepared statement emulation by default.</li> + </ul> +</li> + +<li>Small optimization of the date() function. (Matt,Ilia)</li> +<li>Optimized the internal is_numeric_string() function. (Matt,Ilia)</li> +<li>Optimized array functions utilizing php_splice(). (Ilia)</li> +<li>Windows related optimizations (Dmitry, Stas)</li> + <ul> + <li>COM initialization/deinitialization are done only if necessary</li> + <li>removed unnecessary checks for ISREG file and corresponding stat() calls</li> + <li>opendir() is reimplementation using GetFistFile/GetNextFile those are faster then _findfirst/_findnext</li> + <li>implemented registry cache that prevent registry lookup on each request. In case of modification of corresponding registry-tree PHP will reload it automatic</li> + <li>start timeout thread only if necessary</li> + <li>stat() is reimplementation using GetFileAttributesEx(). The new implementation is faster then implementation in MS VC CRT, but it doesn't support Windows 95.</li> + </ul> +</li> +<li>Streams optimization (Dmitry) + <ul> + <li>removed unnecessary ftell() calls (one call for each included PHP file)</li> + <li>disabled calls to read() after EOF</li> + </ul> +</li> + +<li>Fixed incorrect function names on FreeBSD where inet_pton() was named __inet_pton() and inet_ntop() was named __inet_ntop(). (Hannes)</li> +<li>Fixed FastCGI impersonation for persistent connections on Windows. (Dmitry)</li> +<li>Fixed wrong signature initialization in imagepng (Takeshi Abe)</li> +<li>Fixed ftruncate() with negative size on FreeBSD. (Hannes)</li> +<li>Fixed segfault in RegexIterator when given invalid regex. (Hannes)</li> +<li>Fixed segfault in SplFileObject->openFile()->getPathname(). (Hannes)</li> +<li>Fixed segfault in ZTS mode when OCI8 statements containing sub-statements are destroyed in wrong order. (Tony)</li> +<li>Fixed the validate email filter so that the letter "v" can also be used in the user part of the email address. (Derick)</li> +<li><?php bugfix(40297); ?> (compile failure in ZTS mode when collections support is missing). (Tony)</li> +<li><?php bugfix(40285); ?> (The PDO prepare parser goes into an infinite loop in some instances). (Ilia)</li> +<li><?php bugfix(40274); ?> (Sessions fail with numeric root keys). (Ilia)</li> +<li><?php bugfix(40259); ?> (ob_start call many times - memory error). (Dmitry)</li> +<li><?php bugfix(40231); ?> (file_exists incorrectly reports false). (Dmitry)</li> +<li><?php bugfix(40228); ?> (ZipArchive::extractTo does create empty directories recursively). (Pierre)</li> +<li><?php bugfix(40200); ?> (The FastCgi version has different realpath results than thread safe version). (Dmitry)</li> +<li><?php bugfix(40191); ?> (use of array_unique() with objects triggers segfault). (Tony)</li> +<li><?php bugfix(40189); ?> (possible endless loop in zlib.inflate stream filter). (Greg, Tony)</li> +<li><?php bugfix(40169); ?> (CURLOPT_TCP_NODELAY only available in curl >= 7.11.2). (Tony)</li> +<li><?php bugfix(40129); ?> (iconv extension doesn't compile with CodeWarrior on Netware). (gk at gknw dot de, Tony)</li> +<li><?php bugfix(40127); ?> (apache2handler doesn't compile on Netware). (gk at gknw dot de)</li> +<li><?php bugfix(40121); ?> (PDO_DBLIB driver wont free statements). (Ilia)</li> +<li><?php bugfix(40098); ?> (php_fopen_primary_script() not thread safe). (Ilia)</li> +<li><?php bugfix(40092); ?> (chroot() doesn't clear realpath cache). (Dmitry)</li> +<li><?php bugfix(40091); ?> (spl_autoload_register with 2 instances of the same class). (Ilia)</li> +<li><?php bugfix(40083); ?> (milter SAPI functions always return false/null). (Tony)</li> +<li><?php bugfix(40079); ?> (php_get_current_user() not thread safe). (Ilia, wharmby at uk dot ibm dot com)</li> +<li><?php bugfix(40078); ?> (ORA-01405 when fetching NULL values using oci_bind_array_by_name()). (Tony)</li> +<li><?php bugfix(40076); ?> (zend_alloc.c: Value of enumeration constant must be in range of signed integer). (Dmitry)</li> +<li><?php bugfix(40073); ?> (exif_read_data dies on certain images). (Tony, Marcus)</li> +<li><?php bugfix(40036); ?> (empty() does not work correctly with ArrayObject when using ARRAY_AS_PROPS). (Ilia)</li> +<li><?php bugfix(40012); ?> (php_date.c doesn't compile on Netware). (gk at gknw dot de, Derick)</li> +<li><?php bugfix(40009); ?> (http_build_query(array()) returns NULL). (Ilia)</li> +<li><?php bugfix(40002); ?> (Try/Catch performs poorly). (Dmitry)</li> +<li><?php bugfix(39993); ?> (tr_TR.UTF-8 locale has problems with PHP). (Ilia)</li> +<li><?php bugfix(39990); ?> (Cannot "foreach" over overloaded properties). (Dmitry)</li> +<li><?php bugfix(39988); ?> (type argument of oci_define_by_name() is ignored). (Chris Jones, Tony)</li> +<li><?php bugfix(39984); ?> (redirect response code in header() could be ignored in CGI sapi). (Ilia)</li> +<li><?php bugfix(39979); ?> (PGSQL_CONNECT_FORCE_NEW will causes next connect to establish a new connection). (Ilia)</li> +<li><?php bugfix(39971); ?> (pg_insert/pg_update do not allow now() to be used for timestamp fields). (Ilia)</li> +<li><?php bugfix(39969); ?> (ini setting short_open_tag has no effect when using --enable-maintainer-zts). (Dmitry)</li> +<li><?php bugfix(39952); ?> (zip ignoring --with-libdir on zlib checks) (judas dot iscariote at gmail dot com)</li> +<li><?php bugfix(39944); ?> (References broken). (Dmitry)</li> +<li><?php bugfix(39935); ?> (Extensions tidy,mcrypt,mhash,pdo_sqlite ignores --with-libdir). (judas dot iscariote at gmail dot com, Derick)</li> +<li><?php bugfix(39903); ?> (Notice message when executing __halt_compiler() more than once). (Tony)</li> +<li><?php bugfix(39898); ?> (FILTER_VALIDATE_URL validates \r\n\t etc). (Ilia)</li> +<li><?php bugfix(39890); ?> (using autoconf 2.6x and --with-layout=GNU breaks PEAR install path). (Tony)</li> +<li><?php bugfix(39884); ?> (ReflectionParameter::getClass() throws exception for type hint self). (thekid at php dot net)</li> +<li><?php bugfix(39878); ?> (CURL doesn't compile on Sun Studio Pro). (Ilia)</li> +<li><?php bugfix(39873); ?> (number_format() breaks with locale & decimal points). (Ilia)</li> +<li><?php bugfix(39869); ?> (safe_read does not initialize errno). (michiel at boland dot org, Dmitry)</li> +<li><?php bugfix(39850); ?> (SplFileObject throws contradictory/wrong error messages when trying to open "php://wrong"). (Tony)</li> +<li><?php bugfix(39846); ?> (Invalid IPv4 treated as valid). (Ilia)</li> +<li><?php bugfix(39845); ?> (Persistent connections generate a warning in pdo_pgsql). (Ilia)</li> +<li><?php bugfix(39832); ?> (SOAP Server: parameter not matching the WSDL specified type are set to 0). (Dmitry)</li> +<li><?php bugfix(39825); ?> (foreach produces memory error). (Dmitry)</li> +<li><?php bugfix(39816); ?> (apxs2filter ignores httpd.conf & .htaccess php config settings). (Ilia)</li> +<li><?php bugfix(39815); ?> (SOAP double encoding is not locale-independent). (Dmitry)</li> +<li><?php bugfix(39797); ?> (virtual() does not reset changed INI settings). (Ilia) </li> +<li><?php bugfix(39795); ?> (build fails on AIX because crypt_r() uses different data struct). (Tony)</li> +<li><?php bugfix(39791); ?> (Crash in strtotime() on overly long relative date multipliers). (Ilia)</li> +<li><?php bugfix(39787); ?> (PHP doesn't work with Apache 2.3). (mv at binarysec dot com).</li> +<li><?php bugfix(39782); ?> (setTime() on a DateTime constructed with a Weekday yields incorrect results). (Ilia)</li> +<li><?php bugfix(39780); ?> (PNG image with CRC/data error raises fatal error) (Pierre)</li> +<li><?php bugfix(39779); ?> (Enable AUTH PLAIN mechanism in underlying libc-client). (michael dot heimpold at s2000 dot tu-chemnitz dot de, Ilia)</li> +<li><?php bugfix(39775); ?> ("Indirect modification ..." message is not shown). (Dmitry)</li> +<li><?php bugfix(39763); ?> (magic quotes are applied twice by ext/filter in parse_str()). (Ilia) </li> +<li><?php bugfix(39760); ?> (cloning fails on nested SimpleXML-Object). (Rob)</li> +<li><?php bugfix(39759); ?> (Can't use stored procedures fetching multiple result sets in pdo_mysql). (Ilia)</li> +<li><?php bugfix(39754); ?> (Some POSIX extension functions not thread safe). (Ilia, wharmby at uk dot ibm dot com)</li> +<li><?php bugfix(39751); ?> (putenv crash on Windows). (KevinJohnHoffman at gmail.com)</li> +<li><?php bugfix(39732); ?> (oci_bind_array_by_name doesn't work on Solaris 64bit). (Tony)</li> +<li><?php bugfix(39724); ?> (Broken build due to spl/filter usage of pcre extension). (Tony, Ilia)</li> +<li><?php bugfix(39718); ?> (possible crash if assert.callback is set in ini). (Ilia)</li> +<li><?php bugfix(39702); ?> (php crashes in the allocator on linux-m68k). (Dmitry)</li> +<li><?php bugfix(39685); ?> (iconv() - undefined function). (Hannes)</li> +<li><?php bugfix(39673); ?> (file_get_contents causes bus error on certain offsets). (Tony)</li> +<li><?php bugfix(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)</li> +<li><?php bugfix(39662); ?> (Segfault when calling asXML() of a cloned SimpleXMLElement). (Rob, Tony)</li> +<li><?php bugfix(39656); ?> (crash when calling fetch() on a PDO statment object after closeCursor()). (Ilia, Tony)</li> +<li><?php bugfix(39653); ?> (ext/dba doesn't check for db-4.5 and db-4.4 when db4 support is enabled). (Tony)</li> +<li><?php bugfix(39652); ?> (Wrong negative results from memory_get_usage()). (Dmitry)</li> +<li><?php bugfix(39648); ?> (Implementation of PHP functions chown() and chgrp() are not thread safe). (Ilia, wharmby at uk dot ibm dot com)</li> +<li><?php bugfix(39640); ?> (Segfault with "Allowed memory size exhausted"). (Dmitry)</li> +<li><?php bugfix(39625); ?> (Apache crashes on importStylesheet call). (Rob)</li> +<li><?php bugfix(39623); ?> (thread safety fixes on *nix for putenv() & mime_magic). (Ilia, wharmby at uk dot ibm dot com)</li> +<li><?php bugfix(39621); ?> (str_replace() is not binary safe on strings with equal length). (Tony)</li> +<li><?php bugfix(39613); ?> (Possible segfault in imap initialization due to missing module dependency). (wharmby at uk dot ibm dot com, Tony)</li> +<li><?php bugfix(39606); ?> (Use of com.typelib_file in PHP.ini STILL causes A/V). (Rob)</li> +<li><?php bugfix(39602); ?> (Invalid session.save_handler crashes PHP). (Dmitry)</li> +<li><?php bugfix(39596); ?> (Creating Variant of type VT_ARRAY). (Rob)</li> +<li><?php bugfix(39583); ?> (ftp_put() does not change transfer mode to ASCII). (Tony)</li> +<li><?php bugfix(39576); ?> (array_walk() doesn't separate user data zval). (Tony)</li> +<li><?php bugfix(39575); ?> (move_uploaded_file() no longer working (safe mode related)). (Tony)</li> +<li><?php bugfix(39571); ?> (timeout ssl:// connections). (Ilia)</li> +<li><?php bugfix(39564); ?> (PDO::errorInfo() returns inconsistent information when sqlite3_step() fails). (Tony)</li> +<li><?php bugfix(39548); ?> (ZMSG_LOG_SCRIPT_NAME not routed to OutputDebugString() on Windows). (Dmitry)</li> +<li><?php bugfix(39538); ?> (fgetcsv can't handle starting newlines and trailing odd number of backslashes). (David Soria Parra, Pierre)</li> +<li><?php bugfix(39534); ?> (Error in maths to calculate of ZEND_MM_ALIGNED_MIN_HEADER_SIZE). (wharmby at uk dot ibm dot com, Dmitry)</li> +<li><?php bugfix(39527); ?> (Failure to retrieve results when multiple unbuffered, prepared statements are used in pdo_mysql). (Ilia)</li> +<li><?php bugfix(39508); ?> (imagefill crashes with small images 3 pixels or less). (Pierre)</li> +<li><?php bugfix(39506); ?> (Archive corrupt with ZipArchive::addFile method). (Pierre)</li> +<li><?php bugfix(39504); ?> (xmlwriter_write_dtd_entity() creates Attlist tag, not entity). (Hannes)</li> +<li><?php bugfix(39483); ?> (Problem with handling of \ char in prepared statements). (Ilia, suhachov at gmail dot com)</li> +<li><?php bugfix(39458); ?> (ftp_nlist() returns false on empty dirs). (Nuno)</li> +<li><?php bugfix(39454); ?> (Returning a SOAP array segfaults PHP). (Dmitry)</li> +<li><?php bugfix(39450); ?> (getenv() fills other super-globals). (Ilia, Tony)</li> +<li><?php bugfix(39449); ?> (Overloaded array properties do not work correctly). (Dmitry)</li> +<li><?php bugfix(39445); ?> (Calling debug_backtrace() in the __toString() function produces a crash). (Dmitry)</li> +<li><?php bugfix(39438); ?> (Fatal error: Out of memory). (Dmitry)</li> +<li><?php bugfix(39435); ?> ('foo' instanceof bar gives invalid opcode error). (Sara)</li> +<li><?php bugfix(39414); ?> (Syntax error while compiling with Sun Workshop Complier). (Johannes)</li> +<li><?php bugfix(39398); ?> (Booleans are not automatically translated to integers). (Ilia)</li> +<li><?php bugfix(39394); ?> (Missing check for older variants of openssl). (Ilia)</li> +<li><?php bugfix(39367); ?> (clearstatcache() doesn't clear realpath cache). (j at pureftpd dot org, Dmitry)</li> +<li><?php bugfix(39366); ?> (imagerotate does not use alpha with angle > 45 degrees) (Pierre)</li> +<li><?php bugfix(39364); ?> (Removed warning on empty haystack inside mb_strstr()). (Ilia)</li> +<li><?php bugfix(39362); ?> (Added an option to imap_open/imap_reopen to control the number of connection retries). (Ilia)</li> +<li>Fixed bugs <?php bugl(39361); ?>, <?php bugl(39400); ?> (mbstring function overloading problem). (Seiji)</li> +<li><?php bugfix(39354); ?> (Allow building of curl extension against libcurl 7.16.0). (Ilia) </li> +<li><?php bugfix(39350); ?> (crash with implode("\n", array(false))). (Ilia)</li> +<li><?php bugfix(39344); ?> (Unnecessary calls to OnModify callback routine for an extension INI directive). (wharmby at uk dot ibm dot com, Dmitry)</li> +<li><?php bugfix(39320); ?> (ZEND_HASH_APPLY_STOP causes deletion). (Marcus)</li> +<li><?php bugfix(39313); ?> (spl_autoload triggers Fatal error). (Marcus)</li> +<li><?php bugfix(39300); ?> (make install fails if wget is not available). (Tony)</li> +<li><?php bugfix(39297); ?> (Memory corruption because of indirect modification of overloaded array). (Dmitry)</li> +<li><?php bugfix(39286); ?> (misleading error message when invalid dimensions are given) (Pierre)</li> +<li><?php bugfix(39273); ?> (imagecopyresized may ignore alpha channel) (Pierre)</li> +<li><?php bugfix(39265); ?> (Fixed path handling inside mod_files.sh). (michal dot taborsky at gmail dot com, Ilia)</li> +<li><?php bugfix(39217); ?> (serialNumber might be -1 when the value is too large). (Pierre, Tony)</li> +<li><?php bugfix(39215); ?> (Inappropriate close of stdin/stdout/stderr). (Wez, Ilia)</li> +<li><?php bugfix(39201); ?> (Possible crash in Apache 2 with 413 ErrorHandler). (Ilia)</li> +<li><?php bugfix(39151); ?> (Parse error in recursiveiteratoriterator.php). (Marcus)</li> +<li><?php bugfix(39121); ?> (Incorrect return array handling in non-wsdl soap client). (Dmitry)</li> +<li><?php bugfix(39090); ?> (DirectoryFilterDots doxygen docs and example is wrong). (Marcus)</li> +<li><?php bugfix(38852); ?> (XML-RPC Breaks iconv). (Hannes)</li> +<li><?php bugfix(38770); ?> (unpack() broken with longs on 64 bit machines). (Ilia, David Soria Parra).</li> +<li><?php bugfix(38698); ?> (for some keys cdbmake creates corrupted db and cdb can't read valid db). (Marcus)</li> +<li><?php bugfix(38680); ?> (Added missing handling of basic types in json_decode). (Ilia)</li> +<li><?php bugfix(38604); ?> (Fixed request time leak inside foreach() when iterating through virtual properties). (Dmitry)</li> +<li><?php bugfix(38602); ?> (header( "HTTP/1.0 ..." ) does not change proto version). (Ilia)</li> +<li><?php bugfix(38542); ?> (proc_get_status() returns wrong PID on windows). (Nuno)</li> +<li><?php bugfix(38536); ?> (SOAP returns an array of values instead of an object). (Dmitry)</li> +<li><?php bugfix(38456); ?> (Apache2 segfaults when virtual() is called in .php ErrorDocument). (Ilia)</li> +<li><?php bugfix(38325); ?> (spl_autoload_register() gives wrong line for "class not found"). (Ilia)</li> +<li><?php bugfix(38319); ?> (Remove bogus warnings from persistent PDO connections). (Ilia)</li> +<li><?php bugfix(38274); ?> (Memlimit fatal error sent to "wrong" stderr when using fastcgi). (Dmitry)</li> +<li><?php bugfix(38252); ?> (Incorrect PDO error message on invalid default fetch mode). (Ilia)</li> +<li><?php bugfix(37927); ?> (Prevent trap when COM extension processes argument of type VT_DISPATCH|VT_REF) (Andy)</li> +<li><?php bugfix(37773); ?> (iconv_substr() gives "Unknown error" when string length = 1"). (Ilia)</li> +<li><?php bugfix(37627); ?> (session save_path check checks the parent directory). (Ilia)</li> +<li><?php bugfix(37619); ?> (proc_open() closes stdin on fork() failure). (jdolecek at NetBSD dot org, Nuno)</li> +<li><?php bugfix(37588); ?> (COM Property propputref converts to PHP function and can't be accesed). (Rob)</li> +<li><?php bugfix(36975); ?> (natcasesort() causes array_pop() to misbehave). (Hannes)</li> +<li><?php bugfix(36812); ?> (pg_execute() modifies input array). (Ilia)</li> +<li><?php bugfix(36798); ?> (Error parsing named parameters with queries containing high-ascii chars). (Ilia)</li> +<li><?php bugfix(36644); ?> (possible crash in variant_date_from_timestamp()). (Ilia)</li> +<li><?php bugfix(36427); ?> (proc_open() / proc_close() leak handles on windows). (jdolecek at NetBSD dot org, Nuno)</li> +<li><?php bugfix(36392); ?> (wrong number of decimal digits with %e specifier in sprintf). (Matt,Ilia)</li> +<li><?php bugfix(36214); ?> (__get method works properly only when conditional operator is used). (Dmitry)</li> +<li><?php bugfix(35634); ?> (Erroneous "Class declarations may not be nested" error raised). (Carl P. Corliss, Dmitry)</li> +<li><?php bugfix(35106); ?> (nested foreach fails when array variable has a reference). (Dmitry)</li> +<li><?php bugfix(34564); ?> (COM extension not returning modified "out" argument) (Andy)</li> +<li><?php bugfix(33734); ?> (Something strange with COM Object). (Rob)</li> +<li><?php bugfix(33386); ?> (ScriptControl only sees last function of class). (Rob)</li> +<li><?php bugfix(33282); ?> (Re-assignment by reference does not clear the is_ref flag) (Ilia, Dmitry, Matt Wilmas)</li> +<li><?php bugfix(30074); ?> (apparent symbol table error with extract($blah, EXTR_REFS)) (Brian)</li> +<li><?php bugfix(29840); ?> (is_executable() does not honor safe_mode_exec_dir setting). (Ilia)</li> +<li>Fixed PECL bug #7295 (ORA-01405: fetched column value is NULL on LOB fields). (Tony)</li> + +</ul> + +<hr /> + <a name="5.2.0"></a> <h3>Version 5.2.0</h3> <b>02-Nov-2006</b> http://cvs.php.net/viewvc.cgi/phpweb/UPDATE_5_2.txt?r1=1.2&r2=1.3&diff_format=u Index: phpweb/UPDATE_5_2.txt diff -u phpweb/UPDATE_5_2.txt:1.2 phpweb/UPDATE_5_2.txt:1.3 --- phpweb/UPDATE_5_2.txt:1.2 Fri Nov 3 10:59:32 2006 +++ phpweb/UPDATE_5_2.txt Fri Feb 9 00:17:27 2007 @@ -173,6 +173,25 @@ you to fine-grain the levels of the messages stored. +============================== +Backwards incompatible changes +============================== + +In the PHP core +=============== +getrusage() will return NULL when passed incompatible arguments +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/standard/microtime.c?r1=1.57&r2=1.58 && ?r1=1.53.2.2&r2=1.53.2.2.2.1 + +In ext/zip +========== +ZipArchive::setCommentName() now returns TRUE on success +ZipArchive::setCommentIndex() now return TRUE on success +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.c?r1=1.1.2.15&r2=1.1.2.16 + +In ext/spl +========== +SplFileObject::getFilename() now returns the filename, not relative/path/to/file +As of 5.2.1 #See http://cvs.php.net/viewcvs.cgi/php-src/ext/spl/spl_directory.c?r1=1.45.2.27.2.10&r2=1.45.2.27.2.11 ================== NEW ERROR MESSAGES ================== @@ -198,6 +217,15 @@ strrpos("foo", "f", 4); /* Notice: strrpos(): Offset is greater than the length of haystack string in filename on line n */ +/* when allow_url_include is OFF (default) */ +include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+"; +/* Warning: include(): URL file-access is disabled in the server configuration in filename on line n */ + +/* when allow_url_include is OFF (default) */ +include "php://input"; +/* Warning: include(): URL file-access is disabled in the server configuration in filename on line n */ +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/standard/php_fopen_wrapper.c?r1=1.45.2.4.2.3&r2=1.45.2.4.2.4 + ?> OO related in the PHP core @@ -309,6 +337,19 @@ ?> +In the date extension +===================== + +<?php + +strtotime("today", "now");' +/* Warning: strtotime() expects parameter 2 to be long, string given in filename on line n */ + +new DateTime(new stdclass); +/* Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() expects parameter 1 to be string, object given' in filename:n */ +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.43.2.45.2.33&r2=1.43.2.45.2.34 +?> + In the dBase extension ====================== @@ -317,6 +358,9 @@ dbase_open("foo", -1); /* Warning: Invalid access mode -1 in filename on line n */ +dbase_open("foo", null); +/* Warning: The filename cannot be empty in filename on line n */ +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/dbase/dbase.c?r1=1.74.2.2.2.5&r2=1.74.2.2.2.6&diff_format=u ?> In the mcrypt extension @@ -368,6 +412,27 @@ ?> +In the sysvmsg extension +======================== +<?php + +/* Warning: maximum size of the message has to be greater then zero in filename on line n */ + +?> + +In the Zip extension +==================== +<?php +$obj = new ZipArchive(); +$obj->open("archive.zip"); +$obj->setCommentName("", "comment");' +/* Notice: ZipArchive::setCommentName(): Empty string as entry name in filename on line n */ + +$obj->getCommentName(""); +/* Notice: ZipArchive::getCommentName(): Empty string as entry name in filename on line n */ +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.c?r1=1.1.2.15&r2=1.1.2.16 +?> + ============ NEW FEATURES @@ -692,6 +757,12 @@ boolean XMLReader::setSchema(string filename) Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read() +In ext/zip +========== + ZipArchive: + bool addEmptyDir(string dirname) + Creates an empty directory in the archive +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.c?r1=1.1.2.15&r2=1.1.2.16 New class constants =================== @@ -730,6 +801,9 @@ - Returns numerically indexed array with all timezone identifiers string timezone_name_from_abbr(string abbr[, long gmtOffset[, long isdst]]) - Returns the timezone name from abbreviation +As of 5.2.1: #See http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.58.2.6.2.9&r2=1.58.2.6.2.10&diff_format=u + int stream_socket_shutdown(resource stream, int how) + - Causes all or part of a full-duplex connection on the socket associated with stream to be shut down In ext/mbstring =============== @@ -750,6 +824,16 @@ string mb_strstr(string haystack, string needle[, bool part[, string encoding]]) - Finds first occurrence of a string within another +In ext/ming +=========== +As of 5.2.1: See http://cvs.php.net/viewvc.cgi/php-src/ext/ming/ming.c?r1=1.79.2.4.2.4&r2=1.79.2.4.2.5&diff_format=u + void ming_setSWFCompression(int num) + - Sets output compression + void swfmovie::namedanchor(string name) + - Creates anchor + void swfmovie::protect([string pasword]) + - Protects + In ext/openssl ============== resource openssl_csr_get_public_key(mixed csr) @@ -792,6 +876,13 @@ - End current element - returns FALSE on error bool xmlwriter_write_raw(resource xmlwriter, string content) - Write text - returns FALSE on error +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/xmlwriter/php_xmlwriter.c?r1=1.20.2.12.2.8&r2=1.20.2.12.2.9 + bool xmlwriter_start_dtd_entity(resource xmlwriter, string name, bool isparam) + - Create start DTD Entity - returns FALSE on error + bool xmlwriter_end_dtd_entity(resource xmlwriter) + - End current DTD Entity - returns FALSE on error + bool xmlwriter_write_dtd_entity(resource xmlwriter, string name, string content [, bool pe [, string pubid [, string sysid [, string ndataid]]]]) + - Write full DTD Entity tag - returns FALSE on error New optional parameters @@ -809,10 +900,21 @@ =========== - array curl_multi_info_read(resource mh [, long msgs_in_queue]) (msgs_in_queue) +In ext/imap +=========== + - resource imap_open ( string mailbox, string username, string password [, int options[, int n_retries]]) (n_retries) + - bool imap_reopen(resource stream_id, string mailbox [, int options [, int n_retries]]) (n_retries) +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.7&r2=1.208.2.7.2.8 + In ext/mbstring =============== - int mb_strrpos(string haystack, string needle [, int offset [, string encoding]]) (offset) +In ext/ming +=========== + - int swfmovie::streamMP3(mixed file [, float skip]) (skip) +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/ming/ming.c?r1=1.79.2.4.2.3&r2=1.79.2.4.2.4 + In ext/openssl ============== - int openssl_verify(string data, string signature, mixed key [, int signature_algo]) (signature_algo) @@ -830,6 +932,11 @@ - SimpleXMLElement simplexml_load_file(string filename [, string class_name [, int options [, string ns [, bool is_prefix]]]]) (ns, is_prefix) - SimpleXMLElement simplexml_load_string(string data [, string class_name [, int options [, string ns [, bool is_prefix]]]]) (ns, is_prefix) +In ext/spl +========== + - array iterator_to_array(Traversable it [, bool use_keys = true]) (use_keys) +As of 5.2.1 #See http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_iterators.c?r1=1.73.2.30.2.20&r2=1.73.2.30.2.21 + In ext/xmlreader ================ - boolean XMLReader::open(string URI [, string encoding [, int options]]) (encoding, options) @@ -860,6 +967,10 @@ - PREG_NO_ERROR - PREG_RECURSION_LIMIT_ERROR - UPLOAD_ERR_EXTENSION +As of 5.2.1: (See http://cvs.php.net/viewvc.cgi/php-src/ext/standard/file.c?r1=1.409.2.6.2.13&r2=1.409.2.6.2.14&diff_format=u) + - STREAM_SHUT_RD + - STREAM_SHUT_WR + - STREAM_SHUT_RDWR In ext/curl =========== @@ -876,6 +987,25 @@ - CURLOPT_FTP_SSL - CURLOPT_FTPSSLAUTH +In ext/ming +=========== +As of 5.2.1: See http://cvs.php.net/viewvc.cgi/php-src/ext/ming/ming.c?r1=1.79.2.4.2.4&r2=1.79.2.4.2.5&diff_format=u + - SWFTEXTFIELD_USEFONT + - SWFTEXTFIELD_AUTOSIZE + - SWF_SOUND_NOT_COMPRESSED + - SWF_SOUND_ADPCM_COMPRESSED + - SWF_SOUND_MP3_COMPRESSED + - SWF_SOUND_NOT_COMPRESSED_LE + - SWF_SOUND_NELLY_COMPRESSED + - SWF_SOUND_5KHZ + - SWF_SOUND_11KHZ + - SWF_SOUND_22KHZ + - SWF_SOUND_44KHZ + - SWF_SOUND_8BITS + - SWF_SOUND_16BITS + - SWF_SOUND_MONO + - SWF_SOUND_STEREO + In ext/openssl ============== - OPENSSL_VERSION_NUMBER http://cvs.php.net/viewvc.cgi/phpweb/downloads.php?r1=1.271&r2=1.272&diff_format=u Index: phpweb/downloads.php diff -u phpweb/downloads.php:1.271 phpweb/downloads.php:1.272 --- phpweb/downloads.php:1.271 Fri Dec 8 02:44:10 2006 +++ phpweb/downloads.php Fri Feb 9 00:17:27 2007 @@ -1,5 +1,5 @@ <?php -// $Id: downloads.php,v 1.271 2006/12/08 02:44:10 bjori Exp $ +// $Id: downloads.php,v 1.272 2007/02/09 00:17:27 iliaa Exp $ $_SERVER['BASE_PAGE'] = 'downloads.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc'; @@ -74,33 +74,41 @@ ?> <a name="v5"></a> -<h1>PHP 5.2.0</h1> +<h1>PHP 5.2.1</h1> <h2>Complete Source Code</h2> <ul> <li> - <?php download_link('php-5.2.0.tar.bz2', 'PHP 5.2.0 (tar.bz2)'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: e6029fafcee029edcfa2ceed7a005333</span> + <?php download_link('php-5.2.1.tar.bz2', 'PHP 5.2.1 (tar.bz2)'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: 261218e3569a777dbd87c16a15f05c8d</span> </li> <li> - <?php download_link('php-5.2.0.tar.gz', 'PHP 5.2.0 (tar.gz)'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: 52d7e8b3d8d7573e75c97340f131f988</span> + <?php download_link('php-5.2.1.tar.gz', 'PHP 5.2.1 (tar.gz)'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: 604eaee2b834bb037d2c83e53e300d3f</span> </li> </ul> <h2>Windows Binaries</h2> <ul> <li> - <?php download_link('php-5.2.0-Win32.zip', 'PHP 5.2.0 zip package'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: 910734e96f41190020272d80b82ce553</span> + <?php download_link('php-5.2.1-Win32.zip', 'PHP 5.2.1 zip package'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: 682dd66fb03c7dd24c522f474e1b04b6</span> </li> <li> - <?php download_link('php-5.2.0-win32-installer.msi', 'PHP 5.2.0 installer'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: 1521d6e9b273299ebd8081d174146d22</span> + <?php download_link('php-5.2.1-win32-installer.msi', 'PHP 5.2.1 installer'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: cc2ba36fa05d186e26f96755207a7826</span> </li> <li> - <?php download_link('pecl-5.2.0-Win32.zip', 'Collection of PECL modules for PHP 5.2.0'); ?> - 02 Nov 2006<br /> - <span class="md5sum">md5: 638f5997884ae3ce35d2b3ec12f399b2</span> + <?php download_link('php-5.2.1-nts-Win32.zip', 'PHP 5.2.1 Non-thread-safe Win32 binaries'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: 815c8c61af58fffdc34d34c24310ffe2</span> + </li> + <li> + <?php download_link('pecl-5.2.1-Win32.zip', 'PECL 5.2.1 Win32 binaries'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: dc8b394146faf7effa6f26df02e8e534</span> + </li> + <li> + <?php download_link('pecl-5.2.1-Win32.zip', 'PECL 5.2.1 Non-thread-safe Win32 binaries'); ?> - 08 Feb 2007<br /> + <span class="md5sum">md5: ffd78a31a704d68c8adadc9288261583</span> </li> </ul> http://cvs.php.net/viewvc.cgi/phpweb/index.php?r1=1.852&r2=1.853&diff_format=u Index: phpweb/index.php diff -u phpweb/index.php:1.852 phpweb/index.php:1.853 --- phpweb/index.php:1.852 Thu Feb 8 17:01:51 2007 +++ phpweb/index.php Fri Feb 9 00:17:27 2007 @@ -146,6 +146,61 @@ // DO NOT REMOVE THIS COMMENT (the RSS parser is dependant on it) ?> +<h1>PHP 5.2.1 Released</h1> +<p> + <span class="newsdate">[08-Feb-2007]</span> + The PHP development team would like to announce the immediate available for PHP 5.2.1. + This release is a major stability and security enhancement of the 5.X branch, and all + users are strongly encouraged to upgrade to it as soon as possible. + Further details about this release can be found in the release announcement + <a href="/releases/5_2_1.php">5.2.1</a>, the full list of changes is + available in the ChangeLog <a href="/ChangeLog-5.php#5.2.1">PHP 5</a>. +</p> + +<p> +<b>Security Enhancements and Fixes in PHP 5.2.1:</b> +</p> +<ul> + <li>Fixed a possible safe_mode & open_basedir bypasses inside the session extension.</li> + <li>Prevent search engine from indexing the phpinfo() page.</li> + <li>Fixed a number of input processing bugs inside the filter extension.</li> + <li>Fixed unserialize() abuse on 64 bit systems with certain input strings.</li> + <li>Fixed possible overflows and stack corruptions in the session extension.</li> + <li>Fixed an underflow inside the internal sapi_header_op() function.</li> + <li>Fixed allocation bugs caused by attempts to allocate negative values in some code paths.</li> + <li>Fixed possible stack overflows inside zip, imap & sqlite extensions.</li> + <li>Fixed several possible buffer overflows inside the stream filters.</li> + <li>Fixed non-validated resource destruction inside the shmop extension.</li> + <li>Fixed a possible overflow in the str_replace() function.</li> + <li>Fixed possible clobbering of super-globals in several code paths.</li> + <li>Fixed a possible information disclosure inside the wddx extension.</li> + <li>Fixed a possible string format vulnerability in *print() functions on 64 bit systems.</li> + <li>Fixed a possible buffer overflow inside mail() and ibase_{delete,add,modify}_user() functions.</li> + <li>Fixed a string format vulnerability inside the odbc_result_all() function.</li> + <li>Memory limit is now enabled by default.</li> + <li>Added internal heap protection.</li> + <li>Extended filter extension support for $_SERVER IN cgi AND apache2 SAPIs.</li> +</ul> + + +<p> +Majority of the security vulnerabilities discovered and resolved can in most +cases be only abused by local users and cannot be triggered remotely. +However, some of the above issues can be triggered remotely and in shared +hosting environments based on Apache module even local exploits can present +a critical danger. Therefor we strongly advise all users of PHP, regardless +of the version to upgrade to 5.2.1 release as soon as possible. +</p> + +<p> +For users upgrading from PHP 5.0 and PHP 5.1 there is an upgrading guide +available <a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases +and PHP 5.2.1. +</p> + +<hr /> + + <h1>The front page has changed</h1> <p> <span class="newsdate">[08-Feb-2007]</span> http://cvs.php.net/viewvc.cgi/phpweb/releases/index.php?r1=1.4&r2=1.5&diff_format=u Index: phpweb/releases/index.php diff -u phpweb/releases/index.php:1.4 phpweb/releases/index.php:1.5 --- phpweb/releases/index.php:1.4 Thu Nov 2 18:03:50 2006 +++ phpweb/releases/index.php Fri Feb 9 00:17:27 2007 @@ -1,5 +1,5 @@ <?php -// $Id: index.php,v 1.4 2006/11/02 18:03:50 iliaa Exp $ +// $Id: index.php,v 1.5 2007/02/09 00:17:27 iliaa Exp $ $_SERVER['BASE_PAGE'] = 'releases/index.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc'; @@ -92,6 +92,7 @@ <option value="php-5.1.4.tar.gz">5.1.4</option> <option value="php-5.1.5.tar.gz">5.1.5</option> <option value="php-5.1.6.tar.gz">5.1.6</option> + <option value="php-5.2.0.tar.gz">5.2.0</option> </select> </p> </form> @@ -111,6 +112,38 @@ </p> <a name="v5"></a> +<a name="5.2.0"></a> +<h2>5.2.0</h2> + +<ul> + <li>Released: 02 Nov 2006</li> + <li>Announcement: <a href="/releases/5_2_0.php">English</a></li> + <li><a href="/ChangeLog-5.php#5.2.0">ChangeLog</a></li> + <li> + Download: + <ul> + <li> + <?php download_link('php-5.2.0.tar.bz2','Source (tar.bz2)'); ?><br /> + <span class="md5sum">md5: e6029fafcee029edcfa2ceed7a005333</span> + </li> + <li> + <?php download_link('php-5.2.0.tar.gz','Source (tar.gz)'); ?><br /> + <span class="md5sum">md5: 52d7e8b3d8d7573e75c97340f131f988</span> + </li> + <li> + <?php download_link('php-5.2.0-Win32.zip','Windows binary'); ?><br /> + <span class="md5sum">md5: 910734e96f41190020272d80b82ce553</span> + </li> + <li> + <?php download_link('pecl-5.2.0-Win32.zip','Collection of PECL modules for PHP 5.2.0'); ?><br /> + <span class="md5sum">md5: 638f5997884ae3ce35d2b3ec12f399b2</span> + </li> + </ul> + </li> +</ul> + + +<a name="v5"></a> <a name="5.1.6"></a> <h2>5.1.6</h2> http://cvs.php.net/viewvc.cgi/phpweb/releases/5_2_1.php?view=markup&rev=1.1 Index: phpweb/releases/5_2_1.php +++ phpweb/releases/5_2_1.php <?php // $Id: 5_2_1.php,v 1.1 2007/02/09 00:17:27 iliaa Exp $ $_SERVER['BASE_PAGE'] = 'releases/5_2_1.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc'; site_header("PHP 5.2.1 Release Announcement"); ?> <h1>PHP 5.2.1 Release Announcement</h1> <p> The PHP development team would like to announce the immediate available for PHP 5.2.1. This release is a major stability and security enhancement of the 5.X branch, and all users are strongly encouraged to upgrade to it as soon as possible. </p> <p> <b>Security Enhancements and Fixes in PHP 5.2.1:</b> </p> <ul> <li>Fixed a possible safe_mode & open_basedir bypasses inside the session extension.</li> <li>Prevent search engine from indexing the phpinfo() page.</li> <li>Fixed a number of input processing bugs inside the filter extension.</li> <li>Fixed unserialize() abuse on 64 bit systems with certain input strings.</li> <li>Fixed possible overflows and stack corruptions in the session extension.</li> <li>Fixed an underflow inside the internal sapi_header_op() function.</li> <li>Fixed allocation bugs caused by attempts to allocate negative values in some code paths.</li> <li>Fixed possible stack overflows inside zip, imap & sqlite extensions.</li> <li>Fixed several possible buffer overflows inside the stream filters.</li> <li>Fixed non-validated resource destruction inside the shmop extension.</li> <li>Fixed a possible overflow in the str_replace() function.</li> <li>Fixed possible clobbering of super-globals in several code paths.</li> <li>Fixed a possible information disclosure inside the wddx extension.</li> <li>Fixed a possible string format vulnerability in *print() functions on 64 bit systems.</li> <li>Fixed a possible buffer overflow inside mail() and ibase_{delete,add,modify}_user() functions.</li> <li>Fixed a string format vulnerability inside the odbc_result_all() function.</li> <li>Memory limit is now enabled by default.</li> <li>Added internal heap protection.</li> <li>Extended filter extension support for $_SERVER IN cgi AND apache2 SAPIs.</li> </ul> <p> Majority of the security vulnerabilities discovered and resolved can in most cases be only abused by local users and cannot be triggered remotely. However, some of the above issues can be triggered remotely and in shared hosting environments based on Apache module even local exploits can present a critical danger. Therefor we strongly advise all users of PHP, regardless of the version to upgrade to 5.2.1 release as soon as possible. </p> <p> <b>The key improvements of PHP 5.2.1 include:</b> </p> <ul> <li>Several performance improvements in the engine, streams API and some Windows specific optimizations</li> <li>PDO_MySQL now uses buffered queries by default and emulates prepared statements to bypass limitation of MySQL's prepared statement API.</li> <li>Many improvements and enhancements to the filter and zip extesions.</li> <li>Memory limit is now always enabled, this includes Windows builds, with a default limit of 128 megabytes.</li> <li>Added several performance optimizations using faster Win32 APIs (this change means that PHP no longer supports Windows 98).</li> <li>FastCGI speed optimized build of PHP for Windows made available for downloading.</li> <li>Over 180 various bug fixes.</li> </ul> <p> For users upgrading from PHP 5.0 and PHP 5.1 there is an upgrading guide available <a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases and PHP 5.2.1. </p> <p> For a full list of changes in PHP 5.2.1, see the <a href="/ChangeLog-5.php#5.2.1">ChangeLog</a>. </p> <?php site_footer(); ?>