Home » Releases » 7.2 » 7.2.34 »

PHP 7.2.0

PHP 7.2 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 7.2 is 7.2.34 which includes important security patches.

Source Code

  • PHP 7.2.0 (tar.bz2)

    • sha256: 2bfefae4226b9b97879c9d33078e50bdb5c17f45ff6e255951062a529720c64a
  • PHP 7.2.0 (tar.gz)

    • sha256: 801876abd52e0dc58a44701344252035fd50702d8f510cda7fdb317ab79897bc
  • PHP 7.2.0 (tar.xz)

    • sha256: 87572a6b924670a5d4aac276aaa4a94321936283df391d702c845ffc112db095

Change Log

  • bcmath

    • Fixed bug #46564 (bcmod truncates fractionals).
      liborm85
  • cli

    • Fixed bug #74849 (Process is started as interactive shell in PhpStorm).
      Anatol
    • Fixed bug #74979 (Interactive shell opening instead of script execution with -f flag).
      Anatol
  • cli server

    • Fixed bug #60471 (Random "Invalid request (unexpected EOF)" using a router script).
      SammyK
  • core

    • Added ZEND_COUNT, ZEND_GET_CLASS, ZEND_GET_CALLED_CLASS, ZEND_GET_TYPE, ZEND_FUNC_NUM_ARGS, ZEND_FUNC_GET_ARGS instructions, to implement corresponding builtin functions.
      Dmitry
    • "Countable" interface is moved from SPL to Core.
      Dmitry
    • Added ZEND_IN_ARRAY instruction, implementing optimized in_array() builtin function, through hash lookup in flipped array.
      Dmitry
    • Removed IS_TYPE_IMMUTABLE (it's the same as COPYABLE & !REFCOUNTED).
      Dmitry
    • Removed the sql.safe_mode directive.
      Kalle
    • Removed support for Netware.
      Kalle
    • Renamed ReflectionClass::isIterateable() to ReflectionClass::isIterable() (alias original name for BC).
      Sara
    • Fixed bug #54535 (WSA cleanup executes before MSHUTDOWN).
      Kalle
    • Implemented FR #69791 (Disallow mail header injections by extra headers) (Yasuo)
    • Implemented FR #49806 (proc_nice() for Windows).
      Kalle
    • Fix pthreads detection when cross-compiling (ffontaine)
    • Fixed memory leaks caused by exceptions thrown from destructors. (Bob, Dmitry).
    • Fixed bug #73215 (uniqid() should use better random source).
      Yasuo
    • Implemented FR #72768 (Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe).
      Michele Locati
    • Implemented "Convert numeric keys in object/array casts" RFC, fixes bugs #53838, #61655, #66173, #70925, #72254, etc.
      Andrea
    • Implemented "Deprecate and Remove Bareword (Unquoted) Strings" RFC.
      Rowan Collins
    • Raised minimum supported Windows versions to Windows 7/Server 2008 R2.
      Anatol
    • Implemented minor optimization in array_keys/array_values().
      Sara
    • Added PHP_OS_FAMILY constant to determine on which OS we are.
      Jan Altensen
    • Fixed bug #73987 (Method compatibility check looks to original definition and not parent).
      pmmaga
    • Fixed bug #73991 (JSON_OBJECT_AS_ARRAY not respected).
      Sara
    • Fixed bug #74053 (Corrupted class entries on shutdown when a destructor spawns another object).
      jim at commercebyte dot com
    • Fixed bug #73971 (Filename got limited to MAX_PATH on Win32 when scan directory).
      Anatol
    • Fixed bug #72359, bug #72451, bug #73706, bug #71115 and others related to interned strings handling in TS builds.
      Anatol
      Dmitry
    • Implemented "Trailing Commas In List Syntax" RFC for group use lists only.
      Sammy Kaye Powers
    • Fixed bug #74269 (It's possible to override trait property with different loosely-equal value).
      pmmaga
    • Fixed bug #61970 (Restraining __construct() access level in subclass gives a fatal error).
      pmmaga
    • Fixed bug #63384 (Cannot override an abstract method with an abstract method).
      pmmaga
      wes
    • Fixed bug #74607 (Traits enforce different inheritance rules).
      pmmaga
    • Fixed misparsing of abstract unix domain socket names.
      Sara
    • Change PHP_OS_FAMILY value from "OSX" to "Darwin".
      Sebastian
      Kalle
    • Allow loading PHP/Zend extensions by name in ini files (extension=<name>).
      francois at tekwire dot net
    • Added object type annotation.
      brzuchal
    • Fixed bug #74815 (crash with a combination of INI entries at startup).
      Anatol
    • Fixed bug #74836 (isset on zero-prefixed numeric indexes in array broken).
      Dmitry
    • Added new VM instuctions ISSET_ISEMPTY_CV and UNSET_CV. Previously they were implemented as ISSET_ISEMPTY_VAR and UNSET_VAR variants with ZEND_QUICK_SET flag.
      Nikita
      Dmitry
    • Fixed bug #49649 (unserialize() doesn't handle changes in property visibility).
      pmmaga
    • Fixed #74866 (extension_dir = "./ext" now use current directory for base).
      Francois Laupretre
    • Implemented FR #74963 (Improved error message on fetching property of non-object).
      Laruence
    • Fixed Bug #75142 (buildcheck.sh check for autoconf version needs to be updated for v2.64).
      zizzy at zizzy dot net
      Remi
    • Fixed bug #74878 (Data race in ZTS builds).
      Nikita
      Dmitry
    • Fixed bug #75515 ("stream_copy_to_stream" doesn't stream anymore).
      Sara
  • curl

    • Fixed bug #75093 (OpenSSL support not detected).
      Remi
    • Better fix for #74125 (use pkg-config instead of curl-config).
      Remi
  • date

    • Fixed bug #55407 (Impossible to prototype DateTime::createFromFormat).
      kelunik
    • Implemented FR #71520 (Adding the DateTime constants to the DateTimeInterface interface).
      Majkl578
    • Fixed bug #75149 (redefinition of typedefs ttinfo and t1info).
      Remi
    • Fixed bug #75222 (DateInterval microseconds property always 0).
      jhdxr
  • dba

    • Fixed bug #72885 (flatfile: dba_fetch() fails to read replaced entry).
      Anatol
  • dom

    • Implement #74837 (Implement Countable for DomNodeList and DOMNamedNodeMap).
      Andreas Treichel
  • exif

    • Added support for vendor specific tags for the following formats: Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, AGFA, Kyocera, Ricoh & Epson.
      Kalle
    • Fixed bug #72682 (exif_read_data() fails to read all data for some images).
      Kalle
    • Fixed bug #71534 (Type confusion in exif_read_data() leading to heap overflow in debug mode).
      hlt99 at blinkenshell dot org
      Kalle
    • Fixed bug #68547 (Exif Header component value check error).
      sjh21a at gmail dot com
      Kalle
    • Fixed bug #66443 (Corrupt EXIF header: maximum directory nesting level reached for some cameras).
      Kalle
    • Fixed Redhat bug #1362571 (PHP not returning full results for exif_read_data function).
      Kalle
    • Implemented #65187 (exif_read_data/thumbnail: add support for stream resource).
      Kalle
    • Deprecated the read_exif_data() alias.
      Kalle
    • Fixed bug #74428 (exif_read_data(): "Illegal IFD size" warning occurs with correct exif format).
      bradpiccho at gmail dot com
      Kalle
    • Fixed bug #72819 (EXIF thumbnails not read anymore).
      Kalle
    • Fixed bug #62523 (php crashes with segfault when exif_read_data called).
      Kalle
    • Fixed bug #50660 (exif_read_data(): Illegal IFD offset (works fine with other exif readers).
      skinny dot bravo at gmail dot com
      Kalle
  • fileinfo

    • Upgrade bundled libmagic to 5.31.
      Anatol
  • fpm

    • Configuration to limit fpm slow log trace callers.
      Sannis
    • Fixed bug #75212 (php_value acts like php_admin_value).
      Remi
  • ftp

    • Implement MLSD for structured listing of directories.
      blar
    • Added ftp_append() function.
      blar
  • gd

    • Implemented imageresolution as getter and setter (Christoph)
    • Fixed bug #74744 (gd.h: stdarg.h include missing for va_list use in gdErrorMethod).
      rainer dot jung at kippdata dot de
      cmb
    • Fixed bug #75111 (Memory disclosure or DoS via crafted .bmp image).
      cmb
  • gmp

    • Fixed bug #70896 (gmp_fact() silently ignores non-integer input).
      Sara
  • hash

    • Changed HashContext from resource to object.
      Rouven Weßling
      Sara
    • Disallowed usage of non-cryptographic hash functions with HMAC and PBKDF2.
      Andrey Andreev
      Nikita
    • Fixed Bug #75284 (sha3 is not supported on bigendian machine).
      Remi
  • imap

    • Fixed bug #72324 (imap_mailboxmsginfo() return wrong size).
      ronaldpoon at udomain dot com dot hk
      Kalle
  • intl

    • Fixed bug #63790 (test using Spoofchecker which may be unavailable).
      Sara
    • Fixed bug #75378 ([REGRESSION] IntlDateFormatter::parse() does not change $position argument).
      Laruence
  • json

    • Add JSON_INVALID_UTF8_IGNORE and JSON_INVALID_UTF8_SUBSTITUTE options for json_encode and json_decode to ignore or replace invalid UTF-8 byte sequences - it addresses request #65082.
      Jakub Zelenka
    • Fixed bug #75185 (Buffer overflow in json_decode() with JSON_INVALID_UTF8_IGNORE or JSON_INVALID).
      Jakub Zelenka
    • Fixed bug #68567 (JSON_PARTIAL_OUTPUT_ON_ERROR can result in JSON with null key).
      Jakub Zelenka
  • ldap

    • Implemented FR #69445 (Support for LDAP EXOP operations)
    • Fixed support for LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS in ldap_get_option
    • Fixed passing an empty array to ldap_set_option for client or server controls.
  • mbstring

    • Implemented request #66024 (mb_chr() and mb_ord()).
      Masakielastic
      Yasuo
    • Implemented request #65081 (mb_scrub()).
      Masakielastic
      Yasuo
    • Implemented request #69086 (enhancement for mb_convert_encoding() that handles multibyte replacement char nicely).
      Masakielastic
      Yasuo
    • Added array input support to mb_convert_encoding().
      Yasuo
    • Added array input support to mb_check_encoding().
      Yasuo
    • Fixed bug #69079 (enhancement for mb_substitute_character).
      masakielastic
    • Update to oniguruma version 6.3.0.
      Remi
    • Fixed bug #69267 (mb_strtolower fails on titlecase characters).
      Nikita
  • mcrypt

    • The deprecated mcrypt extension has been moved to PECL.
      leigh
  • opcache

    • Added global optimisation passes based on data flow analysis using Single Static Assignment (SSA) form: Sparse Conditional Constant Propagation (SCCP), Dead Code Elimination (DCE), and removal of unused local variables (Nikita, Dmitry)
    • Fixed incorect constant conditional jump elimination.
      Dmitry
    • Fixed bug #75230 (Invalid opcode 49/1/8 using opcache).
      Laruence
    • Fixed bug (assertion fails with extended info generated).
      Laruence
    • Fixed bug (Phi sources removel).
      Laruence
    • Fixed bug #75370 (Webserver hangs on valid PHP text).
      Laruence
    • Fixed bug #75357 (segfault loading WordPress wp-admin).
      Laruence
  • openssl

    • Use TLS_ANY for default ssl:// and tls:// negotiation.
      kelunik
    • Fix leak in openssl_spki_new().
      jelle at vdwaa dot nl
    • Added openssl_pkcs7_read() and pk7 parameter to openssl_pkcs7_verify().
      jelle at vdwaa dot nl
    • Add ssl security_level stream option to support OpenSSL security levels. (Jakub Zelenka).
    • Allow setting SNI cert and private key in separate files.
      Jakub Zelenka
    • Fixed bug #74903 (openssl_pkcs7_encrypt() uses different EOL than before).
      Anatol
    • Automatically load OpenSSL configuration file.
      Jakub Zelenka
  • pcre

    • Added support for PCRE JIT fast path API.
      dmitry
    • Fixed bug #61780 (Inconsistent PCRE captures in match results).
      cmb
    • Fixed bug #74873 (Minor BC break: PCRE_JIT changes output of preg_match()).
      Dmitry
    • Fixed bug #75089 (preg_grep() is not reporting PREG_BAD_UTF8_ERROR after first input string).
      Dmitry
    • Fixed bug #75223 (PCRE JIT broken in 7.2).
      Dmitry
    • Fixed bug #75285 (Broken build when system libpcre don't have jit support).
      Remi
  • phar

    • Fixed bug #74196 (phar does not correctly handle names containing dots).
      mhagstrand
  • pdo

    • Add "Sent SQL" to debug dump for emulated prepares.
      Adam Baratz
    • Add parameter types for national character set strings.
      Adam Baratz
  • pdo_dblib

    • Fixed bug #73234 (Emulated statements let value dictate parameter type).
      Adam Baratz
    • Fixed bug #73396 (bigint columns are returned as strings).
      Adam Baratz
    • Expose DB-Library version as \PDO::DBLIB_ATTR_VERSION attribute on \PDO instance.
      Adam Baratz
    • Add test coverage for bug #72969.
      Jeff Farr
  • pdo_oci

    • Fixed Bug #74537 (Align --with-pdo-oci configure option with --with-oci8 syntax).
      Tianfang Yang
  • pdo_sqlite

    • Switch to sqlite3_prepare_v2() and sqlite3_close_v2() functions (rasmus)
  • phpdbg

    • Added extended_value to opcode dump output.
      Sara
  • session

    • Fixed bug #73461 (Prohibit session save handler recursion).
      Yasuo
    • PR #2233 Removed register_globals related code and "!" can be used as $_SESSION key name.
      Yasuo
    • Improved bug #73100 fix. 'user' save handler can only be set by session_set_save_handler()
    • Fixed bug #74514 (5 session functions incorrectly warn when calling in read-only/getter mode).
      Yasuo
    • Fixed bug #74936 (session_cache_expire/cache_limiter/save_path() trigger a warning in read mode).
      morozov
    • Fixed bug #74941 (session fails to start after having headers sent).
      morozov
  • sodium

    • New cryptographic extension
    • Added missing bindings for libsodium > 1.0.13.
      Frank
  • spl

    • Fixed bug #71412 (Incorrect arginfo for ArrayIterator::__construct).
      tysonandre775 at hotmail dot com
    • Added spl_object_id().
      Tyson Andre
  • sqlite3

    • Implement writing to blobs.
      bohwaz at github dot com
    • Update to Sqlite 3.20.1.
      cmb
  • standard

    • Fixed bug #69442 (closing of fd incorrect when PTS enabled).
      jaytaph
    • Fixed bug #74300 (unserialize accepts two plus/minus signs for float number exponent part).
      xKerman
    • Compatibility with libargon2 versions 20161029 and 20160821.
      charlesportwoodii at erianna dot com
    • Fixed Bug #74737 (mysqli_get_client_info reflection info).
      mhagstrand at gmail dot com
    • Add support for extension name as argument to dl().
      francois at tekwire dot net
    • Fixed bug #74851 (uniqid() without more_entropy performs badly).
      Emmanuel Dreyfus
    • Fixed bug #74103 (heap-use-after-free when unserializing invalid array size).
      Nikita
    • Fixed bug #75054 (A Denial of Service Vulnerability was found when performing deserialization).
      Nikita
    • Fixed bug #75170 (mt_rand() bias on 64-bit machines).
      Nikita
    • Fixed bug #75221 (Argon2i always throws NUL at the end).
      cmb
  • streams

    • Default ssl/single_dh_use and ssl/honor_cipher_order to true.
      kelunik
  • xml

    • Moved utf8_encode() and utf8_decode() to the Standard extension.
      Andrea
  • xmlrpc

    • Use Zend MM for allocation in bundled libxmlrpc (Joe)
  • zip

    • Add support for encrypted archives.
      Remi
    • Use of bundled libzip is deprecated, --with-libzip option is recommended.
      Remi
    • Fixed Bug #73803 (Reflection of ZipArchive does not show public properties).
      Remi
    • ZipArchive implements countable, added ZipArchive::count() method.
      Remi
    • Fix segfault in php_stream_context_get_option call.
      Remi
    • Fixed bug #75143 (new method setEncryptionName() seems not to exist in ZipArchive).
      Anatol
  • zlib

    • Expose inflate_get_status() and inflate_get_read_len() functions.
      Matthew Trescott

PHP 7.2


  Represents a security release