Home » Releases » 5.3 » 5.3.29 »

PHP 5.3.3

PHP 5.3 is no longer officially supported by the PHP project.

Official support refers to that provided direct by the PHP Project.

If you install PHP via third-party packages, support timelines may be different. Please read the Release Support Policy for more information.

The latest release of PHP 5.3 is 5.3.29.

Source Code

Change Log

  • misc

    • Upgraded bundled sqlite to version 3.6.23.1.
      Ilia
    • Upgraded bundled PCRE to version 8.02.
      Ilia
    • Added support for JSON_NUMERIC_CHECK option in json_encode() that converts numeric strings to integers.
      Ilia
    • Added stream_set_read_buffer, allows to set the buffer for read operation.
      Pierre
    • Added stream filter support to mcrypt extension (ported from mcrypt_filter).
      Stas
    • Added full_special_chars filter to ext/filter.
      Rasmus
    • Added backlog socket context option for stream_socket_server().
      Mike
    • Added fifth parameter to openssl_encrypt()/openssl_decrypt() (string $iv) to use non-NULL IV. Made implicit use of NULL IV a warning.
      Sara
    • Added openssl_cipher_iv_length().
      Sara
    • Added FastCGI Process Manager (FPM) SAPI.
      Tony
    • Added recent Windows versions to php_uname and fix undefined windows version support.
      Pierre
    • Added Berkeley DB 5 support to the DBA extension.
      Johannes
      Chris Jones
    • Added support for copy to/from array/file for pdo_pgsql extension.
      Denis Gasparin
      Ilia
    • Added inTransaction() method to PDO, with specialized support for Postgres.
      Ilia
      Denis Gasparin
    • Changed namespaced classes so that the ctor can only be named __construct now.
      Stas
    • Reset error state in PDO::beginTransaction() reset error state.
      Ilia
    • Implemented FR#51295 (SQLite3::busyTimeout not existing).
      Mark
    • Implemented FR#35638 (Adding udate to imap_fetch_overview results).
      Charles_Duffy at dell dot com
    • Rewrote var_export() to use smart_str rather than output buffering, prevents data disclosure if a fatal error occurs (CVE-2010-2531).
      Scott
    • Fixed possible buffer overflows in mysqlnd_list_fields, mysqlnd_change_user.
      Andrey
    • Fixed possible buffer overflows when handling error packets in mysqlnd. Reported by Stefan Esser.
      Andrey
    • Fixed very rare memory leak in mysqlnd, when binding thousands of columns.
      Andrey
    • Fixed a crash when calling an inexistent method of a class that inherits PDOStatement if instantiated directly instead of doing by the PDO methods.
      Felipe
    • Fixed memory leak on error in mcrypt_create_iv on Windows.
      Pierre
    • Fixed a possible crash because of recursive GC invocation.
      Dmitry
    • Fixed a possible resource destruction issues in shm_put_var(). Reported by Stefan Esser.
      Dmitry
    • Fixed a possible information leak because of interruption of XOR operator. Reported by Stefan Esser.
      Dmitry
    • Fixed a possible memory corruption because of unexpected call-time pass by refernce and following memory clobbering through callbacks. Reported by Stefan Esser.
      Dmitry
    • Fixed a possible memory corruption in ArrayObject::uasort(). Reported by Stefan Esser.
      Dmitry
    • Fixed a possible memory corruption in parse_str(). Reported by Stefan Esser.
      Dmitry
    • Fixed a possible memory corruption in pack(). Reported by Stefan Esser.
      Dmitry
    • Fixed a possible memory corruption in substr_replace(). Reported by Stefan Esser.
      Dmitry
    • Fixed a possible memory corruption in addcslashes(). Reported by Stefan Esser.
      Dmitry
    • Fixed a possible stack exhaustion inside fnmatch(). Reported by Stefan Esser.
      Ilia
    • Fixed a possible dechunking filter buffer overflow. Reported by Stefan Esser.
      Pierre
    • Fixed a possible arbitrary memory access inside sqlite extension. Reported by Mateusz Kocielski.
      Ilia
    • Fixed string format validation inside phar extension. Reported by Stefan Esser.
      Ilia
    • Fixed handling of session variable serialization on certain prefix characters. Reported by Stefan Esser.
      Ilia
    • Fixed a NULL pointer dereference when processing invalid XML-RPC requests (Fixes CVE-2010-0397, bug #51288).
      Raphael Geissert
    • Fixed 64-bit integer overflow in mhash_keygen_s2k().
      Clément LECIGNE
      Stas
    • Fixed SplObjectStorage unserialization problems (CVE-2010-2225).
      Stas
    • Fixed the mail.log ini setting when no filename was given.
      Johannes
    • Fixed bug #52317 (Segmentation fault when using mail() on a rhel 4.x (only 64 bit)).
      Adam
    • Fixed bug #52262 (json_decode() shows no errors on invalid UTF-8).
      Scott
    • Fixed bug #52240 (hash_copy() does not copy the HMAC key, causes wrong results and PHP crashes).
      Felipe
    • Fixed bug #52238 (Crash when an Exception occured in iterator_to_array).
      Johannes
    • Fixed bug #52193 (converting closure to array yields empty array).
      Felipe
    • Fixed bug #52183 (Reflectionfunction reports invalid number of arguments for function aliases).
      Felipe
    • Fixed bug #52162 (custom request header variables with numbers are removed).
      Sriram Natarajan
    • Fixed bug #52160 (Invalid E_STRICT redefined constructor error).
      Felipe
    • Fixed bug #52138 (Constants are parsed into the ini file for section names).
      Felipe
    • Fixed bug #52115 (mysqli_result::fetch_all returns null, not an empty array).
      Andrey
    • Fixed bug #52101 (dns_get_record() garbage in 'ipv6' field on Windows).
      Pierre
    • Fixed bug #52082 (character_set_client & character_set_connection reset after mysqli_change_user()).
      Andrey
    • Fixed bug #52043 (GD doesn't recognize latest libJPEG versions).
      php at group dot apple dot com
      Pierre
    • Fixed bug #52041 (Memory leak when writing on uninitialized variable returned from function).
      Dmitry
    • Fixed bug #52060 (Memory leak when passing a closure to method_exists()).
      Felipe
    • Fixed bug #52057 (ReflectionClass fails on Closure class).
      Felipe
    • Fixed bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+).
      Felipe
    • Fixed bug #52037 (Concurrent builds fail in install-programs).
      seanius at debian dot org
      Kalle
    • Fixed bug #52019 (make lcov doesn't support TESTS variable anymore).
      Patrick
    • Fixed bug #52010 (open_basedir restrictions mismatch on vacuum command).
      Ilia
    • Fixed bug #52001 (Memory allocation problems after using variable variables).
      Dmitry
    • Fixed bug #51991 (spl_autoload and *nix support with namespace).
      Felipe
    • Fixed bug #51943 (AIX: Several files are out of ANSI spec).
      Kalle
      coreystup at gmail dot com
    • Fixed bug #51911 (ReflectionParameter::getDefaultValue() memory leaks with constant array).
      Felipe
    • Fixed bug #51905 (ReflectionParameter fails if default value is an array with an access to self::).
      Felipe
    • Fixed bug #51899 (Parse error in parse_ini_file() function when empy value followed by no newline).
      Felipe
    • Fixed bug #51844 (checkdnsrr does not support types other than MX).
      Pierre
    • Fixed bug #51827 (Bad warning when register_shutdown_function called with wrong num of parameters).
      Felipe
    • Fixed bug #51822 (Segfault with strange __destruct() for static class variables).
      Dmitry
    • Fixed bug #51791 (constant() aborts execution when fail to check undefined constant).
      Felipe
    • Fixed bug #51732 (Fileinfo __construct or open does not work with NULL).
      Pierre
    • Fixed bug #51725 (xmlrpc_get_type() returns true on invalid dates).
      Mike
    • Fixed bug #51723 (Content-length header is limited to 32bit integer with Apache2 on Windows).
      Pierre
    • Fixed bug #51721 (mark DOMNodeList and DOMNamedNodeMap as Traversable).
      David Zuelke
    • Fixed bug #51712 (Test mysql_mysqlnd_read_timeout_long must fail on MySQL4).
      Andrey
    • Fixed bug #51697 (Unsafe operations in free_storage of SPL iterators, causes crash during shutdown).
      Etienne
    • Fixed bug #51690 (Phar::setStub looks for case-sensitive __HALT_COMPILER()).
      Ilia
    • Fixed bug #51688 (ini per dir crashes when invalid document root are given).
      Pierre
    • Fixed bug #51671 (imagefill does not work correctly for small images).
      Pierre
    • Fixed bug #51670 (getColumnMeta causes segfault when re-executing query after calling nextRowset).
      Pierrick
    • Fixed bug #51647 Certificate file without private key (pk in another file) doesn't work.
      Andrey
    • Fixed bug #51629 (CURLOPT_FOLLOWLOCATION error message is misleading).
      Pierre
    • Fixed bug #51627 (script path not correctly evaluated).
      russell dot tempero at rightnow dot com
    • Fixed bug #51624 (Crash when calling mysqli_options()).
      Felipe
    • Fixed bug #51615 (PHP crash with wrong HTML in SimpleXML).
      Felipe
    • Fixed bug #51609 (pg_copy_to: Invalid results when using fourth parameter).
      Felipe
    • Fixed bug #51608 (pg_copy_to: WARNING: nonstandard use of \\ in a string literal).
      cbandy at jbandy dot com
    • Fixed bug #51607 (pg_copy_from does not allow schema in the tablename argument).
      cbandy at jbandy dot com
    • Fixed bug #51605 (Mysqli - zombie links).
      Andrey
    • Fixed bug #51604 (newline in end of header is shown in start of message).
      Daniel Egeberg
    • Fixed bug #51590 (JSON_ERROR_UTF8 is undefined).
      Felipe
    • Fixed bug #51583 (Bus error due to wrong alignment in mysqlnd).
      Rainer Jung
    • Fixed bug #51582 (Don't assume UINT64_C it's ever available).
      reidrac at usebox dot net
      Pierre
    • Fixed bug #51577 (Uninitialized memory reference with oci_bind_array_by_name) (Oracle Corp.)
    • Fixed bug #51562 (query timeout in mssql can not be changed per query).
      ejsmont dot artur at gmail dot com
    • Fixed bug #51552 (debug_backtrace() causes segmentation fault and/or memory issues).
      Dmitry
    • Fixed bug #51445 (var_dump() invalid/slow *RECURSION* detection).
      Felipe
    • Fixed bug #51435 (Missing ifdefs / logic bug in crypt code cause compile errors).
      Felipe
    • Fixed bug #51424 (crypt() function hangs after 3rd call).
      Pierre
      Sriram
    • Fixed bug #51394 (Error line reported incorrectly if error handler throws an exception).
      Stas
    • Fixed bug #51393 (DateTime::createFromFormat() fails if format string contains timezone).
      Adam
    • Fixed bug #51347 (mysqli_close / connection memory leak).
      Andrey
      Johannes
    • Fixed bug #51338 (URL-Rewriter is still enabled if use_only_cookies is on).
      Ilia
      j dot jeising at gmail dot com
    • Fixed bug #51291 (oci_error doesn't report last error when called two times) (Oracle Corp.)
    • Fixed bug #51276 (php_load_extension() is missing when HAVE_LIBDL is undefined).
      Tony
    • Fixed bug #51273 (Faultstring property does not exist when the faultstring is empty) (Ilia, dennis at transip dot nl)
    • Fixed bug #51269 (zlib.output_compression Overwrites Vary Header).
      Adam
    • Fixed bug #51257 (CURL_VERSION_LARGEFILE incorrectly used after libcurl version 7.10.1).
      aron dot ujvari at microsec dot hu
    • Fixed bug #51242 (Empty mysql.default_port does not default to 3306 anymore, but 0).
      Adam
    • Fixed bug #51237 (milter SAPI crash on startup).
      igmar at palsenberg dot com
    • Fixed bug #51213 (pdo_mssql is trimming value of the money column).
      Ilia
      alexr at oplot dot com
    • Fixed bug #51190 (ftp_put() returns false when transfer was successful).
      Ilia
    • Fixed bug #51183 (ext/date/php_date.c fails to compile with Sun Studio).
      Sriram Natarajan
    • Fixed bug #51176 (Static calling in non-static method behaves like $this->).
      Felipe
    • Fixed bug #51171 (curl_setopt() doesn't output any errors or warnings when an invalid option is provided).
      Ilia
    • Fixed bug #51128 (imagefill() doesn't work with large images).
      Pierre
    • Fixed bug #51096 ('last day' and 'first day' are handled incorrectly when parsing date strings).
      Derick
    • Fixed bug #51086 (DBA DB4 doesn't work with Berkeley DB 4.8).
      Chris Jones
    • Fixed bug #51062 (DBA DB4 uses mismatched headers and libraries).
      Chris Jones
    • Fixed bug #51026 (mysqli_ssl_set not working).
      Andrey
    • Fixed bug #51023 (filter doesn't detect int overflows with GCC 4.4).
      Raphael Geissert
    • Fixed bug #50999 (unaligned memory access in dba_fetch()).
      Felipe
    • Fixed bug #50976 (Soap headers Authorization not allowed).
      Brain France
      Dmitry
    • Fixed bug #50828 (DOMNotation is not subclass of DOMNode).
      Rob
    • Fixed bug #50810 (property_exists does not work for private).
      Felipe
    • Fixed bug #50762 (in WSDL mode Soap Header handler function only being called if defined in WSDL).
      mephius at gmail dot com
    • Fixed bug #50731 (Inconsistent namespaces sent to functions registered with spl_autoload_register).
      Felipe
    • Fixed bug #50563 (removing E_WARNING from parse_url).
      ralph at smashlabs dot com
      Pierre
    • Fixed bug #50578 (incorrect shebang in phar.phar).
      Fedora at FamilleCollet dot com
    • Fixed bug #50392 (date_create_from_format enforces 6 digits for 'u' format character).
      Derick
    • Fixed bug #50383 (Exceptions thrown in __call / __callStatic do not include file and line in trace).
      Felipe
    • Fixed bug #50358 (Compile failure compiling ext/phar/util.lo).
      Felipe
    • Fixed bug #50101 (name clash between global and local variable).
      patch by yoarvi at gmail dot com
    • Fixed bug #50055 (DateTime::sub() allows 'relative' time modifications).
      Derick
    • Fixed bug #51002 (fix possible memory corruption with very long names).
      Pierre
    • Fixed bug #49893 (Crash while creating an instance of Zend_Mail_Storage_Pop3).
      Dmitry
    • Fixed bug #49819 (STDOUT losing data with posix_isatty()).
      Mike
    • Fixed bug #49778 (DateInterval::format("%a") is always zero when an interval is created from an ISO string).
      Derick
    • Fixed bug #49700 (memory leaks in php_date.c if garbage collector is enabled).
      Dmitry
    • Fixed bug #49576 (FILTER_VALIDATE_EMAIL filter needs updating) (Rasmus)
    • Fixed bug #49490 (XPath namespace prefix conflict).
      Rob
    • Fixed bug #49429 (odbc_autocommit doesn't work).
      Felipe
    • Fixed bug #49320 (PDO returns null when SQLite connection fails).
      Felipe
    • Fixed bug #49234 (mysqli_ssl_set not found).
      Andrey
    • Fixed bug #49216 (Reflection doesn't seem to work properly on MySqli).
      Andrey
    • Fixed bug #49192 (PHP crashes when GC invoked on COM object).
      Stas
    • Fixed bug #49081 (DateTime::diff() mistake if start in January and interval > 28 days).
      Derick
    • Fixed bug #49059 (DateTime::diff() repeats previous sub() operation).
      yoarvi@gmail.com
      Derick
    • Fixed bug #48983 (DomDocument : saveHTMLFile wrong charset).
      Rob
    • Fixed bug #48930 (__COMPILER_HALT_OFFSET__ incorrect in PHP >= 5.3).
      Felipe
    • Fixed bug #48902 (Timezone database fallback map is outdated).
      Derick
    • Fixed bug #48781 (Cyclical garbage collector memory leak).
      Dmitry
    • Fixed bug #48601 (xpath() returns FALSE for legitimate query).
      Rob
    • Fixed bug #48361 (SplFileInfo::getPathInfo should return the parent dir).
      Etienne
    • Fixed bug #48289 (iconv_mime_encode() quoted-printable scheme is broken). (Adam, patch from hiroaki dot kawai at gmail dot com).
    • Fixed bug #47842 (sscanf() does not support 64-bit values).
      Mike
    • Fixed bug #46111 (Some timezone identifiers can not be parsed).
      Derick
    • Fixed bug #45808 (stream_socket_enable_crypto() blocks and eats CPU).
      vincent at optilian dot com
    • Fixed bug #43233 (sasl support for ldap on Windows).
      Pierre
    • Fixed bug #35673 (formatOutput does not work with saveHTML).
      Rob
    • Fixed bug #33210 (getimagesize() fails to detect width/height on certain JPEGs).
      Ilia

PHP 5.3


  Represents a security release