1<?php 2$_SERVER['BASE_PAGE'] = 'releases/5_3_3.php'; 3include_once __DIR__ . '/../include/prepend.inc'; 4site_header("PHP 5.3.3 Release Announcement"); 5?> 6 7<h1>PHP 5.3.3 Release Announcement</h1> 8<p> 9The PHP development team would like to announce the immediate 10availability of PHP 5.3.3. This release focuses on improving the 11stability and security of the PHP 5.3.x branch with over 100 bug 12fixes, some of which are security related. All users are encouraged 13to upgrade to this release. 14</p> 15 16<p> 17<b>Backwards incompatible change:</b> 18</p> 19<ul> 20 <li>Methods with the same name as the last element of a namespaced class name 21 will no longer be treated as constructor. This change doesn't affect 22 non-namespaced classes. 23 24 <p><?php 25 highlight_string('<?php 26namespace Foo; 27class Bar { 28 public function Bar() { 29 // treated as constructor in PHP 5.3.0-5.3.2 30 // treated as regular method in PHP 5.3.3 31 } 32} 33?>'); 34 ?></p> 35 <p>There is no impact on migration from 5.2.x because namespaces were only introduced in PHP 5.3.</p></li> 36</ul> 37<p> 38<b>Security Enhancements and Fixes in PHP 5.3.3:</b> 39</p> 40<ul> 41 <li>Rewrote var_export() to use smart_str rather than output buffering, prevents data disclosure if a fatal error occurs (CVE-2010-2531).</li> 42 <li>Fixed a possible resource destruction issues in shm_put_var().</li> 43 <li>Fixed a possible information leak because of interruption of XOR operator.</li> 44 <li>Fixed a possible memory corruption because of unexpected call-time pass by refernce and following memory clobbering through callbacks.</li> 45 <li>Fixed a possible memory corruption in ArrayObject::uasort().</li> 46 <li>Fixed a possible memory corruption in parse_str().</li> 47 <li>Fixed a possible memory corruption in pack().</li> 48 <li>Fixed a possible memory corruption in substr_replace().</li> 49 <li>Fixed a possible memory corruption in addcslashes().</li> 50 <li>Fixed a possible stack exhaustion inside fnmatch().</li> 51 <li>Fixed a possible dechunking filter buffer overflow.</li> 52 <li>Fixed a possible arbitrary memory access inside sqlite extension.</li> 53 <li>Fixed string format validation inside phar extension.</li> 54 <li>Fixed handling of session variable serialization on certain prefix characters.</li> 55 <li>Fixed a NULL pointer dereference when processing invalid XML-RPC requests (Fixes CVE-2010-0397, bug #51288).</li> 56 <li>Fixed SplObjectStorage unserialization problems (CVE-2010-2225).</li> 57 <li>Fixed possible buffer overflows in mysqlnd_list_fields, mysqlnd_change_user.</li> 58 <li>Fixed possible buffer overflows when handling error packets in mysqlnd.</li> 59</ul> 60 61<p> 62<b>Key enhancements in PHP 5.3.3 include:</b> 63</p> 64<ul> 65 <li>Upgraded bundled sqlite to version 3.6.23.1.</li> 66 <li>Upgraded bundled PCRE to version 8.02.</li> 67 <li>Added FastCGI Process Manager (FPM) SAPI.</li> 68 <li>Added stream filter support to mcrypt extension.</li> 69 <li>Added full_special_chars filter to ext/filter.</li> 70 <li>Fixed a possible crash because of recursive GC invocation.</li> 71 <li>Fixed bug #52238 (Crash when an Exception occured in iterator_to_array).</li> 72 <li>Fixed bug #52041 (Memory leak when writing on uninitialized variable returned from function).</li> 73 <li>Fixed bug #52060 (Memory leak when passing a closure to method_exists()).</li> 74 <li>Fixed bug #52001 (Memory allocation problems after using variable variables).</li> 75 <li>Fixed bug #51723 (Content-length header is limited to 32bit integer with Apache2 on Windows).</li> 76 <li>Fixed bug #48930 (__COMPILER_HALT_OFFSET__ incorrect in PHP >= 5.3).</li> 77</ul> 78 79<p> 80For users upgrading from PHP 5.2 there is a migration guide available on 81<a href="/migration53">http://php.net/migration53</a>, detailing the changes between those 82releases and PHP 5.3. 83</p> 84 85<p> 86 For a full list of changes in PHP 5.3.3, see the <a href="/ChangeLog-5.php#5.3.3">ChangeLog</a>. 87</p> 88 89<?php site_footer(); ?> 90