1PHP NEWS 2||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 3?? ??? ????, PHP 7.1.34 4 5 6 724 Oct 2019, PHP 7.1.33 8 9- FPM: 10 . Fixed bug #78599 (env_path_info underflow in fpm_main.c can lead to RCE). 11 (CVE-2019-11043) (Jakub Zelenka) 12 1329 Aug 2019, PHP 7.1.32 14 15- mbstring: 16 . Fixed CVE-2019-13224 (don't allow different encodings for onig_new_deluxe) (stas) 17 18- pcre: 19 . Fixed bug #75457 (heap use-after-free in pcrelib) (cmb) 20 2101 Aug 2019, PHP 7.1.31 22 23- SQLite: 24 . Upgraded to SQLite 3.28.0. (cmb) 25 26- EXIF: 27 . Fixed bug #78256 (heap-buffer-overflow on exif_process_user_comment). 28 (CVE-2019-11042) (Stas) 29 . Fixed bug #78222 (heap-buffer-overflow on exif_scan_thumbnail). 30 (CVE-2019-11041) (Stas) 31 32- Phar: 33 . Fixed bug #77919 (Potential UAF in Phar RSHUTDOWN). (cmb) 34 3530 May 2019, PHP 7.1.30 36 37- EXIF: 38 . Fixed bug #77988 (heap-buffer-overflow on php_jpg_get16). 39 (CVE-2019-11040) (Stas) 40 41- GD: 42 . Fixed bug #77973 (Uninitialized read in gdImageCreateFromXbm). 43 (CVE-2019-11038) (cmb) 44 45- Iconv: 46 . Fixed bug #78069 (Out-of-bounds read in iconv.c:_php_iconv_mime_decode() 47 due to integer overflow). (CVE-2019-11039). (maris dot adam) 48 49- SQLite: 50 . Fixed bug #77967 (Bypassing open_basedir restrictions via file uris). (Stas) 51 5203 May 2019, PHP 7.1.29 53 54- EXIF: 55 . Fixed bug #77950 (Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG). 56 (CVE-2019-11036) (Stas) 57 58- Mail: 59 . Fixed bug #77821 (Potential heap corruption in TSendMail()). (cmb) 60 6104 Apr 2019, PHP 7.1.28 62 63- EXIF: 64 . Fixed bug #77753 (Heap-buffer-overflow in php_ifd_get32s). (CVE-2019-11034) 65 (Stas) 66 . Fixed bug #77831 (Heap-buffer-overflow in exif_iif_add_value). 67 (CVE-2019-11035) (Stas) 68 69- SQLite3: 70 . Added sqlite3.defensive INI directive. (BohwaZ) 71 7207 Mar 2019, PHP 7.1.27 73 74- Core: 75 . Fixed bug #77630 (rename() across the device may allow unwanted access during 76 processing). (Stas) 77 78- EXIF: 79 . Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF). (Stas) 80 . Fixed bug #77540 (Invalid Read on exif_process_SOFn). (Stas) 81 . Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas) 82 . Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas) 83 84- PHAR: 85 . Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename). 86 (bishop) 87 . Fixed bug #77586 (phar_tar_writeheaders_int() buffer overflow). (bishop) 88 89- SPL: 90 . Fixed bug #77431 (openFile() silently truncates after a null byte). (cmb) 91 9210 Jan 2019, PHP 7.1.26 93 94- Core: 95 . Fixed bug #77369 (memcpy with negative length via crafted DNS response). (Stas) 96 97- GD: 98 . Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to 99 use-after-free). (cmb) 100 . Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap). (cmb) 101 102- IMAP: 103 . Fixed bug #77020 (null pointer dereference in imap_mail). (cmb) 104 105- Mbstring: 106 . Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token). (Stas) 107 . Fixed bug #77371 (heap buffer overflow in mb regex functions 108 - compile_string_node). (Stas) 109 . Fixed bug #77381 (heap buffer overflow in multibyte match_at). (Stas) 110 . Fixed bug #77382 (heap buffer overflow due to incorrect length in 111 expand_case_fold_string). (Stas) 112 . Fixed bug #77385 (buffer overflow in fetch_token). (Stas) 113 . Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode). (Stas) 114 . Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code). (Stas) 115 116- Phar: 117 . Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext). (Stas) 118 119- Xmlrpc: 120 . Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()). (cmb) 121 . Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code). (Stas) 122 12306 Dec 2018, PHP 7.1.25 124 125- Core: 126 . Fixed bug #71041 (zend_signal_startup() needs ZEND_API). 127 (Valentin V. Bartenev) 128 129- ftp: 130 . Fixed bug #77151 (ftp_close(): SSL_read on shutdown). (Remi) 131 132- iconv: 133 . Fixed bug #77147 (Fixing 60494 ignored ICONV_MIME_DECODE_CONTINUE_ON_ERROR). 134 (cmb) 135 136- IMAP: 137 . Fixed bug #77153 (imap_open allows to run arbitrary shell commands via 138 mailbox parameter). (Stas) 139 140- ODBC: 141 . Fixed bug #77079 (odbc_fetch_object has incorrect type signature). 142 (Jon Allen) 143 144- Opcache: 145 . Fixed bug #77058 (Type inference in opcache causes side effects). (Nikita) 146 147- PGSQL: 148 . Fixed bug #77047 (pg_convert has a broken regex for the 'TIME WITHOUT 149 TIMEZONE' data type). (Andy Gajetzki) 150 151- SOAP: 152 . Fixed bug #76348 (WSDL_CACHE_MEMORY causes Segmentation fault). (cmb) 153 . Fixed bug #77141 (Signedness issue in SOAP when precision=-1). (cmb) 154 155- Sockets: 156 . Fixed bug #67619 (Validate length on socket_write). (thiagooak) 157 15808 Nov 2018, PHP 7.1.24 159 160- Core: 161 . Fixed bug #76946 (Cyclic reference in generator not detected). (Nikita) 162 . Fixed bug #77035 (The phpize and ./configure create redundant .deps file). 163 (Peter Kokot) 164 . Fixed bug #77041 (buildconf should output error messages to stderr) 165 (Mizunashi Mana) 166 167- Date: 168 . Fixed bug #75851 (Year component overflow with date formats "c", "o", "r" 169 and "y"). (Adam Saponara) 170 171- FCGI: 172 . Fixed bug #76948 (Failed shutdown/reboot or end session in Windows). 173 (Anatol) 174 . Fixed bug #76954 (apache_response_headers removes last character from header 175 name). (stodorovic) 176 177- FTP: 178 . Fixed bug #76972 (Data truncation due to forceful ssl socket shutdown). 179 (Manuel Mausz) 180 181- intl: 182 . Fixed bug #76942 (U_ARGUMENT_TYPE_MISMATCH). (anthrax at unixuser dot org) 183 184- Standard: 185 . Fixed bug #76965 (INI_SCANNER_RAW doesn't strip trailing whitespace). 186 (Pierrick) 187 188- Tidy: 189 . Fixed bug #77027 (tidy::getOptDoc() not available on Windows). (cmb) 190 191- XML: 192 . Fixed bug #30875 (xml_parse_into_struct() does not resolve entities). (cmb) 193 . Add support for getting SKIP_TAGSTART and SKIP_WHITE options. (cmb) 194 19511 Oct 2018, PHP 7.1.23 196 197- Core: 198 . Fixed bug #76901 (method_exists on SPL iterator passthrough method corrupts 199 memory). (Nikita) 200 . Fixed bug #76846 (Segfault in shutdown function after memory limit error). 201 (Nikita) 202 203- CURL: 204 . Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected). 205 (Pierrick) 206 207- iconv: 208 . Fixed bug #66828 (iconv_mime_encode Q-encoding longer than it should be). 209 (cmb) 210 211- Opcache: 212 . Fixed bug #76832 (ZendOPcache.MemoryBase periodically deleted by the OS). 213 (Anatol) 214 215- POSIX: 216 . Fixed bug #75696 (posix_getgrnam fails to print details of group). (cmb) 217 218- Reflection: 219 . Fixed bug #74454 (Wrong exception being thrown when using ReflectionMethod). 220 (cmb) 221 222- Standard: 223 . Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open 224 data connection). (Ville Hukkamäki) 225 . Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with 226 stream_socket_client). (Ville Hukkamäki) 227 . Fixed bug #75533 (array_reduce is slow when $carry is large array). 228 (Manabu Matsui) 229 230- Zlib: 231 . Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed). 232 (Martin Burke, cmb) 233 23413 Sep 2018, PHP 7.1.22 235 236- Core: 237 . Fixed bug #76754 (parent private constant in extends class memory leak). 238 (Laruence) 239 . Fixed bug #72443 (Generate enabled extension). (petk) 240 241- Bz2: 242 . Fixed arginfo for bzcompress. (Tyson Andre) 243 244- gettext: 245 . Fixed bug #76517 (incorrect restoring of LDFLAGS). (sji) 246 247- iconv: 248 . Fixed bug #68180 (iconv_mime_decode can return extra characters in a 249 header). (cmb) 250 . Fixed bug #63839 (iconv_mime_decode_headers function is skipping headers). 251 (cmb) 252 . Fixed bug #60494 (iconv_mime_decode does ignore special characters). (cmb) 253 . Fixed bug #55146 (iconv_mime_decode_headers() skips some headers). (cmb) 254 255- intl: 256 . Fixed bug #74484 (MessageFormatter::formatMessage memory corruption with 257 11+ named placeholders). (Anatol) 258 259- libxml: 260 . Fixed bug #76777 ("public id" parameter of libxml_set_external_entity_loader 261 callback undefined). (Ville Hukkamäki) 262 263- mbstring: 264 . Fixed bug #76704 (mb_detect_order return value varies based on argument 265 type). (cmb) 266 267- Opcache: 268 . Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar 269 file). (Laruence) 270 271- OpenSSL: 272 . Fixed bug #76705 (unusable ssl => peer_fingerprint in 273 stream_context_create()). (Jakub Zelenka) 274 275- phpdbg: 276 . Fixed bug #76595 (phpdbg man page contains outdated information). 277 (Kevin Abel) 278 279- SPL: 280 . Fixed bug #68825 (Exception in DirectoryIterator::getLinkTarget()). (cmb) 281 . Fixed bug #68175 (RegexIterator pregFlags are NULL instead of 0). (Tim 282 Siebels) 283 284- Standard: 285 . Fixed bug #76778 (array_reduce leaks memory if callback throws exception). 286 (cmb) 287 288- zlib: 289 . Fixed bug #65988 (Zlib version check fails when an include/zlib/ style dir 290 is passed to the --with-zlib configure option). (Jay Bonci) 291 . Fixed bug #76709 (Minimal required zlib library is 1.2.0.4). (petk) 292 29316 Aug 2018, PHP 7.1.21 294 295- Calendar: 296 . Fixed bug #52974 (jewish.c: compile error under Windows with GBK charset). 297 (cmb) 298 299- Filter: 300 . Fixed bug #76366 (References in sub-array for filtering breaks the filter). 301 (ZiHang Gao) 302 303- PDO_Firebird: 304 . Fixed bug #76488 (Memory leak when fetching a BLOB field). (Simonov Denis) 305 306- PDO_PgSQL: 307 . Fixed bug #75402 (Possible Memory Leak using PDO::CURSOR_SCROLL option). 308 (Anatol) 309 310- SQLite3: 311 . Fixed #76665 (SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn't juggle). 312 (cmb) 313 314- Standard: 315 . Fixed bug #68553 (array_column: null values in $index_key become incrementing 316 keys in result). (Laruence) 317 . Fixed bug #73817 (Incorrect entries in get_html_translation_table). (cmb) 318 . Fixed bug #76643 (Segmentation fault when using `output_add_rewrite_var`). 319 (cmb) 320 321- Zip: 322 . Fixed bug #76524 (ZipArchive memory leak (OVERWRITE flag and empty archive)). 323 (Timur Ibragimov) 324 32507 Jul 2018, PHP 7.1.20 326 327- Core: 328 . Fixed bug #76534 (PHP hangs on 'illegal string offset on string references 329 with an error handler). (Laruence) 330 . Fixed bug #76502 (Chain of mixed exceptions and errors does not serialize 331 properly). (Nikita) 332 333- Date: 334 . Fixed bug #76462 (Undefined property: DateInterval::$f). (Anatol) 335 336- FPM: 337 . Fixed bug #73342 (Vulnerability in php-fpm by changing stdin to 338 non-blocking). (Nikita) 339 340- GMP: 341 . Fixed bug #74670 (Integer Underflow when unserializing GMP and possible 342 other classes). (Nikita) 343 344- intl: 345 . Fixed bug #76556 (get_debug_info handler for BreakIterator shows wrong 346 type). (cmb) 347 348- mbstring: 349 . Fixed bug #76532 (Integer overflow and excessive memory usage 350 in mb_strimwidth). (MarcusSchwarz) 351 352- PGSQL: 353 . Fixed bug #76548 (pg_fetch_result did not fetch the next row). (Anatol) 354 355- phpdbg: 356 . Fix arginfo wrt. optional/required parameters. (cmb) 357 358- Reflection: 359 . Fixed bug #76536 (PHP crashes with core dump when throwing exception in 360 error handler). (Laruence) 361 . Fixed bug #75231 (ReflectionProperty#getValue() incorrectly works with 362 inherited classes). (Nikita) 363 364- Standard: 365 . Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys). 366 (Laruence) 367 . Fixed bug #71848 (getimagesize with $imageinfo returns false). (cmb) 368 36922 Jun 2018, PHP 7.1.19 370 371- CLI Server: 372 . Fixed bug #76333 (PHP built-in server does not find files if root path 373 contains special characters). (Anatol) 374 375- OpenSSL: 376 . Fixed bug #76296 (openssl_pkey_get_public does not respect open_basedir). 377 (Erik Lax, Jakub Zelenka) 378 . Fixed bug #76174 (openssl extension fails to build with LibreSSL 2.7). 379 (Jakub Zelenka) 380 381- SPL: 382 . Fixed bug #76367 (NoRewindIterator segfault 11). (Laruence) 383 384- Standard: 385 . Fixed bug #76335 ("link(): Bad file descriptor" with non-ASCII path). 386 (Anatol) 387 . Fixed bug #76383 (array_map on $GLOBALS returns IS_INDIRECT). (Bob) 388 38924 May 2018, PHP 7.1.18 390 391- FPM: 392 . Fixed bug #76075 --with-fpm-acl wrongly tries to find libacl on FreeBSD. 393 (mgorny) 394 395- intl: 396 . Fixed bug #74385 (Locale::parseLocale() broken with some arguments). 397 (Anatol) 398 399- Opcache: 400 . Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp). (Dmitry) 401 . Fixed bug #76275 (Assertion failure in file cache when unserializing empty 402 try_catch_array). (Nikita) 403 . Fixed bug #76281 (Opcache causes incorrect "undefined variable" errors). 404 (Nikita) 405 406- Reflection: 407 . Fixed arginfo for array_replace(_recursive) and array_merge(_recursive). 408 (carusogabriel) 409 410 41126 Apr 2018, PHP 7.1.17 412 413- Date: 414 . Fixed bug #76131 (mismatch arginfo for date_create). (carusogabriel) 415 416- FPM: 417 . Fixed bug #68440 (ERROR: failed to reload: execvp() failed: Argument list 418 too long). (Jacob Hipps) 419 . Fixed incorrect write to getenv result in FPM reload. (Jakub Zelenka) 420 421- GD: 422 . Fixed bug #52070 (imagedashedline() - dashed line sometimes is not visible). 423 (cmb) 424 425- intl: 426 . Fixed bug #76153 (Intl compilation fails with icu4c 61.1). (Anatol) 427 428- mbstring: 429 . Fixed bug #75944 (Wrong cp1251 detection). (dmk001) 430 . Fixed bug #76113 (mbstring does not build with Oniguruma 6.8.1). 431 (chrullrich, cmb) 432 433- phpdbg: 434 . Fixed bug #76143 (Memory corruption: arbitrary NUL overwrite). (Laruence) 435 436- SPL: 437 . Fixed bug #76131 (mismatch arginfo for splarray constructor). 438 (carusogabriel) 439 440- standard: 441 . Fixed bug #75996 (incorrect url in header for mt_rand). (tatarbj) 442 44329 Mar 2018, PHP 7.1.16 444 445- Core: 446 . Fixed bug #76025 (Segfault while throwing exception in error_handler). 447 (Dmitry, Laruence) 448 . Fixed bug #76044 ('date: illegal option -- -' in ./configure on FreeBSD). 449 (Anatol) 450 451- FPM: 452 . Fixed bug #75605 (Dumpable FPM child processes allow bypassing opcache 453 access controls). (Jakub Zelenka) 454 455- GD: 456 . Fixed bug #73957 (signed integer conversion in imagescale()). (cmb) 457 458- ODBC: 459 . Fixed bug #76088 (ODBC functions are not available by default on Windows). 460 (cmb) 461 462- Opcache: 463 . Fixed bug #76074 (opcache corrupts variable in for-loop). (Bob) 464 465- Phar: 466 . Fixed bug #76085 (Segmentation fault in buildFromIterator when directory 467 name contains a \n). (Laruence) 468 469- Standard: 470 . Fixed bug #74139 (mail.add_x_header default inconsistent with docs). (cmb) 471 . Fixed bug #76068 (parse_ini_string fails to parse "[foo]\nbar=1|>baz" with 472 segfault). (Anatol) 473 47401 Mar 2018, PHP 7.1.15 475 476- Apache2Handler: 477 . Fixed bug #75882 (a simple way for segfaults in threadsafe php just with 478 configuration). (Anatol) 479 480- Date: 481 . Fixed bug #75857 (Timezone gets truncated when formatted). (carusogabriel) 482 . Fixed bug #75928 (Argument 2 for `DateTimeZone::listIdentifiers()` should 483 accept `null`). (Pedro Lacerda) 484 . Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it). 485 (jhdxr) 486 487- FTP: 488 . Fixed ftp_pasv arginfo. (carusogabriel) 489 490-GD: 491 . Fixed imagesetinterpolation arginfo. (Gabriel Caruso) 492 493- iconv: 494 . Fixed bug #75867 (Freeing uninitialized pointer). (Philip Prindeville) 495 496- LDAP: 497 . Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros). (dzuelke) 498 499- libxml2: 500 . Fixed bug #75871 (use pkg-config where available). (pmmaga) 501 502- mysqlnd 503 . Fixed negotiation of MySQL authenticaton plugin. (Johannes) 504 . Fixed a memleak with SSL connections. (Johannes) 505 506- ODBC: 507 . Fixed bug #73725 (Unable to retrieve value of varchar(max) type). (Anatol) 508 509- Opcache: 510 . Fixed bug #75969 (Assertion failure in live range DCE due to block pass 511 misoptimization). (Nikita) 512 513- OpenSSL: 514 . Fixed openssl_* arginfos. (carusogabriel) 515 516- PCNTL: 517 . Fixed bug #75873 (pcntl_wexitstatus returns incorrect on Big_Endian platform 518 (s390x)). (Sam Ding) 519 520- PGSQL: 521 . Fixed #75838 (Memory leak in pg_escape_bytea()). (ard_1 at mail dot ru) 522 523- Phar: 524 . Fixed bug #65414 (deal with leading slash when adding files correctly). 525 (bishopb) 526 527- SPL: 528 . Fixed bug #74519 (strange behavior of AppendIterator). (jhdxr) 529 530- Standard: 531 . Fixed bug #75961 (Strange references behavior). (Laruence) 532 . Fixed bug #75916 (DNS_CAA record results contain garbage). (Mike, 533 Philip Sharp) 534 . Fixed some arginfos. (carusogabriel) 535 . Fixed bug #75981 (stack-buffer-overflow while parsing HTTP response). (Stas) 536 53701 Feb 2018, PHP 7.1.14 538 539- Core: 540 . Fixed bug #75679 (Path 260 character problem). (Anatol) 541 . Fixed bug #75786 (segfault when using spread operator on generator passed 542 by reference). (Nikita) 543 . Fixed bug #75799 (arg of get_defined_functions is optional). (carusogabriel) 544 . Fixed bug #75396 (Exit inside generator finally results in fatal error). 545 (Nikita) 546 . Fixed bug #75079 (self keyword leads to incorrectly generated TypeError when 547 in closure in trait). (Nikita) 548 549- FCGI: 550 . Fixed bug #75794 (getenv() crashes on Windows 7.2.1 when second parameter is 551 false). (Anatol) 552 553- IMAP: 554 . Fixed bug #75774 (imap_append HeapCorruction). (Anatol) 555 556- Mbstring: 557 . Fixed bug #62545 (wrong unicode mapping in some charsets). (cmb) 558 559- Opcache: 560 . Fixed bug #75720 (File cache not populated after SHM runs full). (Dmitry) 561 . Fixed bug #75579 (Interned strings buffer overflow may cause crash). 562 (Dmitry) 563 564- PGSQL: 565 . Fixed bug #75671 (pg_version() crashes when called on a connection to 566 cockroach). (magicaltux at gmail dot com) 567 568- Readline: 569 . Fixed bug #75775 (readline_read_history segfaults with empty file). 570 (Anatol) 571 572- SAPI: 573 . Fixed bug #75735 ([embed SAPI] Segmentation fault in 574 sapi_register_post_entry). (Laruence) 575 576- SOAP: 577 . Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is 578 used). (Anton Artamonov) 579 . Fixed bug #75502 (Segmentation fault in zend_string_release). (Nikita) 580 581- SPL: 582 . Fixed bug #75717 (RecursiveArrayIterator does not traverse arrays by 583 reference). (Nikita) 584 . Fixed bug #75242 (RecursiveArrayIterator doesn't have constants from parent 585 class). (Nikita) 586 . Fixed bug #73209 (RecursiveArrayIterator does not iterate object 587 properties). (Nikita) 588 589- Standard: 590 . Fixed bug #75781 (substr_count incorrect result). (Laruence) 591 59204 Jan 2018, PHP 7.1.13 593 594- Core: 595 . Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26). (Laruence) 596 . Fixed bug #75384 (PHP seems incompatible with OneDrive files on demand). 597 (Anatol) 598 . Fixed bug #74862 (Unable to clone instance when private __clone defined). 599 (Daniel Ciochiu) 600 . Fixed bug #75074 (php-process crash when is_file() is used with strings 601 longer 260 chars). (Anatol) 602 . Fixed bug #69727 (Remove timestamps from build to make it reproducible). 603 (jelle van der Waa) 604 605- CLI Server: 606 . Fixed bug #60471 (Random "Invalid request (unexpected EOF)" using a router 607 script). (SammyK) 608 . Fixed bug #73830 (Directory does not exist). (Anatol) 609 610- FPM: 611 . Fixed bug #64938 (libxml_disable_entity_loader setting is shared between 612 requests). (Remi) 613 614- GD: 615 . Fixed bug #75571 (Potential infinite loop in gdImageCreateFromGifCtx). 616 (Christoph) 617 618- Opcache: 619 . Fixed bug #75608 ("Narrowing occurred during type inference" error). 620 (Laruence, Dmitry) 621 . Fixed bug #75570 ("Narrowing occurred during type inference" error). 622 (Dmitry) 623 . Fixed bug #75579 (Interned strings buffer overflow may cause crash). 624 (Dmitry) 625 626- PCRE: 627 . Fixed bug #74183 (preg_last_error not returning error code after error). 628 (Andrew Nester) 629 630- Phar: 631 . Fixed bug #74782 (remove file name from output to avoid XSS). (stas) 632 633- Standard: 634 . Fixed bug #75511 (fread not free unused buffer). (Laruence) 635 . Fixed bug #75514 (mt_rand returns value outside [$min,$max]+ on 32-bit) 636 (Remi) 637 . Fixed bug #75535 (Inappropriately parsing HTTP response leads to PHP 638 segment fault). (Nikita) 639 . Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator 640 that getrandom() is missing). (sarciszewski) 641 . Fixed bug #73124 (php_ini_scanned_files() not reporting correctly). 642 (John Stevenson) 643 . Fixed bug #75574 (putenv does not work properly if parameter contains 644 non-ASCII unicode character). (Anatol) 645 646- Zip: 647 . Fixed bug #75540 (Segfault with libzip 1.3.1). (Remi) 648 64923 Nov 2017, PHP 7.1.12 650 651- Core: 652 . Fixed bug #75420 (Crash when modifing property name in __isset for 653 BP_VAR_IS). (Laruence) 654 . Fixed bug #75368 (mmap/munmap trashing on unlucky allocations). (Nikita, 655 Dmitry) 656 657- CLI: 658 . Fixed bug #75287 (Builtin webserver crash after chdir in a shutdown 659 function). (Laruence) 660 661- Enchant: 662 . Fixed bug #53070 (enchant_broker_get_path crashes if no path is set). (jelle 663 van der Waa, cmb) 664 . Fixed bug #75365 (Enchant still reports version 1.1.0). (cmb) 665 666- Exif: 667 . Fixed bug #75301 (Exif extension has built in revision version). (Peter 668 Kokot) 669 670- GD: 671 . Fixed bug #65148 (imagerotate may alter image dimensions). (cmb) 672 . Fixed bug #75437 (Wrong reflection on imagewebp). (Fabien Villepinte) 673 674- intl: 675 . Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead 676 of destination). (andrewnester) 677 678- interbase: 679 . Fixed bug #75453 (Incorrect reflection for ibase_[p]connect). (villfa) 680 681- Mysqli: 682 . Fixed bug #75434 (Wrong reflection for mysqli_fetch_all function). (Fabien 683 Villepinte) 684 685- OCI8: 686 . Fixed valgrind issue. (Tianfang Yang) 687 688- OpenSSL: 689 . Fixed bug #75363 (openssl_x509_parse leaks memory). (Bob, Jakub Zelenka) 690 . Fixed bug #75307 (Wrong reflection for openssl_open function). (villfa) 691 692- Opcache: 693 . Fixed bug #75373 (Warning Internal error: wrong size calculation). (Laruence, Dmitry) 694 695- PGSQL: 696 . Fixed bug #75419 (Default link incorrectly cleared/linked by pg_close()). (Sara) 697 698- SOAP: 699 . Fixed bug #75464 (Wrong reflection on SoapClient::__setSoapHeaders). (villfa) 700 701- Zlib: 702 . Fixed bug #75299 (Wrong reflection on inflate_init and inflate_add). (Fabien 703 Villepinte) 704 70526 Oct 2017, PHP 7.1.11 706 707- Core: 708 . Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()). 709 (Laruence) 710 . Fixed bug #75236 (infinite loop when printing an error-message). (Andrea) 711 . Fixed bug #75252 (Incorrect token formatting on two parse errors in one 712 request). (Nikita) 713 . Fixed bug #75220 (Segfault when calling is_callable on parent). 714 (andrewnester) 715 . Fixed bug #75290 (debug info of Closures of internal functions contain 716 garbage argument names). (Andrea) 717 718- Apache2Handler: 719 . Fixed bug #75311 (error: 'zend_hash_key' has no member named 'arKey' in 720 apache2handler). (mcarbonneaux) 721 722- Date: 723 . Fixed bug #75055 (Out-Of-Bounds Read in timelib_meridian()). (Derick) 724 725- Hash: 726 . Fixed bug #75303 (sha3 hangs on bigendian). (Remi) 727 728- Intl: 729 . Fixed bug #75318 (The parameter of UConverter::getAliases() is not 730 optional). (cmb) 731 732- litespeed: 733 . Fixed bug #75248 (Binary directory doesn't get created when building 734 only litespeed SAPI). (petk) 735 . Fixed bug #75251 (Missing program prefix and suffix). (petk) 736 737- mcrypt: 738 . Fixed bug #72535 (arcfour encryption stream filter crashes php). (Leigh) 739 740- MySQLi: 741 . Fixed bug #75018 (Data corruption when reading fields of bit type). (Anatol) 742 743- OCI8: 744 . Fixed incorrect reference counting. (Dmitry, Tianfang Yang) 745 746- Opcache 747 . Fixed bug #75255 (Request hangs and not finish). (Dmitry) 748 749- PCRE: 750 . Fixed bug #75207 (applied upstream patch for CVE-2016-1283). (Anatol) 751 752- PDO_mysql: 753 . Fixed bug #75177 (Type 'bit' is fetched as unexpected string). (Anatol) 754 755- SPL: 756 . Fixed bug #73629 (SplDoublyLinkedList::setIteratorMode masks intern flags). 757 (J. Jeising, cmb) 758 75928 Sep 2017, PHP 7.1.10 760 761- Core: 762 . Fixed bug #75042 (run-tests.php issues with EXTENSION block). (John Boehr) 763 764- BCMath: 765 . Fixed bug #44995 (bcpowmod() fails if scale != 0). (cmb) 766 . Fixed bug #46781 (BC math handles minus zero incorrectly). (cmb) 767 . Fixed bug #54598 (bcpowmod() may return 1 if modulus is 1). (okano1220, cmb) 768 . Fixed bug #75178 (bcpowmod() misbehaves for non-integer base or modulus). (cmb) 769 770- CLI server: 771 . Fixed bug #70470 (Built-in server truncates headers spanning over TCP 772 packets). (bouk) 773 774- CURL: 775 . Fixed bug #75093 (OpenSSL support not detected). (Remi) 776 777- GD: 778 . Fixed bug #75124 (gdImageGrayScale() may produce colors). (cmb) 779 . Fixed bug #75139 (libgd/gd_interpolation.c:1786: suspicious if ?). (cmb) 780 781- Gettext: 782 . Fixed bug #73730 (textdomain(null) throws in strict mode). (cmb) 783 784- Intl: 785 . Fixed bug #75090 (IntlGregorianCalendar doesn't have constants from parent 786 class). (tpunt) 787 . Fixed bug #75193 (segfault in collator_convert_object_to_string). (Remi) 788 789- PDO_OCI: 790 . Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized 791 before PHP-FPM sets it up). (Ingmar Runge) 792 793- SPL: 794 . Fixed bug #75155 (AppendIterator::append() is broken when appending another 795 AppendIterator). (Nikita) 796 . Fixed bug #75173 (incorrect behavior of AppendIterator::append in foreach loop). 797 (jhdxr) 798 799- Standard: 800 . Fixed bug #75152 (signed integer overflow in parse_iv). (Laruence) 801 . Fixed bug #75097 (gethostname fails if your host name is 64 chars long). (Andrea) 802 80331 Aug 2017, PHP 7.1.9 804 805- Core: 806 . Fixed bug #74947 (Segfault in scanner on INF number). (Laruence) 807 . Fixed bug #74954 (null deref and segfault in zend_generator_resume()). (Bob) 808 . Fixed bug #74725 (html_errors=1 breaks unhandled exceptions). (Andrea) 809 . Fixed bug #75063 (Main CWD initialized with wrong codepage). (Anatol) 810 . Fixed bug #75349 (NAN comparison). (Sara) 811 812- cURL: 813 . Fixed bug #74125 (Fixed finding CURL on systems with multiarch support). 814 (cebe) 815 816- Date: 817 . Fixed bug #75002 (Null Pointer Dereference in timelib_time_clone). (Derick) 818 819- Intl: 820 . Fixed bug #74993 (Wrong reflection on some locale_* functions). (Sara) 821 822- Mbstring: 823 . Fixed bug #71606 (Segmentation fault mb_strcut with HTML-ENTITIES encoding). 824 (cmb) 825 . Fixed bug #62934 (mb_convert_kana() does not convert iteration marks). 826 (Nikita) 827 . Fixed bug #75001 (Wrong reflection on mb_eregi_replace). (Fabien 828 Villepinte) 829 830- MySQLi: 831 . Fixed bug #74968 (PHP crashes when calling mysqli_result::fetch_object with 832 an abstract class). (Anatol) 833 834- OCI8: 835 . Expose oci_unregister_taf_callback() (Tianfang Yang) 836 837- Opcache: 838 . Fixed bug #74980 (Narrowing occurred during type inference). (Laruence) 839 840- phar: 841 . Fixed bug #74991 (include_path has a 4096 char limit in some cases). 842 (bwbroersma) 843 844- Reflection: 845 . Fixed bug #74949 (null pointer dereference in _function_string). (Laruence) 846 847- Session: 848 . Fixed bug #74892 (Url Rewriting (trans_sid) not working on urls that start 849 with "#"). (Andrew Nester) 850 . Fixed bug #74833 (SID constant created with wrong module number). (Anatol) 851 852- SimpleXML: 853 . Fixed bug #74950 (nullpointer deref in simplexml_element_getDocNamespaces). 854 (Laruence) 855 856- SPL: 857 . Fixed bug #75049 (spl_autoload_unregister can't handle 858 spl_autoload_functions results). (Laruence) 859 . Fixed bug #74669 (Unserialize ArrayIterator broken). (Andrew Nester) 860 . Fixed bug #74977 (Appending AppendIterator leads to segfault). 861 (Andrew Nester) 862 . Fixed bug #75015 (Crash in recursive iterator destructors). (Julien) 863 864- Standard: 865 . Fixed bug #75075 (unpack with X* causes infinity loop). (Laruence) 866 . Fixed bug #74103 (heap-use-after-free when unserializing invalid array 867 size). (Nikita) 868 . Fixed bug #75054 (A Denial of Service Vulnerability was found when 869 performing deserialization). (Nikita) 870 871- WDDX: 872 . Fixed bug #73793 (WDDX uses wrong decimal seperator). (cmb) 873 874- XMLRPC: 875 . Fixed bug #74975 (Incorrect xmlrpc serialization for classes with declared 876 properties). (blar) 877 87803 Aug 2017, PHP 7.1.8 879 880- Core: 881 . Fixed bug #74832 (Loading PHP extension with already registered function 882 name leads to a crash). (jpauli) 883 . Fixed bug #74780 (parse_url() broken when query string contains colon). 884 (jhdxr) 885 . Fixed bug #74761 (Unary operator expected error on some systems). (petk) 886 . Fixed bug #73900 (Use After Free in unserialize() SplFixedArray). (nikic) 887 . Fixed bug #74923 (Crash when crawling through network share). (Anatol) 888 . Fixed bug #74913 (fixed incorrect poll.h include). (petk) 889 . Fixed bug #74906 (fixed incorrect errno.h include). (petk) 890 891- Date: 892 . Fixed bug #74852 (property_exists returns true on unknown DateInterval 893 property). (jhdxr) 894 895- OCI8: 896 . Fixed bug #74625 (Integer overflow in oci_bind_array_by_name). (Ingmar Runge) 897 898- Opcache: 899 . Fixed bug #74623 (Infinite loop in type inference when using HTMLPurifier). 900 (nikic) 901 902- OpenSSL: 903 . Fixed bug #74798 (pkcs7_en/decrypt does not work if \x0a is used in content). 904 (Anatol) 905 . Added OPENSSL_DONT_ZERO_PAD_KEY constant to prevent key padding and fix bug 906 #71917 (openssl_open() returns junk on envelope < 16 bytes) and bug #72362 907 (OpenSSL Blowfish encryption is incorrect for short keys). (Jakub Zelenka) 908 909- PDO: 910 . Fixed bug #69356 (PDOStatement::debugDumpParams() truncates query). (Adam 911 Baratz) 912 913- SPL: 914 . Fixed bug #73471 (PHP freezes with AppendIterator). (jhdxr) 915 916- SQLite3: 917 . Fixed bug #74883 (SQLite3::__construct() produces "out of memory" exception 918 with invalid flags). (Anatol) 919 920- Wddx: 921 . Fixed bug #73173 (huge memleak when wddx_unserialize). 922 (tloi at fortinet dot com) 923 924- zlib: 925 . Fixed bug #73944 (dictionary option of inflate_init() does not work). 926 (wapmorgan) 927 92806 Jul 2017, PHP 7.1.7 929 930- Core: 931 . Fixed bug #74738 (Multiple [PATH=] and [HOST=] sections not properly 932 parsed). (Manuel Mausz) 933 . Fixed bug #74658 (Undefined constants in array properties result in broken 934 properties). (Laruence) 935 . Fixed misparsing of abstract unix domain socket names. (Sara) 936 . Fixed bug #74603 (PHP INI Parsing Stack Buffer Overflow Vulnerability). 937 (Stas) 938 . Fixed bug #74101, bug #74614 (Unserialize Heap Use-After-Free (READ: 1) in 939 zval_get_type). (Nikita) 940 . Fixed bug #74111 (Heap buffer overread (READ: 1) finish_nested_data from 941 unserialize). (Nikita) 942 . Fixed bug #74819 (wddx_deserialize() heap out-of-bound read via 943 php_parse_date()). (Derick) 944 945- Date: 946 . Fixed bug #74639 (implement clone for DatePeriod and DateInterval). 947 (andrewnester) 948 949- DOM: 950 . Fixed bug #69373 (References to deleted XPath query results). (ttoohey) 951 952- GD: 953 . Fixed bug #74435 (Buffer over-read into uninitialized memory). (cmb) 954 955- Intl: 956 . Fixed bug #73473 (Stack Buffer Overflow in msgfmt_parse_message). (libnex) 957 . Fixed bug #74705 (Wrong reflection on Collator::getSortKey and 958 collator_get_sort_key). (Tyson Andre, Remi) 959 960- Mbstring: 961 . Add oniguruma upstream fix (CVE-2017-9224, CVE-2017-9226, CVE-2017-9227, 962 CVE-2017-9228, CVE-2017-9229) (Remi, Mamoru TASAKA) 963 964- OCI8: 965 . Add TAF callback (PR #2459). (KoenigsKind) 966 967- Opcache: 968 . Fixed bug #74663 (Segfault with opcache.memory_protect and 969 validate_timestamp). (Laruence) 970 . Revert opcache.enable_cli to default disabled. (Nikita) 971 972- OpenSSL: 973 . Fixed bug #74720 (pkcs7_en/decrypt does not work if \x1a is used in 974 content). (Anatol) 975 . Fixed bug #74651 (negative-size-param (-1) in memcpy in zif_openssl_seal()). 976 (Stas) 977 978- PDO_OCI: 979 . Support Instant Client 12.2 in --with-pdo-oci configure option. 980 (Tianfang Yang) 981 982- Reflection: 983 . Fixed bug #74673 (Segfault when cast Reflection object to string with 984 undefined constant). (Laruence) 985 986- SPL: 987 . Fixed bug #74478 (null coalescing operator failing with SplFixedArray). 988 (jhdxr) 989 990- FTP: 991 . Fixed bug #74598 (ftp:// wrapper ignores context arg). (Sara) 992 993- PHAR: 994 . Fixed bug #74386 (Phar::__construct reflection incorrect). (villfa) 995 996- SOAP 997 . Fixed bug #74679 (Incorrect conversion array with WSDL_CACHE_MEMORY). 998 (Dmitry) 999 1000- Streams: 1001 . Fixed bug #74556 (stream_socket_get_name() returns '\0'). (Sara) 1002 10038 Jun 2017, PHP 7.1.6 1004 1005- Core: 1006 . Fixed bug #74600 (crash (SIGSEGV) in _zend_hash_add_or_update_i). 1007 (Laruence) 1008 . Fixed bug #74546 (SIGILL in ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST). 1009 (Laruence) 1010 . Fixed bug #74589 (__DIR__ wrong for unicode character). (Anatol) 1011 1012- intl: 1013 . Fixed bug #74468 (wrong reflection on Collator::sortWithSortKeys). (villfa) 1014 1015- MySQLi: 1016 . Fixed bug #74547 (mysqli::change_user() doesn't accept null as $database 1017 argument w/strict_types). (Anatol) 1018 1019- Opcache: 1020 . Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled). (Laruence) 1021 1022- phar: 1023 . Fixed bug #51918 (Phar::webPhar() does not handle requests sent through PUT 1024 and DELETE method). (Christian Weiske) 1025 1026- Readline: 1027 . Fixed bug #74490 (readline() moves the cursor to the beginning of the line). 1028 (Anatol) 1029 1030- Standard: 1031 . Fixed bug #74510 (win32/sendmail.c anchors CC header but not BCC). 1032 (Damian Wadley, Anatol) 1033 1034- xmlreader: 1035 . Fixed bug #74457 (Wrong reflection on XMLReader::expand). (villfa) 1036 103711 May 2017, PHP 7.1.5 1038 1039- Core: 1040 . Fixed bug #74408 (Endless loop bypassing execution time limit). (Laruence) 1041 . Fixed bug #74353 (Segfault when killing within bash script trap code). 1042 (Laruence) 1043 . Fixed bug #74340 (Magic function __get has different behavior in php 7.1.x). 1044 (Nikita) 1045 . Fixed bug #74188 (Null coalescing operator fails for undeclared static 1046 class properties). (tpunt) 1047 . Fixed bug #74444 (multiple catch freezes in some cases). (David Matějka) 1048 . Fixed bug #74410 (stream_select() is broken on Windows Nanoserver). 1049 (Matt Ficken) 1050 . Fixed bug #74337 (php-cgi.exe crash on facebook callback). 1051 (Anton Serbulov) 1052 . Patch for bug #74216 was reverted. (Anatol) 1053 1054- Date: 1055 . Fixed bug #74404 (Wrong reflection on DateTimeZone::getTransitions). 1056 (krakjoe) 1057 . Fixed bug #74080 (add constant for RFC7231 format datetime). (duncan3dc) 1058 1059- DOM: 1060 . Fixed bug #74416 (Wrong reflection on DOMNode::cloneNode). 1061 (Remi, Fabien Villepinte) 1062 1063- Fileinfo: 1064 . Fixed bug #74379 (syntax error compile error in libmagic/apprentice.c). 1065 (Laruence) 1066 1067- GD: 1068 . Fixed bug #74343 (compile fails on solaris 11 with system gd2 library). 1069 (krakjoe) 1070 1071- MySQLi: 1072 . Fixed bug #74432 (mysqli_connect adding ":3306" to $host if $port parameter 1073 not given). (Anatol) 1074 1075- MySQLnd: 1076 . Fixed bug #74376 (Invalid free of persistent results on error/connection 1077 loss). (Yussuf Khalil) 1078 1079- Intl: 1080 . Fixed bug #65683 (Intl does not support DateTimeImmutable). (Ben Scholzen) 1081 . Fixed bug #74298 (IntlDateFormatter->format() doesn't return 1082 microseconds/fractions). (Andrew Nester) 1083 . Fixed bug #74433 (wrong reflection for Normalizer methods). (villfa) 1084 . Fixed bug #74439 (wrong reflection for Locale methods). (villfa) 1085 1086- Opcache: 1087 . Fixed bug #74456 (Segmentation error while running a script in CLI mode). 1088 (Laruence) 1089 . Fixed bug #74431 (foreach infinite loop). (Nikita) 1090 . Fixed bug #74442 (Opcached version produces a nested array). (Nikita) 1091 1092- OpenSSL: 1093 . Fixed bug #73833 (null character not allowed in openssl_pkey_get_private). 1094 (Jakub Zelenka) 1095 . Fixed bug #73711 (Segfault in openssl_pkey_new when generating DSA or DH 1096 key). (Jakub Zelenka) 1097 . Fixed bug #74341 (openssl_x509_parse fails to parse ASN.1 UTCTime without 1098 seconds). (Moritz Fain) 1099 . Fixed bug #73808 (iv length warning too restrictive for aes-128-ccm). 1100 (Jakub Zelenka) 1101 1102- phar: 1103 . Fixed bug #74383 (phar method parameters reflection correction). 1104 (mhagstrand) 1105 1106- Readline: 1107 . Fixed bug #74489 (readline() immediately returns false in interactive 1108 console mode). (Anatol) 1109 1110- Standard: 1111 . Fixed bug #72071 (setcookie allows max-age to be negative). (Craig Duncan) 1112 . Fixed bug #74361 (Compaction in array_rand() violates COW). (Nikita) 1113 1114- Streams: 1115 . Fixed bug #74429 (Remote socket URI with unique persistence identifier 1116 broken). (Sara) 1117 111813 Apr 2017, PHP 7.1.4 1119 1120- Core: 1121 . Fixed bug #74149 (static embed SAPI linkage error). (krakjoe) 1122 . Fixed bug #73370 (falsely exits with "Out of Memory" when using 1123 USE_ZEND_ALLOC=0). (Nikita) 1124 . Fixed bug #73960 (Leak with instance method calling static method with 1125 referenced return). (Nikita) 1126 . Fixed bug #69676 (Resolution of self::FOO in class constants not correct). 1127 (Nikita) 1128 . Fixed bug #74265 (Build problems after 7.0.17 release: undefined reference 1129 to `isfinite'). (Nikita) 1130 . Fixed bug #74302 (yield fromLABEL is over-greedy). (Sara) 1131 1132- Apache: 1133 . Reverted patch for bug #61471, fixes bug #74318. (Anatol) 1134 1135- Date: 1136 . Fixed bug #72096 (Swatch time value incorrect for dates before 1970). (mcq8) 1137 1138- DOM: 1139 . Fixed bug #74004 (LIBXML_NOWARNING flag ingnored on loadHTML*). 1140 (somedaysummer) 1141 1142- iconv: 1143 . Fixed bug #74230 (iconv fails to fail on surrogates). (Anatol) 1144 1145- OCI8: 1146 . Fixed uninitialized data causing random crash. (Dmitry) 1147 1148- Opcache: 1149 . Fixed bug #74250 (OPcache compilation performance regression in PHP 5.6/7 1150 with huge classes). (Nikita) 1151 1152- OpenSSL: 1153 . Fixed bug #72333 (fwrite() on non-blocking SSL sockets doesn't work). 1154 (Jakub Zelenka) 1155 1156- PDO MySQL: 1157 . Fixed bug #71003 (Expose MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT to PDO 1158 interface). (Thomas Orozco) 1159 1160- SPL: 1161 . Fixed bug #74058 (ArrayObject can not notice changes). (Andrew Nester) 1162 1163- Sqlite: 1164 . Implemented FR #74217 (Allow creation of deterministic sqlite functions). 1165 (Andrew Nester) 1166 1167- Streams: 1168 . Fixed bug #74216 (Correctly fail on invalid IP address ports). (Sara) 1169 1170- Zlib: 1171 . Fixed bug #74240 (deflate_add can allocate too much memory). (Matt Bonneau) 1172 117316 Mar 2017, PHP 7.1.3 1174 1175- Core: 1176 . Fixed bug #74157 (Segfault with nested generators). (Laruence) 1177 . Fixed bug #74164 (PHP hangs when an invalid value is dynamically passed to 1178 typehinted by-ref arg). (Laruence) 1179 . Fixed bug #74093 (Maximum execution time of n+2 seconds exceed not written 1180 in error_log). (Laruence) 1181 . Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite). 1182 (Dmitry, Laruence) 1183 . Fixed bug #74084 (Out of bound read - zend_mm_alloc_small). (Laruence) 1184 . Fixed bug #73807 (Performance problem with processing large post request). 1185 (Nikita) 1186 . Fixed bug #73998 (array_key_exists fails on arrays created by 1187 get_object_vars). (mhagstrand) 1188 . Fixed bug #73954 (NAN check fails on Alpine Linux with musl). (Andrea) 1189 . Fixed bug #73677 (Generating phar.phar core dump with gcc ASAN enabled 1190 build). (ondrej) 1191 1192- Apache: 1193 . Fixed bug #61471 (Incomplete POST does not timeout but is passed to PHP). 1194 (Zheng Shao) 1195 1196- Date: 1197 . Fixed bug #73837 ("new DateTime()" sometimes returns 1 second ago value). 1198 (Derick) 1199 1200- FPM: 1201 . Fixed bug #69860 (php-fpm process accounting is broken with keepalive). 1202 (Denis Yeldandi) 1203 1204- Hash: 1205 . Fixed bug #73127 (gost-crypto hash incorrect if input data contains long 1206 0xFF sequence). (Grundik) 1207 1208- GD: 1209 . Fixed bug #74031 (ReflectionFunction for imagepng is missing last two 1210 parameters). (finwe) 1211 1212- Mysqlnd: 1213 . Fixed bug #74021 (fetch_array broken data. Data more then MEDIUMBLOB). 1214 (Andrew Nester, Nikita) 1215 1216- Opcache: 1217 . Fixed bug #74152 (if statement says true to a null variable). (Laruence) 1218 . Fixed bug #74019 (Segfault with list). (Laruence) 1219 1220- OpenSSL: 1221 . Fixed bug #74022 (PHP Fast CGI crashes when reading from a pfx file). 1222 (Anatol) 1223 . Fixed bug #74099 (Memory leak with openssl_encrypt()). (Andrew Nester) 1224 . Fixed bug #74159 (Writing a large buffer to a non-blocking encrypted stream 1225 fails with "bad write retry"). (trowski) 1226 1227- PDO_OCI: 1228 . Fixed bug #54379 (PDO_OCI: UTF-8 output gets truncated). (gureedo / Oracle) 1229 1230- SQLite3: 1231 . Fixed bug #74413 (incorrect reflection for SQLite3::enableExceptions). 1232 (krakjoe) 1233 1234- Standard: 1235 . Fixed bug #74005 (mail.add_x_header causes RFC-breaking lone line feed). 1236 (Anatol) 1237 . Fixed bug #74041 (substr_count with length=0 broken). (Nikita) 1238 . Fixed bug #73118 (is_callable callable name reports misleading value for 1239 anonymous classes). (Adam Saponara) 1240 . Fixed bug #74105 (PHP on Linux should use /dev/urandom when getrandom is 1241 not available). (Benjamin Robin) 1242 . Fixed bug #74708 (Invalid Reflection signatures for random_bytes and 1243 random_int). (Tyson Andre, Remi) 1244 1245- Streams: 1246 . Fixed bug #73496 (Invalid memory access in zend_inline_hash_func). 1247 (Laruence) 1248 . Fixed bug #74090 (stream_get_contents maxlength>-1 returns empty string). 1249 (Anatol) 1250 125116 Feb 2017, PHP 7.1.2 1252 1253- Core: 1254 . Improved GENERATOR_CREATE opcode handler. (Bob, Dmitry) 1255 . Fixed bug #73877 (readlink() returns garbage for UTF-8 paths). (Anatol) 1256 . Fixed bug #73876 (Crash when exporting **= in expansion of assign op). 1257 (Sara) 1258 . Fixed bug #73962 (bug with symlink related to cyrillic directory). (Anatol) 1259 . Fixed bug #73969 (segfault in debug_print_backtrace). (andrewnester) 1260 . Fixed bug #73994 (arginfo incorrect for unpack). (krakjoe) 1261 . Fixed bug #73973 (assertion error in debug_zval_dump). (andrewnester) 1262 1263- DOM: 1264 . Fixed bug #54382 (getAttributeNodeNS doesn't get xmlns* attributes). 1265 (aboks) 1266 1267- DTrace: 1268 . Fixed bug #73965 (DTrace reported as enabled when disabled). (Remi) 1269 1270- FCGI: 1271 . Fixed bug #73904 (php-cgi fails to load -c specified php.ini file). (Anatol) 1272 . Fixed bug #72898 (PHP_FCGI_CHILDREN is not included in phpinfo()). (Anatol) 1273 1274- FPM: 1275 . Fixed bug #69865 (php-fpm does not close stderr when using syslog). 1276 (m6w6) 1277 1278- GD: 1279 . Fixed bug #73968 (Premature failing of XBM reading). (cmb) 1280 1281- GMP: 1282 . Fixed bug #69993 (test for gmp.h needs to test machine includes). 1283 (Jordan Gigov) 1284 1285- Hash: 1286 . Added hash_hkdf() function. (Andrey Andreev) 1287 . Fixed bug #73961 (environmental build dependency in hash sha3 source). 1288 (krakjoe) 1289 1290- Intl: 1291 . Fix bug #73956 (Link use CC instead of CXX). (Remi) 1292 1293- LDAP: 1294 . Fixed bug #73933 (error/segfault with ldap_mod_replace and opcache). 1295 (Laruence) 1296 1297- MySQLi: 1298 . Fixed bug #73949 (leak in mysqli_fetch_object). (krakjoe) 1299 1300- Mysqlnd: 1301 . Fixed bug #69899 (segfault on close() after free_result() with mysqlnd). 1302 (Richard Fussenegger) 1303 1304- Opcache: 1305 . Fixed bug #73983 (crash on finish work with phar in cli + opcache). 1306 (Anatol) 1307 1308- OpenSSL: 1309 . Fixed bug #71519 (add serial hex to return value array). (xrobau) 1310 . Fixed bug #73692 (Compile ext/openssl with openssl 1.1.0 on Win). (Anatol) 1311 . Fixed bug #73978 (openssl_decrypt triggers bug in PDO). (Jakub Zelenka) 1312 1313- PDO_Firebird: 1314 . Implemented FR #72583 (All data are fetched as strings). (Dorin Marcoci) 1315 1316- PDO_PgSQL: 1317 . Fixed bug #73959 (lastInsertId fails to throw an exception for wrong 1318 sequence name). (andrewnester) 1319 1320- Phar: 1321 . Fixed bug #70417 (PharData::compress() doesn't close temp file). (cmb) 1322 1323- posix: 1324 . Fixed bug #71219 (configure script incorrectly checks for ttyname_r). (atoh) 1325 1326- Session: 1327 . Fixed bug #69582 (session not readable by root in CLI). (EvgeniySpinov) 1328 1329- SPL: 1330 . Fixed bug #73896 (spl_autoload() crashes when calls magic _call()). (Dmitry) 1331 1332- Standard: 1333 . Fixed bug #69442 (closing of fd incorrect when PTS enabled). (jaytaph) 1334 . Fixed bug #47021 (SoapClient stumbles over WSDL delivered with 1335 "Transfer-Encoding: chunked"). (Rowan Collins) 1336 . Fixed bug #72974 (imap is undefined service on AIX). (matthieu.sarter) 1337 . Fixed bug #72979 (money_format stores wrong length AIX). (matthieu.sarter) 1338 . Fixed bug #73374 (intval() with base 0 should detect binary). (Leigh) 1339 . Fixed bug #69061 (mail.log = syslog contains double information). 1340 (Tom Sommer) 1341 1342- ZIP: 1343 . Fixed bug #70103 (ZipArchive::addGlob ignores remove_all_path option). (cmb, 1344 Mitch Hagstrand) 1345 134619 Jan 2017, PHP 7.1.1 1347 1348- Core: 1349 . Fixed bug #73792 (invalid foreach loop hangs script). (Dmitry) 1350 . Fixed bug #73686 (Adding settype()ed values to ArrayObject results in 1351 references). (Nikita, Laruence) 1352 . Fixed bug #73663 ("Invalid opcode 65/16/8" occurs with a variable created 1353 with list()). (Laruence) 1354 . Fixed bug #73727 (ZEND_MM_BITSET_LEN is "undefined symbol" in 1355 zend_bitset.h). (Nikita) 1356 . Fixed bug #73753 (unserialized array pointer not advancing). (David Walker) 1357 . Fixed bug #73783 (SIG_IGN doesn't work when Zend Signals is enabled). 1358 (David Walker) 1359 1360- CLI: 1361 . Fixed bug #72555 (CLI output(japanese) on Windows). (Anatol) 1362 1363- COM: 1364 . Fixed bug #73679 (DOTNET read access violation using invalid codepage). 1365 (Anatol) 1366 1367- DOM: 1368 . Fixed bug #67474 (getElementsByTagNameNS filter on default ns). (aboks) 1369 1370- Mbstring: 1371 . Fixed bug #73646 (mb_ereg_search_init null pointer dereference). 1372 (Laruence) 1373 1374- Mysqli: 1375 . Fixed bug #73462 (Persistent connections don't set $connect_errno). 1376 (darkain) 1377 1378- Mysqlnd: 1379 . Optimized handling of BIT fields - less memory copies and lower memory 1380 usage. (Andrey) 1381 . Fixed bug #73800 (sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE). 1382 (vanviegen) 1383 1384- Opcache: 1385 . Fixed bug #73789 (Strange behavior of class constants in switch/case block). 1386 (Laruence) 1387 . Fixed bug #73746 (Method that returns string returns UNKNOWN:0 instead). 1388 (Laruence) 1389 . Fixed bug #73654 (Segmentation fault in zend_call_function). (Nikita) 1390 . Fixed bug #73668 ("SIGFPE Arithmetic exception" in opcache when divide by 1391 minus 1). (Nikita) 1392 . Fixed bug #73847 (Recursion when a variable is redefined as array). (Nikita) 1393 1394- PDO_Firebird: 1395 . Fixed bug #72931 (PDO_FIREBIRD with Firebird 3.0 not work on returning 1396 statement). (Dorin Marcoci) 1397 1398- phpdbg: 1399 . Fixed bug #73794 (Crash (out of memory) when using run and # command 1400 separator). (Bob) 1401 . Fixed bug #73704 (phpdbg shows the wrong line in files with shebang). (Bob) 1402 1403- SQLite3: 1404 . Reverted fix for bug #73530 (Unsetting result set may reset other result 1405 set). (cmb) 1406 1407- Standard: 1408 . Fixed bug #73594 (dns_get_record does not populate $additional out 1409 parameter). (Bruce Weirdan) 1410 . Fixed bug #70213 (Unserialize context shared on double class lookup). 1411 (Taoguang Chen) 1412 . Fixed bug #73154 (serialize object with __sleep function crash). (Nikita) 1413 . Fixed bug #70490 (get_browser function is very slow). (Nikita) 1414 . Fixed bug #73265 (Loading browscap.ini at startup causes high memory usage). 1415 (Nikita) 1416 . Add subject to mail log. (tomsommer) 1417 . Fixed bug #31875 (get_defined_functions additional param to exclude 1418 disabled functions). (willianveiga) 1419 1420- Zlib 1421 . Fixed bug #73373 (deflate_add does not verify that output was not truncated). 1422 (Matt Bonneau) 1423 142401 Dec 2016, PHP 7.1.0 1425 1426- Core: 1427 . Added nullable types. (Levi, Dmitry) 1428 . Added DFA optimization framework based on e-SSA form. (Dmitry, Nikita) 1429 . Added specialized opcode handlers (e.g. ZEND_ADD_LONG_NO_OVERFLOW). 1430 (Dmitry) 1431 . Added [] = as alternative construct to list() =. (Bob) 1432 . Added void return type. (Andrea) 1433 . Added support for negative string offsets in string offset syntax and 1434 various string functions. (Francois) 1435 . Added a form of the list() construct where keys can be specified. (Andrea) 1436 . Implemented safe execution timeout handling, that prevents random crashes 1437 after "Maximum execution time exceeded" error. (Dmitry) 1438 . Implemented the RFC `Support Class Constant Visibility`. (Sean DuBois, 1439 Reeze Xia, Dmitry) 1440 . Implemented the RFC `Catching multiple exception types`. (Bronislaw Bialek, 1441 Pierrick) 1442 . Implemented logging to syslog with dynamic error levels. (Jani Ollikainen) 1443 . Implemented FR #72614 (Support "nmake test" on building extensions by 1444 phpize). (Yuji Uchiyama) 1445 . Implemented RFC: Iterable. (Aaron Piotrowski) 1446 . Implemented RFC: Closure::fromCallable (Danack) 1447 . Implemented RFC: Replace "Missing argument" warning with "\ArgumentCountError" 1448 exception. (Dmitry, Davey) 1449 . Implemented RFC: Fix inconsistent behavior of $this variable. (Dmitry) 1450 . Fixed bug #73585 (Logging of "Internal Zend error - Missing class 1451 information" missing class name). (Laruence) 1452 . Fixed memory leak(null coalescing operator with Spl hash). (Tyson Andre) 1453 . Fixed bug #72736 (Slow performance when fetching large dataset with mysqli 1454 / PDO). (Dmitry) 1455 . Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine 1456 overflow). (cmb) 1457 . Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images). 1458 (cmb) 1459 . Fixed bug #73350 (Exception::__toString() cause circular references). 1460 (Laruence) 1461 . Fixed bug #73329 ((Float)"Nano" == NAN). (Anatol) 1462 . Fixed bug #73288 (Segfault in __clone > Exception.toString > __get). 1463 (Laruence) 1464 . Fixed for #73240 (Write out of bounds at number_format). (Stas) 1465 . Fix pthreads detection when cross-compiling (ffontaine) 1466 . Fixed bug #73337 (try/catch not working with two exceptions inside a same 1467 operation). (Dmitry) 1468 . Fixed bug #73156 (segfault on undefined function). (Dmitry) 1469 . Fixed bug #73163 (PHP hangs if error handler throws while accessing undef 1470 const in default value). (Nikita) 1471 . Fixed bug #73172 (parse error: Invalid numeric literal). (Nikita, Anatol) 1472 . Fixed bug #73181 (parse_str() without a second argument leads to crash). 1473 (Nikita) 1474 . Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of 1475 zend_virtual_cwd.c). (cmb) 1476 . Fixed bug #73058 (crypt broken when salt is 'too' long). (Anatol) 1477 . Fixed bug #72944 (Null pointer deref in zval_delref_p). (Dmitry) 1478 . Fixed bug #72943 (assign_dim on string doesn't reset hval). (Laruence) 1479 . Fixed bug #72598 (Reference is lost after array_slice()) (Nikita) 1480 . Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by 1481 password_verify). (Anatol) 1482 . Fixed bug #72813 (Segfault with __get returned by ref). (Laruence) 1483 . Fixed bug #72767 (PHP Segfaults when trying to expand an infinite operator). 1484 (Nikita) 1485 . TypeError messages for arg_info type checks will now say "must be ... 1486 or null" where the parameter or return type accepts null. (Andrea) 1487 . Fixed bug #72857 (stream_socket_recvfrom read access violation). (Anatol) 1488 . Fixed bug #72663 (Create an Unexpected Object and Don't Invoke 1489 __wakeup() in Deserialization). (Stas) 1490 . Fixed bug #72681 (PHP Session Data Injection Vulnerability). (Stas) 1491 . Fixed bug #72742 (memory allocator fails to realloc small block to large 1492 one). (Stas) 1493 . Fixed URL rewriter. It would not rewrite '//example.com/' URL 1494 unconditionally. URL rewrite target hosts whitelist is implemented. (Yasuo) 1495 . Fixed bug #72641 (phpize (on Windows) ignores PHP_PREFIX). 1496 (Yuji Uchiyama) 1497 . Fixed bug #72683 (getmxrr broken). (Anatol) 1498 . Fixed bug #72629 (Caught exception assignment to variables ignores 1499 references). (Laruence) 1500 . Fixed bug #72594 (Calling an earlier instance of an included anonymous 1501 class fatals). (Laruence) 1502 . Fixed bug #72581 (previous property undefined in Exception after 1503 deserialization). (Laruence) 1504 . Fixed bug #72543 (Different references behavior comparing to PHP 5) 1505 (Laruence, Dmitry, Nikita) 1506 . Fixed bug #72347 (VERIFY_RETURN type casts visible in finally). (Dmitry) 1507 . Fixed bug #72216 (Return by reference with finally is not memory safe). 1508 (Dmitry) 1509 . Fixed bug #72215 (Wrong return value if var modified in finally). (Dmitry) 1510 . Fixed bug #71818 (Memory leak when array altered in destructor). (Dmitry) 1511 . Fixed bug #71539 (Memory error on $arr[$a] =& $arr[$b] if RHS rehashes) 1512 (Dmitry, Nikita) 1513 . Added new constant PHP_FD_SETSIZE. (cmb) 1514 . Added optind parameter to getopt(). (as) 1515 . Added PHP to SAPI error severity mapping for logs. (Martin Vobruba) 1516 . Fixed bug #71911 (Unable to set --enable-debug on building extensions by 1517 phpize on Windows). (Yuji Uchiyama) 1518 . Fixed bug #29368 (The destructor is called when an exception is thrown from 1519 the constructor). (Dmitry) 1520 . Implemented RFC: RNG Fixes. (Leigh) 1521 . Implemented email validation as per RFC 6531. (Leo Feyer, Anatol) 1522 . Fixed bug #72513 (Stack-based buffer overflow vulnerability in 1523 virtual_file_ex). (Stas) 1524 . Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries 1525 and applications). (Stas) 1526 . Fixed bug #72523 (dtrace issue with reflection (failed test)). (Laruence) 1527 . Fixed bug #72508 (strange references after recursive function call and 1528 "switch" statement). (Laruence) 1529 . Fixed bug #72441 (Segmentation fault: RFC list_keys). (Laruence) 1530 . Fixed bug #72395 (list() regression). (Laruence) 1531 . Fixed bug #72373 (TypeError after Generator function w/declared return type 1532 finishes). (Nikita) 1533 . Fixed bug #69489 (tempnam() should raise notice if falling back to temp dir). 1534 (Laruence, Anatol) 1535 . Fixed UTF-8 and long path support on Windows. (Anatol) 1536 . Fixed bug #53432 (Assignment via string index access on an empty string 1537 converts to array). (Nikita) 1538 . Fixed bug #62210 (Exceptions can leak temporary variables). (Dmitry, Bob) 1539 . Fixed bug #62814 (It is possible to stiffen child class members visibility). 1540 (Nikita) 1541 . Fixed bug #69989 (Generators don't participate in cycle GC). (Nikita) 1542 . Fixed bug #70228 (Memleak if return in finally block). (Dmitry) 1543 . Fixed bug #71266 (Missing separation of properties HT in foreach etc). 1544 (Dmitry) 1545 . Fixed bug #71604 (Aborted Generators continue after nested finally). 1546 (Nikita) 1547 . Fixed bug #71572 (String offset assignment from an empty string inserts 1548 null byte). (Francois) 1549 . Fixed bug #71897 (ASCII 0x7F Delete control character permitted in 1550 identifiers). (Andrea) 1551 . Fixed bug #72188 (Nested try/finally blocks losing return value). (Dmitry) 1552 . Fixed bug #72213 (Finally leaks on nested exceptions). (Dmitry, Nikita) 1553 . Fixed bug #47517 (php-cgi.exe missing UAC manifest). 1554 (maxdax15801 at users noreply github com) 1555 . Change statement and fcall extension handlers to accept frame. (Joe) 1556 . Number operators taking numeric strings now emit E_NOTICEs or E_WARNINGs 1557 when given malformed numeric strings. (Andrea) 1558 . (int), intval() where $base is 10 or unspecified, settype(), decbin(), 1559 decoct(), dechex(), integer operators and other conversions now always 1560 respect scientific notation in numeric strings. (Andrea) 1561 . Raise a compile-time warning on octal escape sequence overflow. (Sara) 1562 1563- Apache2handler: 1564 . Enable per-module logging in Apache 2.4+. (Martin Vobruba) 1565 1566- BCmath: 1567 . Fix bug #73190 (memcpy negative parameter _bc_new_num_ex). (Stas) 1568 1569- Bz2: 1570 . Fixed bug #72837 (integer overflow in bzdecompress caused heap 1571 corruption). (Stas) 1572 . Fixed bug #72613 (Inadequate error handling in bzread()). (Stas) 1573 1574- Calendar: 1575 . Fix integer overflows (Joshua Rogers) 1576 . Fixed bug #67976 (cal_days_month() fails for final month of the French 1577 calendar). (cmb) 1578 . Fixed bug #71894 (AddressSanitizer: global-buffer-overflow in 1579 zif_cal_from_jd). (cmb) 1580 1581- CLI Server: 1582 . Fixed bug #73360 (Unable to work in root with unicode chars). (Anatol) 1583 . Fixed bug #71276 (Built-in webserver does not send Date header). 1584 (see at seos fr) 1585 1586- COM: 1587 . Fixed bug #73126 (Cannot pass parameter 1 by reference). (Anatol) 1588 . Fixed bug #69579 (Invalid free in extension trait). (John Boehr) 1589 . Fixed bug #72922 (COM called from PHP does not return out parameters). 1590 (Anatol) 1591 . Fixed bug #72569 (DOTNET/COM array parameters broke in PHP7). (Anatol) 1592 . Fixed bug #72498 (variant_date_from_timestamp null dereference). (Anatol) 1593 1594- Curl 1595 . Implement support for handling HTTP/2 Server Push. (Davey) 1596 . Add curl_multi_errno(), curl_share_errno() and curl_share_strerror() 1597 functions. (Pierrick) 1598 . Fixed bug #72674 (Heap overflow in curl_escape). (Stas) 1599 . Fixed bug #72541 (size_t overflow lead to heap corruption). (Stas). 1600 . Fixed bug #71709 (curl_setopt segfault with empty CURLOPT_HTTPHEADER). 1601 (Pierrick) 1602 . Fixed bug #71929 (CURLINFO_CERTINFO data parsing error). (Pierrick) 1603 1604- Date: 1605 . Fixed bug #69587 (DateInterval properties and isset). (jhdxr) 1606 . Fixed bug #73426 (createFromFormat with 'z' format char results in 1607 incorrect time). (Derick) 1608 . Fixed bug #45554 (Inconsistent behavior of the u format char). (Derick) 1609 . Fixed bug #48225 (DateTime parser doesn't set microseconds for "now"). 1610 (Derick) 1611 . Fixed bug #52514 (microseconds are missing in DateTime class). (Derick) 1612 . Fixed bug #52519 (microseconds in DateInterval are missing). (Derick) 1613 . Fixed bug #60089 (DateTime::createFromFormat() U after u nukes microtime). 1614 (Derick) 1615 . Fixed bug #64887 (Allow DateTime modification with subsecond items). 1616 (Derick) 1617 . Fixed bug #68506 (General DateTime improvments needed for microseconds to 1618 become useful). (Derick) 1619 . Fixed bug #73109 (timelib_meridian doesn't parse dots correctly). (Derick) 1620 . Fixed bug #73247 (DateTime constructor does not initialise microseconds 1621 property). (Derick) 1622 . Fixed bug #73147 (Use After Free in PHP7 unserialize()). (Stas) 1623 . Fixed bug #73189 (Memcpy negative size parameter php_resolve_path). (Stas) 1624 . Fixed bug #66836 (DateTime::createFromFormat 'U' with pre 1970 dates fails 1625 parsing). (derick) 1626 . Invalid serialization data for a DateTime or DatePeriod object will now 1627 throw an instance of Error from __wakeup() or __set_state() instead of 1628 resulting in a fatal error. (Aaron Piotrowski) 1629 . Timezone initialization failure from serialized data will now throw an 1630 instance of Error from __wakeup() or __set_state() instead of resulting in 1631 a fatal error. (Aaron Piotrowski) 1632 . Export date_get_interface_ce() for extension use. (Jeremy Mikola) 1633 . Fixed bug #63740 (strtotime seems to use both sunday and monday as start of 1634 week). (Derick) 1635 1636- Dba: 1637 . Fixed bug #70825 (Cannot fetch multiple values with group in ini file). 1638 (cmb) 1639 . Data modification functions (e.g.: dba_insert()) now throw an instance of 1640 Error instead of triggering a catchable fatal error if the key is does not 1641 contain exactly two elements. (Aaron Piotrowski) 1642 1643- DOM: 1644 . Fixed bug #73150 (missing NULL check in dom_document_save_html). (Stas) 1645 . Fixed bug #66502 (DOM document dangling reference). (Sean Heelan, cmb) 1646 . Invalid schema or RelaxNG validation contexts will throw an instance of 1647 Error instead of resulting in a fatal error. (Aaron Piotrowski) 1648 . Attempting to register a node class that does not extend the appropriate 1649 base class will now throw an instance of Error instead of resulting in a 1650 fatal error. (Aaron Piotrowski) 1651 . Attempting to read an invalid or write to a readonly property will throw 1652 an instance of Error instead of resulting in a fatal error. (Aaron 1653 Piotrowski) 1654 1655- DTrace: 1656 . Disabled PHP call tracing by default (it makes significant overhead). 1657 This may be enabled again using envirionment variable USE_ZEND_DTRACE=1. 1658 (Dmitry) 1659 1660- EXIF: 1661 . Fixed bug #72735 (Samsung picture thumb not read (zero size)). (Kalle, Remi) 1662 . Fixed bug #72627 (Memory Leakage In exif_process_IFD_in_TIFF). (Stas) 1663 . Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE). 1664 (Stas) 1665 . Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment). 1666 (Stas) 1667 1668- Filter: 1669 . Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and 1670 FILTER_FLAG_NO_PRIV_RANGE). (julien) 1671 . Fixed bug #73054 (default option ignored when object passed to int filter). 1672 (cmb) 1673 . Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 1674 range). (bugs dot php dot net at majkl578 dot cz) 1675 1676- FPM: 1677 . Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user). 1678 (gooh) 1679 1680- FTP: 1681 . Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with 1682 require_ssl_reuse). (Benedict Singer) 1683 . Implemented FR #55651 (Option to ignore the returned FTP PASV address). 1684 (abrender at elitehosts dot com) 1685 1686- GD: 1687 . Fixed bug #73213 (Integer overflow in imageline() with antialiasing). (cmb) 1688 . Fixed bug #73272 (imagescale() is not affected by, but affects 1689 imagesetinterpolation()). (cmb) 1690 . Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()). (cmb) 1691 . Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf). (cmb) 1692 . Fixed bug #50194 (imagettftext broken on transparent background w/o 1693 alphablending). (cmb) 1694 . Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c). (trylab, 1695 cmb) 1696 . Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box). 1697 (Mark Plomer, cmb) 1698 . Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given). (cmb) 1699 . Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries). (cmb) 1700 . Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted 1701 files). (cmb) 1702 . Fixed bug #73161 (imagecreatefromgd2() may leak memory). (cmb) 1703 . Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette). 1704 (cmb) 1705 . Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor 1706 images). (cmb) 1707 . Fixed bug #72913 (imagecopy() loses single-color transparency on palette 1708 images). (cmb) 1709 . Fixed bug #68716 (possible resource leaks in _php_image_convert()). (cmb) 1710 . Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles). (cmb) 1711 . Fixed bug #72697 (select_colors write out-of-bounds). (Stas) 1712 . Fixed bug #72730 (imagegammacorrect allows arbitrary write access). (Stas) 1713 . Fixed bug #72596 (imagetypes function won't advertise WEBP support). (cmb) 1714 . Fixed bug #72604 (imagearc() ignores thickness for full arcs). (cmb) 1715 . Fixed bug #70315 (500 Server Error but page is fully rendered). (cmb) 1716 . Fixed bug #43828 (broken transparency of imagearc for truecolor in 1717 blendingmode). (cmb) 1718 . Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read 1719 access). (Pierre) 1720 . Fixed bug #72519 (imagegif/output out-of-bounds access). (Pierre) 1721 . Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()). 1722 (Pierre) 1723 . Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine 1724 overflow). (Pierre) 1725 . Fixed bug #72494 (imagecropauto out-of-bounds access). (Fernando, Pierre, 1726 cmb) 1727 . Fixed bug #72404 (imagecreatefromjpeg fails on selfie). (cmb) 1728 . Fixed bug #43475 (Thick styled lines have scrambled patterns). (cmb) 1729 . Fixed bug #53640 (XBM images require width to be multiple of 8). (cmb) 1730 . Fixed bug #64641 (imagefilledpolygon doesn't draw horizontal line). (cmb) 1731 1732- Hash: 1733 . Added SHA3 fixed mode algorithms (224, 256, 384, and 512 bit). (Sara) 1734 . Added SHA512/256 and SHA512/224 algorithms. (Sara) 1735 1736- iconv: 1737 . Fixed bug #72320 (iconv_substr returns false for empty strings). (cmb) 1738 1739- IMAP: 1740 . Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads to crash). 1741 (Anatol) 1742 . An email address longer than 16385 bytes will throw an instance of Error 1743 instead of resulting in a fatal error. (Aaron Piotrowski) 1744 1745- Interbase: 1746 . Fixed bug #73512 (Fails to find firebird headers as don't use fb_config 1747 output). (Remi) 1748 1749- Intl: 1750 . Fixed bug #73007 (add locale length check). (Stas) 1751 . Fixed bug #73218 (add mitigation for ICU int overflow). (Stas) 1752 . Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF 1753 sequence). (cmb) 1754 . Fixed bug #73007 (add locale length check). (Stas) 1755 . Fixed bug #72639 (Segfault when instantiating class that extends 1756 IntlCalendar and adds a property). (Laruence) 1757 . Fixed bug #72658 (Locale::lookup() / locale_lookup() hangs if no match 1758 found). (Anatol) 1759 . Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain 1760 names). (cmb) 1761 . Fixed bug #72533 (locale_accept_from_http out-of-bounds access). (Stas) 1762 . Failure to call the parent constructor in a class extending Collator 1763 before invoking the parent methods will throw an instance of Error 1764 instead of resulting in a recoverable fatal error. (Aaron Piotrowski) 1765 . Cloning a Transliterator object may will now throw an instance of Error 1766 instead of resulting in a fatal error if cloning the internal 1767 transliterator fails. (Aaron Piotrowski) 1768 . Added IntlTimeZone::getWindowsID() and 1769 IntlTimeZone::getIDForWindowsID(). (Sara) 1770 . Fixed bug #69374 (IntlDateFormatter formatObject returns wrong utf8 value). 1771 (lenhatanh86 at gmail com) 1772 . Fixed bug #69398 (IntlDateFormatter formatObject returns wrong value when 1773 time style is NONE). (lenhatanh86 at gmail com) 1774 1775- JSON: 1776 . Introduced encoder struct instead of global which fixes bugs #66025 and 1777 #73254 related to pretty print indentation. (Jakub Zelenka) 1778 . Fixed bug #73113 (Segfault with throwing JsonSerializable). (julien) 1779 . Implemented earlier return when json_encode fails, fixes bugs #68992 1780 (Stacking exceptions thrown by JsonSerializable) and #70275 (On recursion 1781 error, json_encode can eat up all system memory). (Jakub Zelenka) 1782 . Implemented FR #46600 ("_empty_" key in objects). (Jakub Zelenka) 1783 . Exported JSON parser API including json_parser_method that can be used 1784 for implementing custom logic when parsing JSON. (Jakub Zelenka) 1785 . Escaped U+2028 and U+2029 when JSON_UNESCAPED_UNICODE is supplied as 1786 json_encode options and added JSON_UNESCAPED_LINE_TERMINATORS to restore 1787 the previous behaviour. (Eddie Kohler) 1788 1789- LDAP: 1790 . Providing an unknown modification type to ldap_batch_modify() will now 1791 throw an instance of Error instead of resulting in a fatal error. 1792 (Aaron Piotrowski) 1793 1794- Mbstring: 1795 . Fixed bug #73532 (Null pointer dereference in mb_eregi). (Laruence) 1796 . Fixed bug #66964 (mb_convert_variables() cannot detect recursion) (Yasuo) 1797 . Fixed bug #72992 (mbstring.internal_encoding doesn't inherit default_charset). 1798 (Yasuo) 1799 . Fixed bug #66797 (mb_substr only takes 32-bit signed integer). (cmb) 1800 . Fixed bug #72711 (`mb_ereg` does not clear the `$regs` parameter on 1801 failure). (ju1ius) 1802 . Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width). 1803 (cmb) 1804 . Fixed bug #72693 (mb_ereg_search increments search position when a match 1805 zero-width). (cmb) 1806 . Fixed bug #72694 (mb_ereg_search_setpos does not accept a string's last 1807 position). (cmb) 1808 . Fixed bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error). 1809 (ju1ius) 1810 . Deprecated mb_ereg_replace() eval option. (Rouven Weßling, cmb) 1811 . Fixed bug #69151 (mb_ereg should reject ill-formed byte sequence). 1812 (Masaki Kagaya) 1813 . Fixed bug #72405 (mb_ereg_replace - mbc_to_code (oniguruma) - 1814 oob read access). (Laruence) 1815 . Fixed bug #72399 (Use-After-Free in MBString (search_re)). (Laruence) 1816 . mb_ereg() and mb_eregi() will now throw an instance of ParseError if an 1817 invalid PHP expression is provided and the 'e' option is used. (Aaron 1818 Piotrowski) 1819 1820- Mcrypt: 1821 . Deprecated ext/mcrypt. (Scott Arciszewski, cmb) 1822 . Fixed bug #72782 (Heap Overflow due to integer overflows). (Stas) 1823 . Fixed bug #72551, bug #72552 (In correct casting from size_t to int lead to 1824 heap overflow in mdecrypt_generic). (Stas) 1825 . mcrypt_encrypt() and mcrypt_decrypt() will throw an instance of Error 1826 instead of resulting in a fatal error if mcrypt cannot be initialized. 1827 (Aaron Piotrowski) 1828 1829- Mysqli: 1830 . Attempting to read an invalid or write to a readonly property will throw 1831 an instance of Error instead of resulting in a fatal error. (Aaron 1832 Piotrowski) 1833 1834- Mysqlnd: 1835 . Fixed bug #64526 (Add missing mysqlnd.* parameters to php.ini-*). (cmb) 1836 . Fixed bug #71863 (Segfault when EXPLAIN with "Unknown column" error when 1837 using MariaDB). (Andrey) 1838 . Fixed bug #72701 (mysqli_get_host_info() wrong output). (Anatol) 1839 1840- OCI8 1841 . Fixed bug #71148 (Bind reference overwritten on PHP 7). (Oracle Corp.) 1842 . Fixed invalid handle error with Implicit Result Sets. (Chris Jones) 1843 . Fixed bug #72524 (Binding null values triggers ORA-24816 error). (Chris Jones) 1844 1845- ODBC: 1846 . Fixed bug #73448 (odbc_errormsg returns trash, always 513 bytes). 1847 (Anatol) 1848 1849- Opcache: 1850 . Fixed bug #73583 (Segfaults when conditionally declared class and function 1851 have the same name). (Laruence) 1852 . Fixed bug #69090 (check cached files permissions) 1853 . Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp() 1854 function). (Laruence) 1855 . Fixed bug #72949 (Typo in opcache error message). (cmb) 1856 . Fixed bug #72762 (Infinite loop while parsing a file with opcache enabled). 1857 (Nikita) 1858 . Fixed bug #72590 (Opcache restart with kill_all_lockers does not work). 1859 (Keyur) 1860 1861- OpenSSL: 1862 . Fixed bug #73478 (openssl_pkey_new() generates wrong pub/priv keys with 1863 Diffie Hellman). (Jakub Zelenka) 1864 . Fixed bug #73276 (crash in openssl_random_pseudo_bytes function). (Stas) 1865 . Fixed bug #73072 (Invalid path SNI_server_certs causes segfault). 1866 (Jakub Zelenka) 1867 . Fixed bug #72360 (ext/openssl build failure with OpenSSL 1.1.0). 1868 (Jakub Zelenka) 1869 . Bumped a minimal version to 1.0.1. (Jakub Zelenka) 1870 . Dropped support for SSL2. (Remi) 1871 . Implemented FR #61204 (Add elliptic curve support for OpenSSL). 1872 (Dominic Luechinger) 1873 . Implemented FR #67304 (Added AEAD support [CCM and GCM modes] to 1874 openssl_encrypt and openssl_decrypt). (Jakub Zelenka) 1875 . Implemented error storing to the global queue and cleaning up the OpenSSL 1876 error queue (resolves bugs #68276 and #69882). (Jakub Zelenka) 1877 1878- Pcntl 1879 . Implemented asynchronous signal handling without TICKS. (Dmitry) 1880 . Added pcntl_signal_get_handler() that returns the current signal handler 1881 for a particular signal. Addresses FR #72409. (David Walker) 1882 . Add signinfo to pcntl_signal() handler args (Bishop Bettini, David Walker) 1883 1884- PCRE: 1885 . Fixed bug #73483 (Segmentation fault on pcre_replace_callback). (Laruence) 1886 . Fixed bug #73612 (preg_*() may leak memory). (cmb) 1887 . Fixed bug #73392 (A use-after-free in zend allocator management). 1888 (Laruence) 1889 . Fixed bug #73121 (Bundled PCRE doesn't compile because JIT isn't supported 1890 on s390). (Anatol) 1891 . Fixed bug #72688 (preg_match missing group names in matches). (cmb) 1892 . Downgraded to PCRE 8.38. (Anatol) 1893 . Fixed bug #72476 (Memleak in jit_stack). (Laruence) 1894 . Fixed bug #72463 (mail fails with invalid argument). (Anatol) 1895 . Upgraded to PCRE 8.39. (Anatol) 1896 1897- PDO: 1898 . Fixed bug #72788 (Invalid memory access when using persistent PDO 1899 connection). (Keyur) 1900 . Fixed bug #72791 (Memory leak in PDO persistent connection handling). (Keyur) 1901 . Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY 1902 returns false). (cmb) 1903 1904- PDO_DBlib: 1905 . Fixed bug #72414 (Never quote values as raw binary data). (Adam Baratz) 1906 . Allow \PDO::setAttribute() to set query timeouts. (Adam Baratz) 1907 . Handle SQLDECIMAL/SQLNUMERIC types, which are used by later TDS versions. 1908 (Adam Baratz) 1909 . Add common PDO test suite. (Adam Baratz) 1910 . Free error and message strings when cleaning up PDO instances. 1911 (Adam Baratz) 1912 . Fixed bug #67130 (\PDOStatement::nextRowset() should succeed when all rows 1913 in current rowset haven't been fetched). (Peter LeBrun) 1914 . Ignore potentially misleading dberr values. (Chris Kings-Lynne) 1915 . Implemented stringify 'uniqueidentifier' fields. 1916 (Alexander Zhuravlev, Adam Baratz) 1917 1918- PDO_Firebird: 1919 . Fixed bug #73087, #61183, #71494 (Memory corruption in bindParam). 1920 (Dorin Marcoci) 1921 . Fixed bug #60052 (Integer returned as a 64bit integer on X86_64). (Mariuz) 1922 1923- PDO_pgsql: 1924 . Fixed bug #70313 (PDO statement fails to throw exception). (Matteo) 1925 . Fixed bug #72570 (Segmentation fault when binding parameters on a query 1926 without placeholders). (Matteo) 1927 . Implemented FR #72633 (Postgres PDO lastInsertId() should work without 1928 specifying a sequence). (Pablo Santiago Sánchez, Matteo) 1929 1930- Phar: 1931 . Fixed bug #72928 (Out of bound when verify signature of zip phar in 1932 phar_parse_zipfile). (Stas) 1933 . Fixed bug #73035 (Out of bound when verify signature of tar phar in 1934 phar_parse_tarfile). (Stas) 1935 1936- phpdbg: 1937 . Added generator command for inspection of currently alive generators. (Bob) 1938 1939- Postgres: 1940 . Fixed bug #73498 (Incorrect SQL generated for pg_copy_to()). (Craig Duncan) 1941 . Implemented FR #31021 (pg_last_notice() is needed to get all notice 1942 messages). (Yasuo) 1943 . Implemented FR #48532 (Allow pg_fetch_all() to index numerically). (Yasuo) 1944 1945- Readline: 1946 . Fixed bug #72538 (readline_redisplay crashes php). (Laruence) 1947 1948- Reflection 1949 . Undo backwards compatiblity break in ReflectionType->__toString() and 1950 deprecate via documentation instead. (Nikita) 1951 . Reverted prepending \ for class names. (Trowski) 1952 . Implemented request #38992 (invoke() and invokeArgs() static method calls 1953 should match). (cmb). 1954 . Add ReflectionNamedType::getName(). This method should be used instead of 1955 ReflectionType::__toString() 1956 . Prepend \ for class names and ? for nullable types returned from 1957 ReflectionType::__toString(). (Trowski) 1958 . Fixed bug #72661 (ReflectionType::__toString crashes with iterable). 1959 (Laruence) 1960 . Fixed bug #72222 (ReflectionClass::export doesn't handle array constants). 1961 (Nikita Nefedov) 1962 . Failure to retrieve a reflection object or retrieve an object property 1963 will now throw an instance of Error instead of resulting in a fatal error. 1964 (Aaron Piotrowski) 1965 . Fix #72209 (ReflectionProperty::getValue() doesn't fail if object doesn't match type). (Joe) 1966 1967- Session: 1968 . Fixed bug #73273 (session_unset() empties values from all variables in which 1969 is $_session stored). (Nikita) 1970 . Fixed bug #73100 (session_destroy null dereference in ps_files_path_create). 1971 (cmb) 1972 . Fixed bug #68015 (Session does not report invalid uid for files save handler). 1973 (Yasuo) 1974 . Fixed bug #72940 (SID always return "name=ID", even if session 1975 cookie exist). (Yasuo) 1976 . Implemented session_gc() (Yasuo) 1977 https://wiki.php.net/rfc/session-create-id 1978 . Implemented session_create_id() (Yasuo) 1979 https://wiki.php.net/rfc/session-gc 1980 . Implemented RFC: Session ID without hashing. (Yasuo) 1981 https://wiki.php.net/rfc/session-id-without-hashing 1982 . Fixed bug #72531 (ps_files_cleanup_dir Buffer overflow). (Laruence) 1983 . Custom session handlers that do not return strings for session IDs will 1984 now throw an instance of Error instead of resulting in a fatal error 1985 when a function is called that must generate a session ID. 1986 (Aaron Piotrowski) 1987 . An invalid setting for session.hash_function will throw an instance of 1988 Error instead of resulting in a fatal error when a session ID is created. 1989 (Aaron Piotrowski) 1990 . Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session 1991 Deserialization). (Stas) 1992 . Improved fix for bug #68063 (Empty session IDs do still start sessions). 1993 (Yasuo) 1994 . Fixed bug #71038 (session_start() returns TRUE on failure). 1995 Session save handlers must return 'string' always for successful read. 1996 i.e. Non-existing session read must return empty string. PHP 7.0 is made 1997 not to tolerate buggy return value. (Yasuo) 1998 . Fixed bug #71394 (session_regenerate_id() must close opened session on 1999 errors). (Yasuo) 2000 2001- SimpleXML: 2002 . Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()). 2003 (Stas) 2004 . Fixed bug #72971 (SimpleXML isset/unset do not respect namespace). (Nikita) 2005 . Fixed bug #72957 (Null coalescing operator doesn't behave as expected with 2006 SimpleXMLElement). (Nikita) 2007 . Fixed bug #72588 (Using global var doesn't work while accessing SimpleXML 2008 element). (Laruence) 2009 . Creating an unnamed or duplicate attribute will throw an instance of Error 2010 instead of resulting in a fatal error. (Aaron Piotrowski) 2011 2012- SNMP: 2013 . Fixed bug #72708 (php_snmp_parse_oid integer overflow in memory 2014 allocation). (djodjo at gmail dot com) 2015 . Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and 2016 unserialize()). (Stas) 2017 2018- Soap: 2019 . Fixed bug #73538 (SoapClient::__setSoapHeaders doesn't overwrite SOAP 2020 headers). (duncan3dc) 2021 . Fixed bug #73452 (Segfault (Regression for #69152)). (Dmitry) 2022 . Fixed bug #73037 (SoapServer reports Bad Request when gzipped). (Anatol) 2023 . Fixed bug #73237 (Nested object in "any" element overwrites other fields). 2024 (Keith Smiley) 2025 . Fixed bug #69137 (Peer verification fails when using a proxy with SoapClient) 2026 (Keith Smiley) 2027 . Fixed bug #71711 (Soap Server Member variables reference bug). (Nikita) 2028 . Fixed bug #71996 (Using references in arrays doesn't work like expected). 2029 (Nikita) 2030 2031- SPL: 2032 . Fixed bug #73423 (Reproducible crash with GDB backtrace). (Laruence) 2033 . Fixed bug #72888 (Segfault on clone on splFileObject). (Laruence) 2034 . Fixed bug #73029 (Missing type check when unserializing SplArray). (Stas) 2035 . Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape 2036 character). (cmb) 2037 . Fixed bug #72684 (AppendIterator segfault with closed generator). (Pierrick) 2038 . Attempting to clone an SplDirectory object will throw an instance of Error 2039 instead of resulting in a fatal error. (Aaron Piotrowski) 2040 . Calling ArrayIterator::append() when iterating over an object will throw an 2041 instance of Error instead of resulting in a fatal error. (Aaron Piotrowski) 2042 . Fixed bug #55701 (GlobIterator throws LogicException). (Valentin VĂLCIU) 2043 2044- SQLite3: 2045 . Update to SQLite 3.15.1. (cmb) 2046 . Fixed bug #73530 (Unsetting result set may reset other result set). (cmb) 2047 . Fixed bug #73333 (2147483647 is fetched as string). (cmb) 2048 . Fixed bug #72668 (Spurious warning when exception is thrown in user defined 2049 function). (Laruence) 2050 . Implemented FR #72653 (SQLite should allow opening with empty filename). 2051 (cmb) 2052 . Fixed bug #70628 (Clearing bindings on an SQLite3 statement doesn't work). 2053 (cmb) 2054 . Implemented FR #71159 (Upgraded bundled SQLite lib to 3.9.2). (Laruence) 2055 2056- Standard: 2057 . Fixed bug #73297 (HTTP stream wrapper should ignore HTTP 100 Continue). 2058 (rowan dot collins at gmail dot com) 2059 . Fixed bug #73303 (Scope not inherited by eval in assert()). (nikic) 2060 . Fixed bug #73192 (parse_url return wrong hostname). (Nikita) 2061 . Fixed bug #73203 (passing additional_parameters causes mail to fail). (cmb) 2062 . Fixed bug #73203 (passing additional_parameters causes mail to fail). (cmb) 2063 . Fixed bug #72920 (Accessing a private constant using constant() creates 2064 an exception AND warning). (Laruence) 2065 . Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign). 2066 (cmb) 2067 . Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory). 2068 (cmb) 2069 . Fixed bug #55451 (substr_compare NULL length interpreted as 0). (Lauri 2070 Kenttä) 2071 . Fixed bug #72278 (getimagesize returning FALSE on valid jpg). (cmb) 2072 . Fixed bug #61967 (unset array item in array_walk_recursive cause 2073 inconsistent array). (Nikita) 2074 . Fixed bug #62607 (array_walk_recursive move internal pointer). (Nikita) 2075 . Fixed bug #69068 (Exchanging array during array_walk -> memory errors). 2076 (Nikita) 2077 . Fixed bug #70713 (Use After Free Vulnerability in array_walk()/ 2078 array_walk_recursive()). (Nikita) 2079 . Fixed bug #72622 (array_walk + array_replace_recursive create references 2080 from nothing). (Laruence) 2081 . Fixed bug #72330 (CSV fields incorrectly split if escape char followed by 2082 UTF chars). (cmb) 2083 . Implemented RFC: More precise float values. (Jakub Zelenka, Yasuo) 2084 . array_multisort now uses zend_sort instead zend_qsort. (Laruence) 2085 . Fixed bug #72505 (readfile() mangles files larger than 2G). (Cschneid) 2086 . assert() will throw a ParseError when evaluating a string given as the first 2087 argument if the PHP code is invalid instead of resulting in a catchable 2088 fatal error. (Aaron Piotrowski) 2089 . Calling forward_static_call() outside of a class scope will now throw an 2090 instance of Error instead of resulting in a fatal error. (Aaron Piotrowski) 2091 . Added is_iterable() function. (Aaron Piotrowski) 2092 . Fixed bug #72306 (Heap overflow through proc_open and $env parameter). 2093 (Laruence) 2094 . Fixed bug #71100 (long2ip() doesn't accept integers in strict mode). 2095 (Laruence) 2096 . Implemented FR #55716 (Add an option to pass a custom stream context to 2097 get_headers()). (Ferenc) 2098 . Additional validation for parse_url() for login/pass components). 2099 (Ilia) (Julien) 2100 . Implemented FR #69359 (Provide a way to fetch the current environment 2101 variables). (Ferenc) 2102 . unpack() function accepts an additional optional argument $offset. (Dmitry) 2103 . Implemented #51879 stream context socket option tcp_nodelay (Joe) 2104 2105- Streams: 2106 . Fixed bug #73586 (php_user_filter::$stream is not set to the stream the 2107 filter is working on). (Dmitry) 2108 . Fixed bug #72853 (stream_set_blocking doesn't work). (Laruence) 2109 . Fixed bug #72743 (Out-of-bound read in php_stream_filter_create). 2110 (Loianhtuan) 2111 . Implemented FR #27814 (Multiple small packets send for HTTP request). 2112 (vhuk) 2113 . Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails 2114 with IIS FTP 7.5, 8.5). (vhuk) 2115 . Fixed bug #72810 (Missing SKIP_ONLINE_TESTS checks). (vhuk) 2116 . Fixed bug #41021 (Problems with the ftps wrapper). (vhuk) 2117 . Fixed bug #54431 (opendir() does not work with ftps:// wrapper). (vhuk) 2118 . Fixed bug #72667 (opendir() with ftp:// attempts to open data stream for 2119 non-existent directories). (vhuk) 2120 . Fixed bug #72771 (ftps:// wrapper is vulnerable to protocol downgrade 2121 attack). (Stas) 2122 . Fixed bug #72534 (stream_socket_get_name crashes). (Anatol) 2123 . Fixed bug #72439 (Stream socket with remote address leads to a segmentation 2124 fault). (Laruence) 2125 2126- sysvshm: 2127 . Fixed bug #72858 (shm_attach null dereference). (Anatol) 2128 2129- Tidy: 2130 . Implemented support for libtidy 5.0.0 and above. (Michael Orlitzky, Anatol) 2131 . Creating a tidyNode manually will now throw an instance of Error instead of 2132 resulting in a fatal error. (Aaron Piotrowski) 2133 2134- Wddx: 2135 . Fixed bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization 2136 with PDORow). (Stas) 2137 . Fixed bug #72142 (WDDX Packet Injection Vulnerability in 2138 wddx_serialize_value()). (Taoguang Chen) 2139 . Fixed bug #72749 (wddx_deserialize allows illegal memory access) (Stas) 2140 . Fixed bug #72750 (wddx_deserialize null dereference). (Stas) 2141 . Fixed bug #72790 (wddx_deserialize null dereference with invalid xml). 2142 (Stas) 2143 . Fixed bug #72799 (wddx_deserialize null dereference in 2144 php_wddx_pop_element). (Stas) 2145 . Fixed bug #72860 (wddx_deserialize use-after-free). (Stas) 2146 . Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element). (Stas) 2147 . Fixed bug #72564 (boolean always deserialized as "true") (Remi) 2148 . A circular reference when serializing will now throw an instance of Error 2149 instead of resulting in a fatal error. (Aaron Piotrowski) 2150 2151- XML: 2152 . Fixed bug #72135 (malformed XML causes fault) (edgarsandi) 2153 . Fixed bug #72714 (_xml_startElementHandler() segmentation fault). (cmb) 2154 . Fixed bug #72085 (SEGV on unknown address zif_xml_parse). (cmb) 2155 2156- XMLRPC: 2157 . Fixed bug #72647 (xmlrpc_encode() unexpected output after referencing 2158 array elements). (Laruence) 2159 . Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn 2160 simplestring.c). (Stas) 2161 . A circular reference when serializing will now throw an instance of Error 2162 instead of resulting in a fatal error. (Aaron Piotrowski) 2163 2164- Zip: 2165 . Fixed bug #68302 (impossible to compile php with zip support). (cmb) 2166 . Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd). 2167 (Laruence) 2168 . Fixed bug #72520 (Stack-based buffer overflow vulnerability in 2169 php_stream_zip_opener). (Stas) 2170 . ZipArchive::addGlob() will throw an instance of Error instead of resulting 2171 in a fatal error if glob support is not available. (Aaron Piotrowski) 2172 217310 Nov 2016 PHP 7.0.13 2174 2175- Core: 2176 . Fixed bug #73350 (Exception::__toString() cause circular references). 2177 (Laruence) 2178 . Fixed bug #73181 (parse_str() without a second argument leads to crash). 2179 (Nikita) 2180 . Fixed bug #66773 (Autoload with Opcache allows importing conflicting class 2181 name to namespace). (Nikita) 2182 . Fixed bug #66862 ((Sub-)Namespaces unexpected behaviour). (Nikita) 2183 . Fix pthreads detection when cross-compiling (ffontaine) 2184 . Fixed bug #73337 (try/catch not working with two exceptions inside a same 2185 operation). (Dmitry) 2186 . Fixed bug #73338 (Exception thrown from error handler causes valgrind 2187 warnings (and crashes)). (Bob, Dmitry) 2188 . Fixed bug #73329 ((Float)"Nano" == NAN). (Anatol) 2189 2190- GD: 2191 . Fixed bug #73213 (Integer overflow in imageline() with antialiasing). (cmb) 2192 . Fixed bug #73272 (imagescale() is not affected by, but affects 2193 imagesetinterpolation()). (cmb) 2194 . Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()). (cmb) 2195 . Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf). (cmb) 2196 . Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine 2197 overflow). (cmb) 2198 . Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images). 2199 (cmb) 2200 2201- IMAP: 2202 . Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads to crash). 2203 (Anatol) 2204 2205- OCI8 2206 . Fixed bug #71148 (Bind reference overwritten on PHP 7). (Oracle Corp.) 2207 2208- phpdbg: 2209 . Properly allow for stdin input from a file. (Bob) 2210 . Add -s command line option / stdin command for reading script from stdin. 2211 (Bob) 2212 . Ignore non-executable opcodes in line mode of phpdbg_end_oplog(). (Bob) 2213 . Fixed bug #70776 (Simple SIGINT does not have any effect with -rr). (Bob) 2214 . Fixed bug #71234 (INI files are loaded even invoked as -n --version). (Bob) 2215 2216- Session: 2217 . Fixed bug #73273 (session_unset() empties values from all variables in which 2218 is $_session stored). (Nikita) 2219 2220- SOAP: 2221 . Fixed bug #73037 (SoapServer reports Bad Request when gzipped). (Anatol) 2222 . Fixed bug #73237 (Nested object in "any" element overwrites other fields). 2223 (Keith Smiley) 2224 . Fixed bug #69137 (Peer verification fails when using a proxy with SoapClient) 2225 (Keith Smiley) 2226 2227- SQLite3: 2228 . Fixed bug #73333 (2147483647 is fetched as string). (cmb) 2229 2230- Standard: 2231 . Fixed bug #73203 (passing additional_parameters causes mail to fail). (cmb) 2232 . Fixed bug #71241 (array_replace_recursive sometimes mutates its parameters). 2233 (adsr) 2234 2235- Wddx: 2236 . Fixed bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization 2237 with PDORow). (Stas) 2238 223913 Oct 2016 PHP 7.0.12 2240 2241- Core: 2242 . Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of 2243 zend_virtual_cwd.c). (cmb) 2244 . Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by 2245 password_verify). (Anatol) 2246 . Fixed bug #73058 (crypt broken when salt is 'too' long). (Anatol) 2247 . Fixed bug #69579 (Invalid free in extension trait). (John Boehr) 2248 . Fixed bug #73156 (segfault on undefined function). (Dmitry) 2249 . Fixed bug #73163 (PHP hangs if error handler throws while accessing undef 2250 const in default value). (Nikita) 2251 . Fixed bug #73172 (parse error: Invalid numeric literal). (Nikita, Anatol) 2252 . Fixed for #73240 (Write out of bounds at number_format). (Stas) 2253 . Fixed bug #73147 (Use After Free in PHP7 unserialize()). (Stas) 2254 . Fixed bug #73189 (Memcpy negative size parameter php_resolve_path). (Stas) 2255 2256- BCmath: 2257 . Fix bug #73190 (memcpy negative parameter _bc_new_num_ex). (Stas) 2258 2259- COM: 2260 . Fixed bug #73126 (Cannot pass parameter 1 by reference). (Anatol) 2261 2262- Date: 2263 . Fixed bug #73091 (Unserializing DateInterval object may lead to __toString 2264 invocation). (Stas) 2265 2266- DOM: 2267 . Fixed bug #73150 (missing NULL check in dom_document_save_html). (Stas) 2268 2269- Filter: 2270 . Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and 2271 FILTER_FLAG_NO_PRIV_RANGE). (julien) 2272 . Fixed bug #73054 (default option ignored when object passed to int filter). 2273 (cmb) 2274 2275- GD: 2276 . Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette). 2277 (cmb) 2278 . Fixed bug #50194 (imagettftext broken on transparent background w/o 2279 alphablending). (cmb) 2280 . Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c). (trylab, 2281 cmb) 2282 . Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box). 2283 (Mark Plomer, cmb) 2284 . Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given). (cmb) 2285 . Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries). (cmb) 2286 . Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted 2287 files). (cmb) 2288 . Fixed bug #73161 (imagecreatefromgd2() may leak memory). (cmb) 2289 2290- Intl: 2291 . Fixed bug #73218 (add mitigation for ICU int overflow). (Stas) 2292 2293- Mbstring: 2294 . Fixed bug #66797 (mb_substr only takes 32-bit signed integer). (cmb) 2295 . Fixed bug #66964 (mb_convert_variables() cannot detect recursion) (Yasuo) 2296 . Fixed bug #72992 (mbstring.internal_encoding doesn't inherit default_charset). 2297 (Yasuo) 2298 2299- Mysqlnd: 2300 . Fixed bug #72489 (PHP Crashes When Modifying Array Containing MySQLi Result 2301 Data). (Nikita) 2302 2303- Opcache: 2304 . Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp() 2305 function). (Laruence) 2306 2307- OpenSSL: 2308 . Fixed bug #73072 (Invalid path SNI_server_certs causes segfault). 2309 (Jakub Zelenka) 2310 . Fixed bug #73276 (crash in openssl_random_pseudo_bytes function). (Stas) 2311 . Fixed bug #73275 (crash in openssl_encrypt function). (Stas) 2312 2313- PCRE: 2314 . Fixed bug #73121 (Bundled PCRE doesn't compile because JIT isn't supported 2315 on s390). (Anatol) 2316 . Fixed bug #73174 (heap overflow in php_pcre_replace_impl). (Stas) 2317 2318- PDO_DBlib: 2319 . Fixed bug #72414 (Never quote values as raw binary data). (Adam Baratz) 2320 . Allow \PDO::setAttribute() to set query timeouts. (Adam Baratz) 2321 . Handle SQLDECIMAL/SQLNUMERIC types, which are used by later TDS versions. 2322 (Adam Baratz) 2323 . Add common PDO test suite. (Adam Baratz) 2324 . Free error and message strings when cleaning up PDO instances. 2325 (Adam Baratz) 2326 . Fixed bug #67130 (\PDOStatement::nextRowset() should succeed when all rows 2327 in current rowset haven't been fetched). (Peter LeBrun) 2328 . Ignore potentially misleading dberr values. (Chris Kings-Lynne) 2329 2330- phpdbg: 2331 . Fixed bug #72996 (phpdbg_prompt.c undefined reference to DL_LOAD). (Nikita) 2332 . Fixed next command not stopping when leaving function. (Bob) 2333 2334- Session: 2335 . Fixed bug #68015 (Session does not report invalid uid for files save handler). 2336 (Yasuo) 2337 . Fixed bug #73100 (session_destroy null dereference in ps_files_path_create). 2338 (cmb) 2339 2340- SimpleXML: 2341 . Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()). 2342 (Stas) 2343 2344- SOAP: 2345 . Fixed bug #71711 (Soap Server Member variables reference bug). (Nikita) 2346 . Fixed bug #71996 (Using references in arrays doesn't work like expected). 2347 (Nikita) 2348 2349- SPL: 2350 . Fixed bug #73257, #73258 (SplObjectStorage unserialize allows use of 2351 non-object as key). (Stas) 2352 2353- SQLite3: 2354 . Updated bundled SQLite3 to 3.14.2. (cmb) 2355 2356- Zip: 2357 . Fixed bug #70752 (Depacking with wrong password leaves 0 length files). 2358 (cmb) 2359 236015 Sep 2016 PHP 7.0.11 2361 2362- Core: 2363 . Fixed bug #72944 (Null pointer deref in zval_delref_p). (Dmitry) 2364 . Fixed bug #72943 (assign_dim on string doesn't reset hval). (Laruence) 2365 . Fixed bug #72911 (Memleak in zend_binary_assign_op_obj_helper). (Laruence) 2366 . Fixed bug #72813 (Segfault with __get returned by ref). (Laruence) 2367 . Fixed bug #72767 (PHP Segfaults when trying to expand an infinite operator). 2368 (Nikita) 2369 . Fixed bug #72854 (PHP Crashes on duplicate destructor call). (Nikita) 2370 . Fixed bug #72857 (stream_socket_recvfrom read access violation). (Anatol) 2371 2372- COM: 2373 . Fixed bug #72922 (COM called from PHP does not return out parameters). 2374 (Anatol) 2375 2376- Dba: 2377 . Fixed bug #70825 (Cannot fetch multiple values with group in ini file). 2378 (cmb) 2379 2380- FTP: 2381 . Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with 2382 require_ssl_reuse). (Benedict Singer) 2383 2384- GD: 2385 . Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles). (cmb) 2386 . Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor 2387 images). (cmb) 2388 . Fixed bug #72913 (imagecopy() loses single-color transparency on palette 2389 images). (cmb) 2390 . Fixed bug #68716 (possible resource leaks in _php_image_convert()). (cmb) 2391 2392- iconv: 2393 . Fixed bug #72320 (iconv_substr returns false for empty strings). (cmb) 2394 2395- IMAP: 2396 . Fixed bug #72852 (imap_mail null dereference). (Anatol) 2397 2398- Intl: 2399 . Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF 2400 sequence). (cmb) 2401 . Fixed bug #73007 (add locale length check). (Stas) 2402 2403- Mysqlnd: 2404 . Fixed bug #72293 (Heap overflow in mysqlnd related to BIT fields). (Stas) 2405 2406- OCI8 2407 . Fixed invalid handle error with Implicit Result Sets. (Chris Jones) 2408 . Fixed bug #72524 (Binding null values triggers ORA-24816 error). (Chris Jones) 2409 2410- Opcache: 2411 . Fixed bug #72949 (Typo in opcache error message). (cmb) 2412 2413- PDO: 2414 . Fixed bug #72788 (Invalid memory access when using persistent PDO 2415 connection). (Keyur) 2416 . Fixed bug #72791 (Memory leak in PDO persistent connection handling). (Keyur) 2417 . Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY 2418 returns false). (cmb) 2419 2420- PDO_DBlib: 2421 . Implemented stringify 'uniqueidentifier' fields. 2422 (Alexander Zhuravlev, Adam Baratz) 2423 2424- PDO_pgsql: 2425 . Implemented FR #72633 (Postgres PDO lastInsertId() should work without 2426 specifying a sequence). (Pablo Santiago Sánchez, Matteo) 2427 . Fixed bug #72759 (Regression in pgo_pgsql). (Anatol) 2428 2429- Phar: 2430 . Fixed bug #72928 (Out of bound when verify signature of zip phar in 2431 phar_parse_zipfile). (Stas) 2432 . Fixed bug #73035 (Out of bound when verify signature of tar phar in 2433 phar_parse_tarfile). (Stas) 2434 2435- Reflection: 2436 . Fixed bug #72846 (getConstant for a array constant with constant values 2437 returns NULL/NFC/UKNOWN). (Laruence) 2438 2439- Session: 2440 . Fixed bug #72724 (PHP7: session-uploadprogress kills httpd). (Nikita) 2441 . Fixed bug #72940 (SID always return "name=ID", even if session 2442 cookie exist). (Yasuo) 2443 2444- SimpleXML: 2445 . Fixed bug #72971 (SimpleXML isset/unset do not respect namespace). (Nikita) 2446 . Fixed bug #72957 (Null coalescing operator doesn't behave as expected with 2447 SimpleXMLElement). (Nikita) 2448 2449- SPL: 2450 . Fixed bug #73029 (Missing type check when unserializing SplArray). (Stas) 2451 2452- Standard: 2453 . Fixed bug #55451 (substr_compare NULL length interpreted as 0). (Lauri 2454 Kenttä) 2455 . Fixed bug #72278 (getimagesize returning FALSE on valid jpg). (cmb) 2456 . Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign). 2457 (cmb) 2458 2459- Streams: 2460 . Fixed bug #72853 (stream_set_blocking doesn't work). (Laruence) 2461 . Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails 2462 with IIS FTP 7.5, 8.5). (vhuk) 2463 . Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory). 2464 (cmb) 2465 2466- SQLite3: 2467 . Downgraded bundled SQLite to 3.8.10.2. (Anatol); 2468 2469- Sysvshm: 2470 . Fixed bug #72858 (shm_attach null dereference). (Anatol) 2471 2472- XML: 2473 . Fixed bug #72085 (SEGV on unknown address zif_xml_parse). (cmb) 2474 . Fixed bug #72714 (_xml_startElementHandler() segmentation fault). (cmb) 2475 2476- Wddx: 2477 . Fixed bug #72860 (wddx_deserialize use-after-free). (Stas) 2478 . Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element). (Stas) 2479 2480- ZIP: 2481 . Fixed bug #68302 (impossible to compile php with zip support). (cmb) 2482 248318 Aug 2016 PHP 7.0.10 2484 2485- Core: 2486 . Fixed bug #72629 (Caught exception assignment to variables ignores 2487 references). (Laruence) 2488 . Fixed bug #72594 (Calling an earlier instance of an included anonymous 2489 class fatals). (Laruence) 2490 . Fixed bug #72581 (previous property undefined in Exception after 2491 deserialization). (Laruence) 2492 . Fixed bug #72496 (Cannot declare public method with signature incompatible 2493 with parent private method). (Pedro Magalhães) 2494 . Fixed bug #72024 (microtime() leaks memory). (maroszek at gmx dot net) 2495 . Fixed bug #71911 (Unable to set --enable-debug on building extensions by 2496 phpize on Windows). (Yuji Uchiyama) 2497 . Fixed bug causing ClosedGeneratorException being thrown into the calling 2498 code instead of the Generator yielding from. (Bob) 2499 . Implemented FR #72614 (Support "nmake test" on building extensions by 2500 phpize). (Yuji Uchiyama) 2501 . Fixed bug #72641 (phpize (on Windows) ignores PHP_PREFIX). 2502 (Yuji Uchiyama) 2503 . Fixed potential segfault in object storage freeing in shutdown sequence. 2504 (Bob) 2505 . Fixed bug #72663 (Create an Unexpected Object and Don't Invoke 2506 __wakeup() in Deserialization). (Stas) 2507 . Fixed bug #72681 (PHP Session Data Injection Vulnerability). (Stas) 2508 . Fixed bug #72683 (getmxrr broken). (Anatol) 2509 . Fixed bug #72742 (memory allocator fails to realloc small block to large 2510 one). (Stas) 2511 . Fixed URL rewriter partially. It would not rewrite '//example.com/' URL 2512 unconditionally. Only requested host(HTTP_HOST) is rewritten. (Yasuo) 2513 2514- Bz2: 2515 . Fixed bug #72837 (integer overflow in bzdecompress caused heap 2516 corruption). (Stas) 2517 2518- Calendar: 2519 . Fixed bug #67976 (cal_days_month() fails for final month of the French 2520 calendar). (cmb) 2521 . Fixed bug #71894 (AddressSanitizer: global-buffer-overflow in 2522 zif_cal_from_jd). (cmb) 2523 2524- COM: 2525 . Fixed bug #72569 (DOTNET/COM array parameters broke in PHP7). (Anatol) 2526 2527- CURL: 2528 . Fixed bug #71709 (curl_setopt segfault with empty CURLOPT_HTTPHEADER). 2529 (Pierrick) 2530 . Fixed bug #71929 (CURLINFO_CERTINFO data parsing error). (Pierrick) 2531 . Fixed bug #72674 (Heap overflow in curl_escape). (Stas) 2532 2533- DOM: 2534 . Fixed bug #66502 (DOM document dangling reference). (Sean Heelan, cmb) 2535 2536- EXIF: 2537 . Fixed bug #72735 (Samsung picture thumb not read (zero size)). (Kalle, Remi) 2538 . Fixed bug #72627 (Memory Leakage In exif_process_IFD_in_TIFF). (Stas) 2539 2540- Filter: 2541 . Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 2542 range). (bugs dot php dot net at majkl578 dot cz) 2543 2544- FPM: 2545 . Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user). 2546 (gooh) 2547 2548- GD: 2549 . Fixed bug #72596 (imagetypes function won't advertise WEBP support). (cmb) 2550 . Fixed bug #72604 (imagearc() ignores thickness for full arcs). (cmb) 2551 . Fixed bug #70315 (500 Server Error but page is fully rendered). (cmb) 2552 . Fixed bug #43828 (broken transparency of imagearc for truecolor in 2553 blendingmode). (cmb) 2554 . Fixed bug #66555 (Always false condition in ext/gd/libgd/gdkanji.c). (cmb) 2555 . Fixed bug #68712 (suspicious if-else statements). (cmb) 2556 . Fixed bug #72697 (select_colors write out-of-bounds). (Stas) 2557 . Fixed bug #72730 (imagegammacorrect allows arbitrary write access). (Stas) 2558 2559- Intl: 2560 . Fixed bug #72639 (Segfault when instantiating class that extends 2561 IntlCalendar and adds a property). (Laruence) 2562 . Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain 2563 names). (cmb) 2564 2565- mbstring: 2566 . Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width). 2567 (cmb) 2568 . Fixed bug #72693 (mb_ereg_search increments search position when a match 2569 zero-width). (cmb) 2570 . Fixed bug #72694 (mb_ereg_search_setpos does not accept a string's last 2571 position). (cmb) 2572 . Fixed bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error). 2573 (ju1ius) 2574 2575- Mcrypt: 2576 . Fixed bug #72782 (Heap Overflow due to integer overflows). (Stas) 2577 2578- Opcache: 2579 . Fixed bug #72590 (Opcache restart with kill_all_lockers does not work). 2580 (Keyur) 2581 2582- PCRE: 2583 . Fixed bug #72688 (preg_match missing group names in matches). (cmb) 2584 2585- PDO_pgsql: 2586 . Fixed bug #70313 (PDO statement fails to throw exception). (Matteo) 2587 2588- Reflection: 2589 . Fixed bug #72222 (ReflectionClass::export doesn't handle array constants). 2590 (Nikita Nefedov) 2591 2592- SimpleXML: 2593 . Fixed bug #72588 (Using global var doesn't work while accessing SimpleXML 2594 element). (Laruence) 2595 2596- SNMP: 2597 . Fixed bug #72708 (php_snmp_parse_oid integer overflow in memory 2598 allocation). (djodjo at gmail dot com) 2599 2600- SPL: 2601 . Fixed bug #55701 (GlobIterator throws LogicException). (Valentin VĂLCIU) 2602 . Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape 2603 character). (cmb) 2604 . Fixed bug #72684 (AppendIterator segfault with closed generator). (Pierrick) 2605 2606- SQLite3: 2607 . Fixed bug #72668 (Spurious warning when exception is thrown in user defined 2608 function). (Laruence) 2609 . Fixed bug #72571 (SQLite3::bindValue, SQLite3::bindParam crash). (Laruence) 2610 . Implemented FR #72653 (SQLite should allow opening with empty filename). 2611 (cmb) 2612 . Updated to SQLite3 3.13.0. (cmb) 2613 2614- Standard: 2615 . Fixed bug #72622 (array_walk + array_replace_recursive create references 2616 from nothing). (Laruence) 2617 . Fixed bug #72152 (base64_decode $strict fails to detect null byte). 2618 (Lauri Kenttä) 2619 . Fixed bug #72263 (base64_decode skips a character after padding in strict 2620 mode). (Lauri Kenttä) 2621 . Fixed bug #72264 (base64_decode $strict fails with whitespace between 2622 padding). (Lauri Kenttä) 2623 . Fixed bug #72330 (CSV fields incorrectly split if escape char followed by 2624 UTF chars). (cmb) 2625 2626- Streams: 2627 . Fixed bug #41021 (Problems with the ftps wrapper). (vhuk) 2628 . Fixed bug #54431 (opendir() does not work with ftps:// wrapper). (vhuk) 2629 . Fixed bug #72667 (opendir() with ftp:// attempts to open data stream for 2630 non-existent directories). (vhuk) 2631 . Fixed bug #72771 (ftps:// wrapper is vulnerable to protocol downgrade 2632 attack). (Stas) 2633 2634- XMLRPC: 2635 . Fixed bug #72647 (xmlrpc_encode() unexpected output after referencing 2636 array elements). (Laruence) 2637 2638- Wddx: 2639 . Fixed bug #72564 (boolean always deserialized as "true") (Remi) 2640 . Fixed bug #72142 (WDDX Packet Injection Vulnerability in 2641 wddx_serialize_value()). (Taoguang Chen) 2642 . Fixed bug #72749 (wddx_deserialize allows illegal memory access) (Stas) 2643 . Fixed bug #72750 (wddx_deserialize null dereference). (Stas) 2644 . Fixed bug #72790 (wddx_deserialize null dereference with invalid xml). 2645 (Stas) 2646 . Fixed bug #72799 (wddx_deserialize null dereference in 2647 php_wddx_pop_element). (Stas) 2648 2649- Zip: 2650 . Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd). 2651 (Laruence) 2652 265321 Jul 2016 PHP 7.0.9 2654 2655- Core: 2656 . Fixed bug #72508 (strange references after recursive function call and 2657 "switch" statement). (Laruence) 2658 . Fixed bug #72513 (Stack-based buffer overflow vulnerability in 2659 virtual_file_ex). (Stas) 2660 . Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries 2661 and applications). (Stas) 2662 2663- bz2: 2664 . Fixed bug #72613 (Inadequate error handling in bzread()). (Stas) 2665 2666- CLI: 2667 . Fixed bug #72484 (SCRIPT_FILENAME shows wrong path if the user specify 2668 router.php). (Laruence) 2669 2670- COM: 2671 . Fixed bug #72498 (variant_date_from_timestamp null dereference). (Anatol) 2672 2673- Curl: 2674 . Fixed bug #72541 (size_t overflow lead to heap corruption). (Stas) 2675 2676- Date: 2677 . Fixed bug #66836 (DateTime::createFromFormat 'U' with pre 1970 dates fails 2678 parsing). (derick) 2679 2680- Exif: 2681 . Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE). 2682 (Stas) 2683 . Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment). 2684 (Stas) 2685 2686- GD: 2687 . Fixed bug #43475 (Thick styled lines have scrambled patterns). (cmb) 2688 . Fixed bug #53640 (XBM images require width to be multiple of 8). (cmb) 2689 . Fixed bug #64641 (imagefilledpolygon doesn't draw horizontal line). (cmb) 2690 . Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read 2691 access). (Pierre) 2692 . Fixed bug #72519 (imagegif/output out-of-bounds access). (Pierre) 2693 . Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()). 2694 (Pierre) 2695 . Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine 2696 overflow). (Pierre) 2697 . Fixed bug #72494 (imagecropauto out-of-bounds access). (Pierre) 2698 2699- Intl: 2700 . Fixed bug #72533 (locale_accept_from_http out-of-bounds access). (Stas) 2701 2702- Mbstring: 2703 . Fixed bug #72405 (mb_ereg_replace - mbc_to_code (oniguruma) - 2704 oob read access). (Laruence) 2705 . Fixed bug #72399 (Use-After-Free in MBString (search_re)). (Laruence) 2706 2707- mcrypt: 2708 . Fixed bug #72551, bug #72552 (In correct casting from size_t to int lead to 2709 heap overflow in mdecrypt_generic). (Stas) 2710 2711- PDO_pgsql: 2712 . Fixed bug #72570 (Segmentation fault when binding parameters on a query 2713 without placeholders). (Matteo) 2714 2715- PCRE: 2716 . Fixed bug #72476 (Memleak in jit_stack). (Laruence) 2717 . Fixed bug #72463 (mail fails with invalid argument). (Anatol) 2718 2719- Readline: 2720 . Fixed bug #72538 (readline_redisplay crashes php). (Laruence) 2721 2722- Standard: 2723 . Fixed bug #72505 (readfile() mangles files larger than 2G). (Cschneid) 2724 . Fixed bug #72306 (Heap overflow through proc_open and $env parameter). 2725 (Laruence) 2726 2727- Session: 2728 . Fixed bug #72531 (ps_files_cleanup_dir Buffer overflow). (Laruence) 2729 . Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session 2730 Deserialization). (Stas) 2731 2732- SNMP: 2733 . Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and 2734 unserialize()). (Stas) 2735 2736- Streams: 2737 . Fixed bug #72439 (Stream socket with remote address leads to a segmentation 2738 fault). (Laruence) 2739 2740- XMLRPC: 2741 . Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn 2742 simplestring.c). (Stas) 2743 2744- Zip: 2745 . Fixed bug #72520 (Stack-based buffer overflow vulnerability in 2746 php_stream_zip_opener). (Stas) 2747 274823 Jun 2016 PHP 7.0.8 2749 2750- Core: 2751 . Fixed bug #72218 (If host name cannot be resolved then PHP 7 crashes). 2752 (Esminis at esminis dot lt) 2753 . Fixed bug #72221 (segfault, past-the-end access). (Lauri Kenttä) 2754 . Fixed bug #72268 (Integer Overflow in nl2br()). (Stas) 2755 . Fixed bug #72275 (Integer Overflow in json_encode()/json_decode()/ 2756 json_utf8_to_utf16()). (Stas) 2757 . Fixed bug #72400 (Integer Overflow in addcslashes/addslashes). (Stas) 2758 . Fixed bug #72403 (Integer Overflow in Length of String-typed ZVAL). (Stas) 2759 2760- Date: 2761 . Fixed bug #63740 (strtotime seems to use both sunday and monday as start of 2762 week). (Derick) 2763 2764- FPM: 2765 . Fixed bug #72308 (fastcgi_finish_request and logging environment 2766 variables). (Laruence) 2767 2768- GD: 2769 . Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874) 2770 (cmb) 2771 . Fixed bug #72298 (pass2_no_dither out-of-bounds access). (Stas) 2772 . Fixed bug #72337 (invalid dimensions can lead to crash). (Pierre) 2773 . Fixed bug #72339 (Integer Overflow in _gd2GetHeader() resulting in heap 2774 overflow). (CVE-2016-5766) (Pierre) 2775 . Fixed bug #72407 (NULL Pointer Dereference at _gdScaleVert). (Stas) 2776 . Fixed bug #72446 (Integer Overflow in gdImagePaletteToTrueColor() resulting 2777 in heap overflow). (CVE-2016-5767) (Pierre) 2778 2779- Intl: 2780 . Fixed bug #70484 (selectordinal doesn't work with named parameters). 2781 (Anatol) 2782 2783- mbstring: 2784 . Fixed bug #72402 (_php_mb_regex_ereg_replace_exec - double free). 2785 (CVE-2016-5768) (Stas) 2786 2787- mcrypt: 2788 . Fixed bug #72455 (Heap Overflow due to integer overflows). (CVE-2016-5769) 2789 (Stas) 2790 2791- OpenSSL: 2792 . Fixed bug #72140 (segfault after calling ERR_free_strings()). 2793 (Jakub Zelenka) 2794 2795- PCRE: 2796 . Fixed bug #72143 (preg_replace uses int instead of size_t). (Joe) 2797 2798- PDO_pgsql: 2799 . Fixed bug #71573 (Segfault (core dumped) if paramno beyond bound). 2800 (Laruence) 2801 . Fixed bug #72294 (Segmentation fault/invalid pointer in connection 2802 with pgsql_stmt_dtor). (Anatol) 2803 2804- Phar: 2805 . Fixed bug #72321 (invalid free in phar_extract_file()). 2806 (hji at dyntopia dot com) 2807 2808- Phpdbg: 2809 . Fixed bug #72284 (phpdbg fatal errors with coverage). (Bob) 2810 2811- Postgres: 2812 . Fixed bug #72195 (pg_pconnect/pg_connect cause use-after-free). (Laruence) 2813 . Fixed bug #72197 (pg_lo_create arbitrary read). (Anatol) 2814 2815- Standard: 2816 . Fixed bug #72369 (array_merge() produces references in PHP7). (Dmitry) 2817 . Fixed bug #72300 (ignore_user_abort(false) has no effect). (Laruence) 2818 . Fixed bug #72229 (Wrong reference when serialize/unserialize an object). 2819 (Laruence) 2820 . Fixed bug #72193 (dns_get_record returns array containing elements of 2821 type 'unknown'). (Laruence) 2822 . Fixed bug #72017 (range() with float step produces unexpected result). 2823 (Thomas Punt) 2824 2825- WDDX: 2826 . Fixed bug #72340 (Double Free Courruption in wddx_deserialize). 2827 (CVE-2016-5772) (Stas) 2828 2829- XML: 2830 . Fixed bug #72206 (xml_parser_create/xml_parser_free leaks mem). (Joe) 2831 2832- XMLRPC: 2833 . Fixed bug #72155 (use-after-free caused by get_zval_xmlrpc_type). 2834 (Joe, Laruence) 2835 2836- Zip: 2837 . Fixed ug #72258 (ZipArchive converts filenames to unrecoverable form). 2838 (Anatol) 2839 . Fixed bug #72434 (ZipArchive class Use After Free Vulnerability in PHP's GC 2840 algorithm and unserialize). (CVE-2016-5773) (Dmitry) 2841 284226 May 2016 PHP 7.0.7 2843 2844- Core: 2845 . Fixed bug #72162 (use-after-free - error_reporting). (Laruence) 2846 . Add compiler option to disable special case function calls. (Joe) 2847 . Fixed bug #72101 (crash on complex code). (Dmitry) 2848 . Fixed bug #72100 (implode() inserts garbage into resulting string when 2849 joins very big integer). (Mikhail Galanin) 2850 . Fixed bug #72057 (PHP Hangs when using custom error handler and typehint). 2851 (Nikita Nefedov) 2852 . Fixed bug #72038 (Function calls with values to a by-ref parameter don't 2853 always throw a notice). (Bob) 2854 . Fixed bug #71737 (Memory leak in closure with parameter named $this). 2855 (Nikita) 2856 . Fixed bug #72059 (?? is not allowed on constant expressions). (Bob, Marcio) 2857 . Fixed bug #72159 (Imported Class Overrides Local Class Name). (Nikita) 2858 2859- Curl: 2860 . Fixed bug #68658 (Define CURLE_SSL_CACERT_BADFILE). (Pierrick) 2861 2862- DBA: 2863 . Fixed bug #72157 (use-after-free caused by dba_open). (Shm, Laruence) 2864 2865- GD: 2866 . Fixed bug #72227 (imagescale out-of-bounds read). (Stas) 2867 2868- Intl: 2869 . Fixed bug #64524 (Add intl.use_exceptions to php.ini-*). (Anatol) 2870 . Fixed bug #72241 (get_icu_value_internal out-of-bounds read). (Stas) 2871 2872- JSON: 2873 . Fixed bug #72069 (Behavior \JsonSerializable different from json_encode). 2874 (Laruence) 2875 2876- Mbstring: 2877 . Fixed bug #72164 (Null Pointer Dereference - mb_ereg_replace). (Laruence) 2878 2879- OCI8: 2880 . Fixed bug #71600 (oci_fetch_all segfaults when selecting more than eight 2881 columns). (Tian Yang) 2882 2883- Opcache: 2884 . Fixed bug #72014 (Including a file with anonymous classes multiple times 2885 leads to fatal error). (Laruence) 2886 2887- OpenSSL: 2888 . Fixed bug #72165 (Null pointer dereference - openssl_csr_new). (Anatol) 2889 2890- PCNTL: 2891 . Fixed bug #72154 (pcntl_wait/pcntl_waitpid array internal structure 2892 overwrite). (Laruence) 2893 2894- POSIX: 2895 . Fixed bug #72133 (php_posix_group_to_array crashes if gr_passwd is NULL). 2896 (esminis at esminis dot lt) 2897 2898- Postgres: 2899 . Fixed bug #72028 (pg_query_params(): NULL converts to empty string). 2900 (Laruence) 2901 . Fixed bug #71062 (pg_convert() doesn't accept ISO 8601 for datatype 2902 timestamp). (denver at timothy dot io) 2903 . Fixed bug #72151 (mysqli_fetch_object changed behaviour). (Anatol) 2904 2905- Reflection: 2906 . Fixed bug #72174 (ReflectionProperty#getValue() causes __isset call). 2907 (Nikita) 2908 2909- Session: 2910 . Fixed bug #71972 (Cyclic references causing session_start(): Failed to 2911 decode session object). (Laruence) 2912 2913- Sockets: 2914 . Added socket_export_stream() function for getting a stream compatible 2915 resource from a socket resource. (Chris Wright, Bob) 2916 2917- SPL: 2918 . Fixed bug #72051 (The reference in CallbackFilterIterator doesn't work as 2919 expected). (Laruence) 2920 2921- SQLite3: 2922 . Fixed bug #68849 (bindValue is not using the right data type). (Anatol) 2923 2924- Standard: 2925 . Fixed bug #72075 (Referencing socket resources breaks stream_select). 2926 (Laruence) 2927 . Fixed bug #72031 (array_column() against an array of objects discards all 2928 values matching null). (Nikita) 2929 293028 Apr 2016 PHP 7.0.6 2931 2932- Core: 2933 . Fixed bug #71930 (_zval_dtor_func: Assertion `(arr)->gc.refcount <= 1' 2934 failed). (Laruence) 2935 . Fixed bug #71922 (Crash on assert(new class{})). (Nikita) 2936 . Fixed bug #71914 (Reference is lost in "switch"). (Laruence) 2937 . Fixed bug #71871 (Interfaces allow final and abstract functions). (Nikita) 2938 . Fixed Bug #71859 (zend_objects_store_call_destructors operates on realloced 2939 memory, crashing). (Laruence) 2940 . Fixed bug #71841 (EG(error_zval) is not handled well). (Laruence) 2941 . Fixed bug #71750 (Multiple Heap Overflows in php_raw_url_encode/ 2942 php_url_encode). (Stas) 2943 . Fixed bug #71731 (Null coalescing operator and ArrayAccess). (Nikita) 2944 . Fixed bug #71609 (Segmentation fault on ZTS with gethostbyname). (krakjoe) 2945 . Fixed bug #71414 (Inheritance, traits and interfaces). (krakjoe) 2946 . Fixed bug #71359 (Null coalescing operator and magic). (krakjoe) 2947 . Fixed bug #71334 (Cannot access array keys while uksort()). (Nikita) 2948 . Fixed bug #69659 (ArrayAccess, isset() and the offsetExists method). 2949 (Nikita) 2950 . Fixed bug #69537 (__debugInfo with empty string for key gives error). 2951 (krakjoe) 2952 . Fixed bug #62059 (ArrayObject and isset are not friends). (Nikita) 2953 . Fixed bug #71980 (Decorated/Nested Generator is Uncloseable in Finally). 2954 (Nikita) 2955 2956- BCmath: 2957 . Fixed bug #72093 (bcpowmod accepts negative scale and corrupts 2958 _one_ definition). (Stas) 2959 2960- Curl: 2961 . Fixed bug #71831 (CURLOPT_NOPROXY applied as long instead of string). 2962 (Michael Sierks) 2963 2964- Date: 2965 . Fixed bug #71889 (DateInterval::format Segmentation fault). (Thomas Punt) 2966 2967- EXIF: 2968 . Fixed bug #72094 (Out of bounds heap read access in exif header processing). (Stas) 2969 2970- GD: 2971 . Fixed bug #71912 (libgd: signedness vulnerability). (CVE-2016-3074) (Stas) 2972 2973- Intl: 2974 . Fixed bug #71516 (IntlDateFormatter looses locale if pattern is set via 2975 constructor). (Anatol) 2976 . Fixed bug #70455 (Missing constant: IntlChar::NO_NUMERIC_VALUE). (Anatol) 2977 . Fixed bug #70451, #70452 (Inconsistencies in return values of IntlChar 2978 methods). (Daniel Persson) 2979 . Fixed bug #68893 (Stackoverflow in datefmt_create). (Anatol) 2980 . Fixed bug #66289 (Locale::lookup incorrectly returns en or en_US if locale 2981 is empty). (Anatol) 2982 . Fixed bug #70484 (selectordinal doesn't work with named parameters). 2983 (Anatol) 2984 . Fixed bug #72061 (Out-of-bounds reads in zif_grapheme_stripos with negative 2985 offset). (Stas) 2986 2987- ODBC: 2988 . Fixed bug #63171 (Script hangs after max_execution_time). (Remi) 2989 2990- Opcache: 2991 . Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER). 2992 (Laruence) 2993 2994- PDO: 2995 . Fixed bug #52098 (Own PDOStatement implementation ignore __call()). 2996 (Daniel kalaspuffar, Julien) 2997 . Fixed bug #71447 (Quotes inside comments not properly handled). (Matteo) 2998 2999- PDO_DBlib: 3000 . Fixed bug #71943 (dblib_handle_quoter needs to allocate an extra byte). 3001 (Adam Baratz) 3002 . Add DBLIB-specific attributes for controlling timeouts. (Adam Baratz) 3003 3004- PDO_pgsql: 3005 . Fixed bug #62498 (pdo_pgsql inefficient when getColumnMeta() is used). 3006 (Joseph Bylund) 3007 3008- Postgres: 3009 . Fixed bug #71820 (pg_fetch_object binds parameters before call 3010 constructor). (Anatol) 3011 . Fixed bug #71998 (Function pg_insert does not insert when column 3012 type = inet). (Anatol) 3013 3014- SOAP: 3015 . Fixed bug #71986 (Nested foreach assign-by-reference creates broken 3016 variables). (Laruence) 3017 3018- SPL: 3019 . Fixed bug #71838 (Deserializing serialized SPLObjectStorage-Object can't 3020 access properties in PHP). (Nikita) 3021 . Fixed bug #71735 (Double-free in SplDoublyLinkedList::offsetSet). (Stas) 3022 . Fixed bug #67582 (Cloned SplObjectStorage with overwritten getHash fails 3023 offsetExists()). (Nikita) 3024 . Fixed bug #52339 (SPL autoloader breaks class_exists()). (Nikita) 3025 3026- Standard: 3027 . Fixed bug #71995 (Returning the same var twice from __sleep() produces 3028 broken serialized data). (Laruence) 3029 . Fixed bug #71940 (Unserialize crushes on restore object reference). 3030 (Laruence) 3031 . Fixed bug #71969 (str_replace returns an incorrect resulting array after 3032 a foreach by reference). (Laruence) 3033 . Fixed bug #71891 (header_register_callback() and 3034 register_shutdown_function()). (Laruence) 3035 . Fixed bug #71884 (Null pointer deref (segfault) in 3036 stream_context_get_default). (Laruence) 3037 . Fixed bug #71840 (Unserialize accepts wrongly data). (Ryat, Laruence) 3038 . Fixed bug #71837 (Wrong arrays behaviour). (Laruence) 3039 . Fixed bug #71827 (substr_replace bug, string length). (krakjoe) 3040 . Fixed bug #67512 (php_crypt() crashes if crypt_r() does not exist or 3041 _REENTRANT is not defined). (Nikita) 3042 . Fixed bug #72116 (array_fill optimization breaks implementation). (Bob) 3043 3044- XML: 3045 . Fixed bug #72099 (xml_parse_into_struct segmentation fault). (Stas) 3046 3047- Zip: 3048 . Fixed bug #71923 (integer overflow in ZipArchive::getFrom*). 3049 (CVE-2016-3078) (Stas) 3050 305131 Mar 2016 PHP 7.0.5 3052 3053- Core: 3054 . Huge pages disabled by default. (Rasmus) 3055 . Added ability to enable huge pages in Zend Memory Manager through 3056 the environment variable USE_ZEND_ALLOC_HUGE_PAGES=1. (Dmitry) 3057 . Fixed bug #71756 (Call-by-reference widens scope to uninvolved functions 3058 when used in switch). (Laruence) 3059 . Fixed bug #71729 (Possible crash in zend_bin_strtod, zend_oct_strtod, 3060 zend_hex_strtod). (Laruence) 3061 . Fixed bug #71695 (Global variables are reserved before execution). 3062 (Laruence) 3063 . Fixed bug #71629 (Out-of-bounds access in php_url_decode in context 3064 php_stream_url_wrap_rfc2397). (mt at debian dot org) 3065 . Fixed bug #71622 (Strings used in pass-as-reference cannot be used to 3066 invoke C::$callable()). (Bob) 3067 . Fixed bug #71596 (Segmentation fault on ZTS with date function 3068 (setlocale)). (Anatol) 3069 . Fixed bug #71535 (Integer overflow in zend_mm_alloc_heap()). (Dmitry) 3070 . Fixed bug #71470 (Leaked 1 hashtable iterators). (Nikita) 3071 . Fixed bug #71575 (ISO C does not allow extra ‘;’ outside of a function). 3072 (asgrim) 3073 . Fixed bug #71724 (yield from does not count EOLs). (Nikita) 3074 . Fixed bug #71767 (ReflectionMethod::getDocComment returns the wrong 3075 comment). (Grigorii Sokolik) 3076 . Fixed bug #71806 (php_strip_whitespace() fails on some numerical values). 3077 (Nikita) 3078 . Fixed bug #71624 (`php -R` (PHP_MODE_PROCESS_STDIN) is broken). 3079 (Sean DuBois) 3080 3081- CLI Server: 3082 . Fixed bug #69953 (Support MKCALENDAR request method). (Christoph) 3083 3084- Curl: 3085 . Fixed bug #71694 (Support constant CURLM_ADDED_ALREADY). (mpyw) 3086 3087- Date: 3088 . Fixed bug #71635 (DatePeriod::getEndDate segfault). (Thomas Punt) 3089 3090- Fileinfo: 3091 . Fixed bug #71527 (Buffer over-write in finfo_open with malformed magic 3092 file). (CVE-2015-8865) (Anatol) 3093 3094- libxml: 3095 . Fixed bug #71536 (Access Violation crashes php-cgi.exe). (Anatol) 3096 3097- mbstring: 3098 . Fixed bug #71906 (AddressSanitizer: negative-size-param (-1) in 3099 mbfl_strcut). (CVE-2016-4073) (Stas) 3100 3101- ODBC: 3102 . Fixed bug #47803, #69526 (Executing prepared statements is succesfull only 3103 for the first two statements). (einavitamar at gmail dot com, Anatol) 3104 3105- PCRE: 3106 . Fixed bug #71659 (segmentation fault in pcre running twig tests). 3107 (nish dot aravamudan at canonical dot com) 3108 3109- PDO_DBlib: 3110 . Fixed bug #54648 (PDO::MSSQL forces format of datetime fields). 3111 (steven dot lambeth at gmx dot de, Anatol) 3112 3113- Phar: 3114 . Fixed bug #71625 (Crash in php7.dll with bad phar filename). (Anatol) 3115 . Fixed bug #71317 (PharData fails to open specific file). (Jos Elstgeest) 3116 . Fixed bug #71860 (Invalid memory write in phar on filename with \0 in 3117 name). (CVE-2016-4072) (Stas) 3118 3119- phpdbg: 3120 . Fixed crash when advancing (except step) inside an internal function. (Bob) 3121 3122- Session: 3123 . Fixed bug #71683 (Null pointer dereference in zend_hash_str_find_bucket). 3124 (Yasuo) 3125 3126- SNMP: 3127 . Fixed bug #71704 (php_snmp_error() Format String Vulnerability). 3128 (CVE-2016-4071) (andrew at jmpesp dot org) 3129 3130- SPL: 3131 . Fixed bug #71617 (private properties lost when unserializing ArrayObject). 3132 (Nikita) 3133 3134- Standard: 3135 . Fixed bug #71660 (array_column behaves incorrectly after foreach by 3136 reference). (Laruence) 3137 . Fixed bug #71798 (Integer Overflow in php_raw_url_encode). (CVE-2016-4070) 3138 (taoguangchen at icloud dot com, Stas) 3139 3140- Zip: 3141 . Update bundled libzip to 1.1.2. (Remi, Anatol) 3142 314303 Mar 2016 PHP 7.0.4 3144 3145- Core: 3146 . Fixed bug (Low probability segfault in zend_arena). (Laruence) 3147 . Fixed bug #71441 (Typehinted Generator with return in try/finally crashes). 3148 (Bob) 3149 . Fixed bug #71442 (forward_static_call crash). (Laruence) 3150 . Fixed bug #71443 (Segfault using built-in webserver with intl using 3151 symfony). (Laruence) 3152 . Fixed bug #71449 (An integer overflow bug in php_implode()). (Stas) 3153 . Fixed bug #71450 (An integer overflow bug in php_str_to_str_ex()). (Stas) 3154 . Fixed bug #71474 (Crash because of VM stack corruption on Magento2). 3155 (Dmitry) 3156 . Fixed bug #71485 (Return typehint on internal func causes Fatal error 3157 when it throws exception). (Laruence) 3158 . Fixed bug #71529 (Variable references on array elements don't work when 3159 using count). (Nikita) 3160 . Fixed bug #71601 (finally block not executed after yield from). (Bob) 3161 . Fixed bug #71637 (Multiple Heap Overflow due to integer overflows in 3162 xml/filter_url/addcslashes). (CVE-2016-4344, CVE-2016-4345, CVE-2016-4346) 3163 (Stas) 3164 3165- CLI server: 3166 . Fixed bug #71559 (Built-in HTTP server, we can download file in web by bug). 3167 (Johannes, Anatol) 3168 3169- CURL: 3170 . Fixed bug #71523 (Copied handle with new option CURLOPT_HTTPHEADER crashes 3171 while curl_multi_exec). (Laruence) 3172 . Fixed memory leak in curl_getinfo(). (Leigh) 3173 3174- Date: 3175 . Fixed bug #71525 (Calls to date_modify will mutate timelib_rel_time, 3176 causing date_date_set issues). (Sean DuBois) 3177 3178- Fileinfo: 3179 . Fixed bug #71434 (finfo throws notice for specific python file). (Laruence) 3180 3181- FPM: 3182 . Fixed bug #62172 (FPM not working with Apache httpd 2.4 balancer/fcgi 3183 setup). (Matt Haught, Remi) 3184 . Fixed bug #71269 (php-fpm dumped core). (Mickaël) 3185 3186- Opcache: 3187 . Fixed bug #71584 (Possible use-after-free of ZCG(cwd) in Zend Opcache). 3188 (Yussuf Khalil) 3189 3190- PCRE: 3191 . Fixed bug #71537 (PCRE segfault from Opcache). (Laruence) 3192 3193- phpdbg: 3194 . Fixed inherited functions from unspecified files being included in 3195 phpdbg_get_executable(). (Bob) 3196 3197- SOAP: 3198 . Fixed bug #71610 (Type Confusion Vulnerability - SOAP / 3199 make_http_soap_request()). (CVE-2016-3185) (Stas) 3200 3201- Standard: 3202 . Fixed bug #71603 (compact() maintains references in php7). (Laruence) 3203 . Fixed bug #70720 (strip_tags improper php code parsing). (Julien) 3204 3205- XMLRPC: 3206 . Fixed bug #71501 (xmlrpc_encode_request ignores encoding option). (Hieu Le) 3207 3208- Zip: 3209 . Fixed bug #71561 (NULL pointer dereference in Zip::ExtractTo). (Laruence) 3210 321104 Feb 2016 PHP 7.0.3 3212 3213- Core: 3214 . Added support for new HTTP 451 code. (Julien) 3215 . Fixed bug #71039 (exec functions ignore length but look for NULL 3216 termination). (Anatol) 3217 . Fixed bug #71089 (No check to duplicate zend_extension). (Remi) 3218 . Fixed bug #71201 (round() segfault on 64-bit builds). (Anatol) 3219 . Fixed bug #71221 (Null pointer deref (segfault) in get_defined_vars via 3220 ob_start). (hugh at allthethings dot co dot nz) 3221 . Fixed bug #71248 (Wrong interface is enforced). (Dmitry) 3222 . Fixed bug #71273 (A wrong ext directory setup in php.ini leads to crash). 3223 (Anatol) 3224 . Fixed Bug #71275 (Bad method called on cloning an object having a trait). 3225 (Bob) 3226 . Fixed bug #71297 (Memory leak with consecutive yield from). (Bob) 3227 . Fixed bug #71300 (Segfault in zend_fetch_string_offset). (Laruence) 3228 . Fixed bug #71314 (var_export(INF) prints INF.0). (Andrea) 3229 . Fixed bug #71323 (Output of stream_get_meta_data can be falsified by its 3230 input). (Leo Gaspard) 3231 . Fixed bug #71336 (Wrong is_ref on properties as exposed via 3232 get_object_vars()). (Laruence) 3233 . Fixed bug #71459 (Integer overflow in iptcembed()). (Stas) 3234 3235- Apache2handler: 3236 . Fix >2G Content-Length headers in apache2handler. (Adam Harvey) 3237 3238- CURL: 3239 . Fixed bug #71227 (Can't compile php_curl statically). (Anatol) 3240 . Fixed bug #71225 (curl_setopt() fails to set CURLOPT_POSTFIELDS with 3241 reference to CURLFile). (Laruence) 3242 3243- GD: 3244 . Improved fix for bug #70976. (Remi) 3245 3246- Interbase: 3247 . Fixed Bug #71305 (Crash when optional resource is omitted). 3248 (Laruence, Anatol) 3249 3250- LDAP: 3251 . Fixed bug #71249 (ldap_mod_replace/ldap_mod_add store value as string 3252 "Array"). (Laruence) 3253 3254- mbstring: 3255 . Fixed bug #71397 (mb_send_mail segmentation fault). (Andrea, Yasuo) 3256 3257- OpenSSL: 3258 . Fixed bug #71475 (openssl_seal() uninitialized memory usage). (Stas) 3259 3260- PCRE: 3261 . Upgraded pcrelib to 8.38. (CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, 3262 CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394) 3263 3264- Phar: 3265 . Fixed bug #71354 (Heap corruption in tar/zip/phar parser). (CVE-2016-4342) 3266 (Stas) 3267 . Fixed bug #71331 (Uninitialized pointer in phar_make_dirstream()). 3268 (CVE-2016-4343) (Stas) 3269 . Fixed bug #71391 (NULL Pointer Dereference in phar_tar_setupmetadata()). 3270 (Stas) 3271 . Fixed bug #71488 (Stack overflow when decompressing tar archives). 3272 (CVE-2016-2554) (Stas) 3273 3274- SOAP: 3275 . Fixed bug #70979 (crash with bad soap request). (Anatol) 3276 3277- SPL: 3278 . Fixed bug #71204 (segfault if clean spl_autoload_funcs while autoloading). 3279 (Laruence) 3280 . Fixed bug #71202 (Autoload function registered by another not activated 3281 immediately). (Laruence) 3282 . Fixed bug #71311 (Use-after-free vulnerability in SPL(ArrayObject, 3283 unserialize)). (Sean Heelan) 3284 . Fixed bug #71313 (Use-after-free vulnerability in SPL(SplObjectStorage, 3285 unserialize)). (Sean Heelan) 3286 3287- Standard: 3288 . Fixed bug #71287 (Error message contains hexadecimal instead of decimal 3289 number). (Laruence) 3290 . Fixed bug #71264 (file_put_contents() returns unexpected value when 3291 filesystem runs full). (Laruence) 3292 . Fixed bug #71245 (file_get_contents() ignores "header" context option if 3293 it's a reference). (Laruence) 3294 . Fixed bug #71220 (Null pointer deref (segfault) in compact via ob_start). 3295 (hugh at allthethings dot co dot nz) 3296 . Fixed bug #71190 (substr_replace converts integers in original $search 3297 array to strings). (Laruence) 3298 . Fixed bug #71188 (str_replace converts integers in original $search array 3299 to strings). (Laruence) 3300 . Fixed bug #71132, #71197 (range() segfaults). (Thomas Punt) 3301 3302- WDDX: 3303 . Fixed bug #71335 (Type Confusion in WDDX Packet Deserialization). (Stas) 3304 330507 Jan 2016 PHP 7.0.2 3306 3307- Core: 3308 . Fixed bug #71165 (-DGC_BENCH=1 doesn't work on PHP7). 3309 (y dot uchiyama dot 1015 at gmail dot com) 3310 . Fixed bug #71163 (Segmentation Fault: cleanup_unfinished_calls). (Laruence) 3311 . Fixed bug #71109 (ZEND_MOD_CONFLICTS("xdebug") doesn't work). (Laruence) 3312 . Fixed bug #71092 (Segmentation fault with return type hinting). (Laruence) 3313 . Fixed bug memleak in header_register_callback. (Laruence) 3314 . Fixed bug #71067 (Local object in class method stays in memory for each 3315 call). (Laruence) 3316 . Fixed bug #66909 (configure fails utf8_to_mutf7 test). (Michael Orlitzky) 3317 . Fixed bug #70781 (Extension tests fail on dynamic ext dependency). 3318 (Francois Laupretre) 3319 . Fixed bug #71089 (No check to duplicate zend_extension). (Remi) 3320 . Fixed bug #71086 (Invalid numeric literal parse error within 3321 highlight_string() function). (Nikita) 3322 . Fixed bug #71154 (Incorrect HT iterator invalidation causes iterator reuse). 3323 (Nikita) 3324 . Fixed bug #52355 (Negating zero does not produce negative zero). (Andrea) 3325 . Fixed bug #66179 (var_export() exports float as integer). (Andrea) 3326 . Fixed bug #70804 (Unary add on negative zero produces positive zero). 3327 (Andrea) 3328 3329- CURL: 3330 . Fixed bug #71144 (Sementation fault when using cURL with ZTS). 3331 (Michael Maroszek, Laruence) 3332 3333- DBA: 3334 . Fixed key leak with invalid resource. (Laruence) 3335 3336- Filter: 3337 . Fixed bug #71063 (filter_input(INPUT_ENV, ..) does not work). (Reeze Xia) 3338 3339- FPM: 3340 . Fixed bug #70755 (fpm_log.c memory leak and buffer overflow). (Stas) 3341 3342- FTP: 3343 . Implemented FR #55651 (Option to ignore the returned FTP PASV address). 3344 (abrender at elitehosts dot com) 3345 3346- GD: 3347 . Fixed bug #70976 (Memory Read via gdImageRotateInterpolated Array Index 3348 Out of Bounds). (CVE-2016-1903) (emmanuel dot law at gmail dot com) 3349 3350- Mbstring: 3351 . Fixed bug #71066 (mb_send_mail: Program terminated with signal SIGSEGV, 3352 Segmentation fault). (Laruence) 3353 3354- Opcache: 3355 . Fixed bug #71127 (Define in auto_prepend_file is overwrite). (Laruence) 3356 3357- PCRE: 3358 . Fixed bug #71178 (preg_replace with arrays creates [0] in replace array 3359 if not already set). (Laruence) 3360 3361- Readline: 3362 . Fixed bug #71094 (readline_completion_function corrupts static array on 3363 second TAB). (Nikita) 3364 3365- Session: 3366 . Fixed bug #71122 (Session GC may not remove obsolete session data). (Yasuo) 3367 3368- SPL: 3369 . Fixed bug #71077 (ReflectionMethod for ArrayObject constructor returns 3370 wrong number of parameters). (Laruence) 3371 . Fixed bug #71153 (Performance Degradation in ArrayIterator with large 3372 arrays). (Nikita) 3373 3374- Standard: 3375 . Fixed bug #71270 (Heap BufferOver Flow in escapeshell functions). 3376 (CVE-2016-1904) (emmanuel dot law at gmail dot com) 3377 3378- WDDX: 3379 . Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet 3380 Deserialization). (taoguangchen at icloud dot com) 3381 . Fixed bug #70741 (Session WDDX Packet Deserialization Type Confusion 3382 Vulnerability). (taoguangchen at icloud dot com) 3383 3384- XMLRPC: 3385 . Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker). 3386 (Julien) 3387 338817 Dec 2015, PHP 7.0.1 3389 3390- Core: 3391 . Fixed bug #71105 (Format String Vulnerability in Class Name Error Message). 3392 (CVE-2015-8617) (andrew at jmpesp dot org) 3393 . Fixed bug #70831 (Compile fails on system with 160 CPUs). (Daniel Axtens) 3394 . Fixed bug #71006 (symbol referencing errors on Sparc/Solaris). (Dmitry) 3395 . Fixed bug #70997 (When using parentClass:: instead of parent::, static 3396 context changed). (Dmitry) 3397 . Fixed bug #70970 (Segfault when combining error handler with output 3398 buffering). (Laruence) 3399 . Fixed bug #70967 (Weird error handling for __toString when Error is 3400 thrown). (Laruence) 3401 . Fixed bug #70958 (Invalid opcode while using ::class as trait method 3402 paramater default value). (Laruence) 3403 . Fixed bug #70944 (try{ } finally{} can create infinite chains of 3404 exceptions). (Laruence) 3405 . Fixed bug #70931 (Two errors messages are in conflict). (dams, Laruence) 3406 . Fixed bug #70904 (yield from incorrectly marks valid generator as 3407 finished). (Bob) 3408 . Fixed bug #70899 (buildconf failure in extensions). (Bob, Reeze) 3409 . Fixed bug #61751 (SAPI build problem on AIX: Undefined symbol: 3410 php_register_internal_extensions). (Lior Kaplan) 3411 . Fixed \int (or generally every scalar type name with leading backslash) 3412 to not be accepted as type name. (Bob) 3413 . Fixed exception not being thrown immediately into a generator yielding 3414 from an array. (Bob) 3415 . Fixed bug #70987 (static::class within Closure::call() causes segfault). 3416 (Andrea) 3417 . Fixed bug #71013 (Incorrect exception handler with yield from). (Bob) 3418 . Fixed double free in error condition of format printer. (Bob) 3419 3420- CLI server: 3421 . Fixed bug #71005 (Segfault in php_cli_server_dispatch_router()). (Adam) 3422 3423- Intl: 3424 . Fixed bug #71020 (Use after free in Collator::sortWithSortKeys). 3425 (CVE-2015-8616) (emmanuel dot law at gmail dot com, Laruence) 3426 3427- Mysqlnd: 3428 . Fixed bug #68077 (LOAD DATA LOCAL INFILE / open_basedir restriction). 3429 (Laruence) 3430 . Fixed bug #68344 (MySQLi does not provide way to disable peer certificate 3431 validation) by introducing MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT 3432 connection flag. (Andrey) 3433 3434- OCI8: 3435 . Fixed LOB implementation size_t/zend_long mismatch reported by gcov. 3436 (Senthil) 3437 3438- Opcache: 3439 . Fixed bug #71024 (Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 3440 on the same server). (Anatol) 3441 . Fixed bug #70991 (zend_file_cache.c:710: error: array type has incomplete 3442 element type). (Laruence) 3443 . Fixed bug #70977 (Segmentation fault with opcache.huge_code_pages=1). 3444 (Laruence) 3445 3446- PDO_Firebird: 3447 . Fixed bug #60052 (Integer returned as a 64bit integer on X64_86). (Mariuz) 3448 3449- Phpdbg: 3450 . Fixed stderr being written to stdout. (Bob) 3451 3452- Reflection: 3453 . Fixed bug #71018 (ReflectionProperty::setValue() behavior changed). 3454 (Laruence) 3455 . Fixed bug #70982 (setStaticPropertyValue behaviors inconsistently with 3456 5.6). (Laruence) 3457 3458- Soap: 3459 . Fixed bug #70993 (Array key references break argument processing). 3460 (Laruence) 3461 3462- SPL: 3463 . Fixed bug #71028 (Undefined index with ArrayIterator). (Laruence) 3464 3465- SQLite3: 3466 . Fixed bug #71049 (SQLite3Stmt::execute() releases bound parameter instead 3467 of internal buffer). (Laruence) 3468 3469- Standard: 3470 . Fixed bug #70999 (php_random_bytes: called object is not a function). 3471 (Scott) 3472 . Fixed bug #70960 (ReflectionFunction for array_unique returns wrong number 3473 of parameters). (Laruence) 3474 3475- Streams/Socket: 3476 . Add IPV6_V6ONLY constant / make it usable in stream contexts. (Bob) 3477 347803 Dec 2015, PHP 7.0.0 3479 3480- Core: 3481 . Fixed bug #70947 (INI parser segfault with INI_SCANNER_TYPED). (Laruence) 3482 . Fixed bug #70914 (zend_throw_or_error() format string vulnerability). 3483 (Taoguang Chen) 3484 . Fixed bug #70912 (Null ptr dereference instantiating class with invalid 3485 array property). (Laruence) 3486 . Fixed bug #70895, #70898 (null ptr deref and segfault with crafted calable). 3487 (Anatol, Laruence) 3488 . Fixed bug #70249 (Segmentation fault while running PHPUnit tests on 3489 phpBB 3.2-dev). (Laruence) 3490 . Fixed bug #70805 (Segmentation faults whilst running Drupal 8 test suite). 3491 (Dmitry, Laruence) 3492 . Fixed bug #70842 (Persistent Stream Segmentation Fault). (Caleb Champlin) 3493 . Fixed bug #70862 (Several functions do not check return code of 3494 php_stream_copy_to_mem()). (Anatol) 3495 . Fixed bug #70863 (Incorect logic to increment_function for proxy objects). 3496 (Anatol) 3497 . Fixed bug #70323 (Regression in zend_fetch_debug_backtrace() can cause 3498 segfaults). (Aharvey, Laruence) 3499 . Fixed bug #70873 (Regression on private static properties access). 3500 (Laruence) 3501 . Fixed bug #70748 (Segfault in ini_lex () at Zend/zend_ini_scanner.l). 3502 (Laruence) 3503 . Fixed bug #70689 (Exception handler does not work as expected). (Laruence) 3504 . Fixed bug #70430 (Stack buffer overflow in zend_language_parser()). (Nikita) 3505 . Fixed bug #70782 (null ptr deref and segfault (zend_get_class_fetch_type)). 3506 (Nikita) 3507 . Fixed bug #70785 (Infinite loop due to exception during identical 3508 comparison). (Laruence) 3509 . Fixed bug #70630 (Closure::call/bind() crash with ReflectionFunction-> 3510 getClosure()). (Dmitry, Bob) 3511 . Fixed bug #70662 (Duplicate array key via undefined index error handler). 3512 (Nikita) 3513 . Fixed bug #70681 (Segfault when binding $this of internal instance method 3514 to null). (Nikita) 3515 . Fixed bug #70685 (Segfault for getClosure() internal method rebind with 3516 invalid $this). (Nikita) 3517 . Added zend_internal_function.reserved[] fields. (Dmitry) 3518 . Fixed bug #70557 (Memleak on return type verifying failed). (Laruence) 3519 . Fixed bug #70555 (fun_get_arg() on unsetted vars return UNKNOW). (Laruence) 3520 . Fixed bug #70548 (Redundant information printed in case of uncaught engine 3521 exception). (Laruence) 3522 . Fixed bug #70547 (unsetting function variables corrupts backtrace). 3523 (Laruence) 3524 . Fixed bug #70528 (assert() with instanceof adds apostrophes around class 3525 name). (Laruence) 3526 . Fixed bug #70481 (Memory leak in auto_global_copy_ctor() in ZTS build). 3527 (Laruence) 3528 . Fixed bug #70431 (Memory leak in php_ini.c). (Senthil, Laruence) 3529 . Fixed bug #70478 (**= does no longer work). (Bob) 3530 . Fixed bug #70398 (SIGSEGV, Segmentation fault zend_ast_destroy_ex). 3531 (Dmitry, Bob, Laruence) 3532 . Fixed bug #70332 (Wrong behavior while returning reference on object). 3533 (Laruence, Dmitry) 3534 . Fixed bug #70300 (Syntactical inconsistency with new group use syntax). 3535 (marcio dot web2 at gmail dot com) 3536 . Fixed bug #70321 (Magic getter breaks reference to array property). 3537 (Laruence) 3538 . Fixed bug #70187 (Notice: unserialize(): Unexpected end of serialized 3539 data). (Dmitry) 3540 . Fixed bug #70145 (From field incorrectly parsed from headers). (Anatol) 3541 . Fixed bug #70370 (Bundled libtool.m4 doesn't handle FreeBSD 10 when 3542 building extensions). (Adam) 3543 . Fixed bug causing exception traces with anon classes to be truncated. (Bob) 3544 . Fixed bug #70397 (Segmentation fault when using Closure::call and yield). 3545 (Bob) 3546 . Fixed bug #70299 (Memleak while assigning object offsetGet result). 3547 (Laruence) 3548 . Fixed bug #70288 (Apache crash related to ZEND_SEND_REF). (Laruence) 3549 . Fixed bug #70262 (Accessing array crashes PHP 7.0beta3). 3550 (Laruence, Dmitry) 3551 . Fixed bug #70258 (Segfault if do_resize fails to allocated memory). 3552 (Laruence) 3553 . Fixed bug #70253 (segfault at _efree () in zend_alloc.c:1389). (Laruence) 3554 . Fixed bug #70240 (Segfault when doing unset($var());). (Laruence) 3555 . Fixed bug #70223 (Incrementing value returned by magic getter). (Laruence) 3556 . Fixed bug #70215 (Segfault when __invoke is static). (Bob) 3557 . Fixed bug #70207 (Finally is broken with opcache). (Laruence, Dmitry) 3558 . Fixed bug #70173 (ZVAL_COPY_VALUE_EX broken for 32bit Solaris Sparc). 3559 (Laruence, cmb) 3560 . Fixed bug #69487 (SAPI may truncate POST data). (cmb) 3561 . Fixed bug #70198 (Checking liveness does not work as expected). 3562 (Shafreeck Sea, Anatol Belski) 3563 . Fixed bug #70241,#70293 (Skipped assertions affect Generator returns). (Bob) 3564 . Fixed bug #70239 (Creating a huge array doesn't result in exhausted, 3565 but segfault). (Laruence, Anatol) 3566 . Fixed "finally" issues. (Nikita, Dmitry) 3567 . Fixed bug #70098 (Real memory usage doesn't decrease). (Dmitry) 3568 . Fixed bug #70159 (__CLASS__ is lost in closures). (Julien) 3569 . Fixed bug #70156 (Segfault in zend_find_alias_name). (Laruence) 3570 . Fixed bug #70124 (null ptr deref / seg fault in ZEND_HANDLE_EXCEPTION). 3571 (Laruence) 3572 . Fixed bug #70117 (Unexpected return type error). (Laruence) 3573 . Fixed bug #70106 (Inheritance by anonymous class). (Bob) 3574 . Fixed bug #69674 (SIGSEGV array.c:953). (cmb) 3575 . Fixed bug #70164 (__COMPILER_HALT_OFFSET__ under namespace is not defined). 3576 (Bob) 3577 . Fixed bug #70108 (sometimes empty $_SERVER['QUERY_STRING']). (Anatol) 3578 . Fixed bug #70179 ($this refcount issue). (Bob) 3579 . Fixed bug #69896 ('asm' operand has impossible constraints). (Anatol) 3580 . Fixed bug #70183 (null pointer deref (segfault) in zend_eval_const_expr). 3581 (Hugh Davenport) 3582 . Fixed bug #70182 (Segfault in ZEND_ASSIGN_DIV_SPEC_CV_UNUSED_HANDLER). 3583 (Hugh Davenport) 3584 . Fixed bug #69793 (Remotely triggerable stack exhaustion via recursive 3585 method calls). (Stas) 3586 . Fixed bug #69892 (Different arrays compare indentical due to integer key 3587 truncation). (Nikita) 3588 . Fixed bug #70121 (unserialize() could lead to unexpected methods execution 3589 / NULL pointer deref). (Stas) 3590 . Fixed bug #70089 (segfault at ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER ()). 3591 (Laruence) 3592 . Fixed bug #70057 (Build failure on 32-bit Mac OS X 10.6.8: recursive 3593 inlining). (Laruence) 3594 . Fixed bug #70012 (Exception lost with nested finally block). (Laruence) 3595 . Fixed bug #69996 (Changing the property of a cloned object affects the 3596 original). (Dmitry, Laruence) 3597 . Fixed bug #70083 (Use after free with assign by ref to overloaded objects). 3598 (Bob) 3599 . Fixed bug #70006 (cli - function with default arg = STDOUT crash output). 3600 (Laruence) 3601 . Fixed bug #69521 (Segfault in gc_collect_cycles()). 3602 (arjen at react dot com, Laruence) 3603 . Improved zend_string API. (Francois Laupretre) 3604 . Fixed bug #69955 (Segfault when trying to combine [] and assign-op on 3605 ArrayAccess object). (Laruence) 3606 . Fixed bug #69957 (Different ways of handling div/mod/intdiv). (Bob) 3607 . Fixed bug #69900 (Too long timeout on pipes). (Anatol) 3608 . Fixed bug #69872 (uninitialised value in strtr with array). (Laruence) 3609 . Fixed bug #69868 (Invalid read of size 1 in zend_compile_short_circuiting). 3610 (Laruence) 3611 . Fixed bug #69849 (Broken output of apache_request_headers). (Kalle) 3612 . Fixed bug #69840 (iconv_substr() doesn't work with UTF-16BE). (Kalle) 3613 . Fixed bug #69823 (PHP 7.0.0alpha1 segmentation fault when exactly 33 3614 extensions are loaded). (Laruence) 3615 . Fixed bug #69805 (null ptr deref and seg fault in zend_resolve_class_name). 3616 (Laruence) 3617 . Fixed bug #69802 (Reflection on Closure::__invoke borks type hint class 3618 name). (Dmitry) 3619 . Fixed bug #69761 (Serialization of anonymous classes should be prevented). 3620 (Laruence) 3621 . Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation 3622 fault). (Christoph M. Becker) 3623 . Fixed bug #69781 (phpinfo() reports Professional Editions of Windows 3624 7/8/8.1/10 as "Business"). (Christian Wenz) 3625 . Fixed bug #69835 (phpinfo() does not report many Windows SKUs). 3626 (Christian Wenz) 3627 . Fixed bug #69889 (Null coalesce operator doesn't work for string offsets). 3628 (Nikita) 3629 . Fixed bug #69891 (Unexpected array comparison result). (Nikita) 3630 . Fixed bug #69892 (Different arrays compare indentical due to integer key 3631 truncation). (Nikita) 3632 . Fixed bug #69893 (Strict comparison between integer and empty string keys 3633 crashes). (Nikita) 3634 . Fixed bug #69767 (Default parameter value with wrong type segfaults). 3635 (cmb, Laruence) 3636 . Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency 3637 ? with ===). (Dmitry, Laruence) 3638 . Fixed bug #69758 (Item added to array not being removed by array_pop/shift 3639 ). (Laruence) 3640 . Fixed bug #68475 (Add support for $callable() sytnax with 'Class::method'). 3641 (Julien, Aaron Piotrowski) 3642 . Fixed bug #69485 (Double free on zend_list_dtor). (Laruence) 3643 . Fixed bug #69427 (Segfault on magic method __call of private method in 3644 superclass). (Laruence) 3645 . Improved __call() and __callStatic() magic method handling. Now they are 3646 called in a stackless way using ZEND_CALL_TRAMPOLINE opcode, without 3647 additional stack frame. (Laruence, Dmitry) 3648 . Optimized strings concatenation. (Dmitry, Laruence) 3649 . Fixed weird operators behavior. Division by zero now emits warning and 3650 returns +/-INF, modulo by zero and intdid() throws an exception, shifts 3651 by negative offset throw exceptions. Compile-time evaluation of division 3652 by zero is disabled. (Dmitry, Andrea, Nikita) 3653 . Fixed bug #69371 (Hash table collision leads to inaccessible array keys). 3654 (Laruence) 3655 . Fixed bug #68933 (Invalid read of size 8 in zend_std_read_property). 3656 (Laruence, arjen at react dot com) 3657 . Fixed bug #68252 (segfault in Zend/zend_hash.c in function 3658 _zend_hash_del_el). (Laruence) 3659 . Fixed bug #65598 (Closure executed via static autoload incorrectly marked as 3660 static). (Nikita) 3661 . Fixed bug #66811 (Cannot access static::class in lambda, writen outside of a 3662 class). (Nikita) 3663 . Fixed bug #69568 (call a private function in closure failed). (Nikita) 3664 . Added PHP_INT_MIN constant. (Andrea) 3665 . Added Closure::call() method. (Andrea) 3666 . Fixed bug #67959 (Segfault when calling phpversion('spl')). (Florian) 3667 . Implemented the RFC `Catchable "Call to a member function bar() on a 3668 non-object"`. (Timm) 3669 . Added options parameter for unserialize allowing to specify acceptable 3670 classes (https://wiki.php.net/rfc/secure_unserialize). (Stas) 3671 . Fixed bug #63734 (Garbage collector can free zvals that are still 3672 referenced). (Dmitry) 3673 . Removed ZEND_ACC_FINAL_CLASS, promoting ZEND_ACC_FINAL as final class 3674 modifier. (Guilherme Blanco) 3675 . is_long() & is_integer() is now an alias of is_int(). (Kalle) 3676 . Implemented FR #55467 (phpinfo: PHP Variables with $ and single quotes). (Kalle) 3677 . Added ?? operator. (Andrea) 3678 . Added <=> operator. (Andrea) 3679 . Added \u{xxxxx} Unicode Codepoint Escape Syntax. (Andrea) 3680 . Fixed oversight where define() did not support arrays yet const syntax did. 3681 (Andrea, Dmitry) 3682 . Use "integer" and "float" instead of "long" and "double" in ZPP, type hint 3683 and conversion error messages. (Andrea) 3684 . Implemented FR #55428 (E_RECOVERABLE_ERROR when output buffering in output 3685 buffering handler). (Kalle) 3686 . Removed scoped calls of non-static methods from an incompatible $this 3687 context. (Nikita) 3688 . Removed support for #-style comments in ini files. (Nikita) 3689 . Removed support for assigning the result of new by reference. (Nikita) 3690 . Invalid octal literals in source code now produce compile errors, fixes 3691 PHPSadness #31. (Andrea) 3692 . Removed dl() function on fpm-fcgi. (Nikita) 3693 . Removed support for hexadecimal numeric strings. (Nikita) 3694 . Removed obsolete extensions and SAPIs. See the full list in UPGRADING. (Anatol) 3695 . Added NULL byte protection to exec, system and passthru. (Yasuo) 3696 . Added error_clear_last() function. (Reeze Xia) 3697 . Fixed bug #68797 (Number 2.2250738585072012e-308 converted incorrectly). 3698 (Anatol) 3699 . Improved zend_qsort(using hybrid sorting algo) for better performance, 3700 and also renamed zend_qsort to zend_sort. (Laruence) 3701 . Added stable sorting algo zend_insert_sort. (Laruence) 3702 . Improved zend_memnchr(using sunday algo) for better performance. (Laruence) 3703 . Implemented the RFC `Scalar Type Decalarations v0.5`. (Anthony) 3704 . Implemented the RFC `Group Use Declarations`. (Marcio) 3705 . Implemented the RFC `Continue Output Buffering`. (Mike) 3706 . Implemented the RFC `Constructor behaviour of internal classes`. (Dan, Dmitry) 3707 . Implemented the RFC `Fix "foreach" behavior`. (Dmitry) 3708 . Implemented the RFC `Generator Delegation`. (Bob) 3709 . Implemented the RFC `Anonymous Class Support`. (Joe, Nikita, Dmitry) 3710 . Implemented the RFC `Context Sensitive Lexer`. (Marcio Almada) 3711 . Fixed bug #69511 (Off-by-one buffer overflow in php_sys_readlink). 3712 (Jan Starke, Anatol) 3713 3714- CLI server: 3715 . Fixed bug #68291 (404 on urls with '+'). (cmb) 3716 . Fixed bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE). 3717 (wusuopu, cmb) 3718 . Fixed bug #70264 (CLI server directory traversal). (cmb) 3719 . Fixed bug #69655 (php -S changes MKCALENDAR request method to MKCOL). (cmb) 3720 . Fixed bug #64878 (304 responses return Content-Type header). (cmb) 3721 . Refactor MIME type handling to use a hash table instead of linear search. 3722 (Adam) 3723 . Update the MIME type list from the one shipped by Apache HTTPD. (Adam) 3724 . Added support for SEARCH WebDav method. (Mats Lindh) 3725 3726- COM: 3727 . Fixed bug #69939 (Casting object to bool returns false). (Kalle) 3728 3729- Curl: 3730 . Fixed bug #70330 (Segmentation Fault with multiple "curl_copy_handle"). 3731 (Laruence) 3732 . Fixed bug #70163 (curl_setopt_array() type confusion). (Laruence) 3733 . Fixed bug #70065 (curl_getinfo() returns corrupted values). (Anatol) 3734 . Fixed bug #69831 (Segmentation fault in curl_getinfo). (im dot denisenko at 3735 yahoo dot com) 3736 . Fixed bug #68937 (Segfault in curl_multi_exec). (Laruence) 3737 . Removed support for unsafe file uploads. (Nikita) 3738 3739- Date: 3740 . Fixed bug #70245 (strtotime does not emit warning when 2nd parameter is 3741 object or string). (cmb) 3742 . Fixed bug #70266 (DateInterval::__construct.interval_spec is not supposed to 3743 be optional). (cmb) 3744 . Fixed bug #70277 (new DateTimeZone($foo) is ignoring text after null byte). 3745 (cmb) 3746 . Fixed day_of_week function as it could sometimes return negative values 3747 internally. (Derick) 3748 . Removed $is_dst parameter from mktime() and gmmktime(). (Nikita) 3749 . Removed date.timezone warning 3750 (https://wiki.php.net/rfc/date.timezone_warning_removal). (Bob) 3751 . Added "v" DateTime format modifier to get the 3-digit version of fraction 3752 of seconds. (Mariano Iglesias) 3753 . Implemented FR #69089 (Added DateTime::RFC3339_EXTENDED to output in 3754 RFC3339 Extended format which includes fraction of seconds). (Mariano 3755 Iglesias) 3756 3757- DBA: 3758 . Fixed bug #62490 (dba_delete returns true on missing item (inifile)). (Mike) 3759 . Fixed bug #68711 (useless comparisons). (bugreports at internot dot info) 3760 3761- DOM: 3762 . Fixed bug #70558 ("Couldn't fetch" error in 3763 DOMDocument::registerNodeClass()). (Laruence) 3764 . Fixed bug #70001 (Assigning to DOMNode::textContent does additional entity 3765 encoding). (cmb) 3766 . Fixed bug #69846 (Segmenation fault (access violation) when iterating over 3767 DOMNodeList). (Anatol Belski) 3768 . Made DOMNode::textContent writeable. (Tjerk) 3769 3770- EXIF: 3771 . Fixed bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte 3772 value of 32 bytes). (Stas) 3773 3774- Fileinfo: 3775 . Fixed bug #66242 (libmagic: don't assume char is signed). (ArdB) 3776 3777- Filter: 3778 . New FILTER_VALIDATE_DOMAIN and better RFC conformance for FILTER_VALIDATE_URL. (Kevin Dunglas) 3779 . Fixed bug #67167 (Wrong return value from FILTER_VALIDATE_BOOLEAN, 3780 FILTER_NULL_ON_FAILURE). (levim) 3781 3782- FPM: 3783 . Fixed bug #70538 ("php-fpm -i" crashes). (rainer dot jung at 3784 kippdata dot de) 3785 . Fixed bug #70279 (HTTP Authorization Header is sometimes passed to newer 3786 reqeusts). (Laruence) 3787 . Fixed bug #68945 (Unknown admin values segfault pools). (Laruence) 3788 . Fixed bug #65933 (Cannot specify config lines longer than 1024 bytes). (Chris Wright) 3789 . Implemented FR #67106 (Split main fpm config). (Elan Ruusamäe, Remi) 3790 3791- FTP: 3792 . Fixed bug #69082 (FTPS support on Windows). (Anatol) 3793 3794- GD: 3795 . Fixed bug #53156 (imagerectangle problem with point ordering). (cmb) 3796 . Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874) 3797 (cmb) 3798 . Fixed bug #70102 (imagecreatefromwebm() shifts colors). (cmb) 3799 . Fixed bug #66590 (imagewebp() doesn't pad to even length). (cmb) 3800 . Fixed bug #66882 (imagerotate by -90 degrees truncates image by 1px). (cmb) 3801 . Fixed bug #70064 (imagescale(..., IMG_BICUBIC) leaks memory). (cmb) 3802 . Fixed bug #69024 (imagescale segfault with palette based image). (cmb) 3803 . Fixed bug #53154 (Zero-height rectangle has whiskers). (cmb) 3804 . Fixed bug #67447 (imagecrop() add a black line when cropping). (cmb) 3805 . Fixed bug #68714 (copy 'n paste error). (cmb) 3806 . Fixed bug #66339 (PHP segfaults in imagexbm). (cmb) 3807 . Fixed bug #70047 (gd_info() doesn't report WebP support). (cmb) 3808 . Replace libvpx with libwebp for bundled libgd. (cmb, Anatol) 3809 . Fixed bug #61221 (imagegammacorrect function loses alpha channel). (cmb) 3810 . Made fontFetch's path parser thread-safe. (Sara) 3811 . Removed T1Lib support. (Kalle) 3812 3813- GMP: 3814 . Fixed bug #70284 (Use after free vulnerability in unserialize() with GMP). 3815 (stas) 3816 3817- hash: 3818 . Fixed bug #70312 (HAVAL gives wrong hashes in specific cases). (letsgolee 3819 at naver dot com) 3820 3821- IMAP: 3822 . Fixed bug #70158 (Building with static imap fails). (cmb) 3823 . Fixed bug #69998 (curl multi leaking memory). (Pierrick) 3824 3825- Intl: 3826 . Fixed bug #70453 (IntlChar::foldCase() incorrect arguments and missing 3827 constants). (cmb) 3828 . Fixed bug #70454 (IntlChar::forDigit second parameter should be optional). 3829 (cmb, colinodell) 3830 . Removed deprecated aliases datefmt_set_timezone_id() and 3831 IntlDateFormatter::setTimeZoneID(). (Nikita) 3832 3833- JSON: 3834 . Fixed bug #62010 (json_decode produces invalid byte-sequences). 3835 (Jakub Zelenka) 3836 . Fixed bug #68546 (json_decode() Fatal error: Cannot access property 3837 started with '\0'). (Jakub Zelenka) 3838 . Replace non-free JSON parser with a parser from Jsond extension, fixes #63520 3839 (JSON extension includes a problematic license statement). (Jakub Zelenka) 3840 . Fixed bug #68938 (json_decode() decodes empty string without error). 3841 (jeremy at bat-country dot us) 3842 3843- LDAP: 3844 . Fixed bug #47222 (Implement LDAP_OPT_DIAGNOSTIC_MESSAGE). (Andreas Heigl) 3845 3846- LiteSpeed: 3847 . Updated LiteSpeed SAPI code from V5.5 to V6.6. (George Wang) 3848 3849- libxml: 3850 . Fixed handling of big lines in error messages with libxml >= 2.9.0. 3851 (Christoph M. Becker) 3852 3853- Mcrypt: 3854 . Fixed bug #70625 (mcrypt_encrypt() won't return data when no IV was 3855 specified under RC4). (Nikita) 3856 . Fixed bug #69833 (mcrypt fd caching not working). (Anatol) 3857 . Fixed possible read after end of buffer and use after free. (Dmitry) 3858 . Removed mcrypt_generic_end() alias. (Nikita) 3859 . Removed mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ofb(). (Nikita) 3860 3861- Mysqli: 3862 . Fixed bug #32490 (constructor of mysqli has wrong name). (cmb) 3863 3864- Mysqlnd: 3865 . Fixed bug #70949 (SQL Result Sets With NULL Can Cause Fatal Memory Errors). 3866 (Laruence) 3867 . Fixed bug #70384 (mysqli_real_query():Unknown type 245 sent by the server). 3868 (Andrey) 3869 . Fixed bug #70456 (mysqlnd doesn't activate TCP keep-alive when connecting to 3870 a server). (Sergei Turchanov) 3871 . Fixed bug #70572 segfault in mysqlnd_connect. (Andrey, Remi) 3872 . Fixed Bug #69796 (mysqli_stmt::fetch doesn't assign null values to 3873 bound variables). (Laruence) 3874 3875- OCI8: 3876 . Fixed memory leak with LOBs. (Senthil) 3877 . Fixed bug #68298 (OCI int overflow) (Senthil). 3878 . Corrected oci8 hash destructors to prevent segfaults, and a few other fixes. 3879 (Cameron Porter) 3880 3881- ODBC: 3882 . Fixed bug #69975 (PHP segfaults when accessing nvarchar(max) defined 3883 columns). (CVE-2015-8879) (cmb) 3884 3885- Opcache: 3886 . Fixed bug #70656 (require() statement broken after opcache_reset() or a 3887 few hours of use). (Laruence) 3888 . Fixed bug #70843 (Segmentation fault on MacOSX with 3889 opcache.file_cache_only=1). (Laruence) 3890 . Fixed bug #70724 (Undefined Symbols from opcache.so on Mac OS X 10.10). 3891 (Laruence) 3892 . Fixed compatibility with Windows 10 (see also bug #70652). (Anatol) 3893 . Attmpt to fix "Unable to reattach to base address" problem. (Matt Ficken) 3894 . Fixed bug #70423 (Warning Internal error: wrong size calculation). (Anatol) 3895 . Fixed bug #70237 (Empty while and do-while segmentation fault with opcode 3896 on CLI enabled). (Dmitry, Laruence) 3897 . Fixed bug #70111 (Segfault when a function uses both an explicit return 3898 type and an explicit cast). (Laruence) 3899 . Fixed bug #70058 (Build fails when building for i386). (Laruence) 3900 . Fixed bug #70022 (Crash with opcache using opcache.file_cache_only=1). 3901 (Anatol) 3902 . Removed opcache.load_comments configuration directive. Now doc comments 3903 loading costs nothing and always enabled. (Dmitry) 3904 . Fixed bug #69838 (Wrong size calculation for function table). (Anatol) 3905 . Fixed bug #69688 (segfault with eval and opcache fast shutdown). 3906 (Laruence) 3907 . Added experimental (disabled by default) file based opcode cache. 3908 (Dmitry, Laruence, Anatol) 3909 . Fixed bug with try blocks being removed when extended_info opcode 3910 generation is turned on. (Laruence) 3911 . Fixed bug #68644 (strlen incorrect : mbstring + func_overload=2 +UTF-8 3912 + Opcache). (Laruence) 3913 3914- OpenSSL: 3915 . Require at least OpenSSL version 0.9.8. (Jakub Zelenka) 3916 . Fixed bug #68312 (Lookup for openssl.cnf causes a message box). (Anatol) 3917 . Fixed bug #55259 (openssl extension does not get the DH parameters from 3918 DH key resource). (Jakub Zelenka) 3919 . Fixed bug #70395 (Missing ARG_INFO for openssl_seal()). (cmb) 3920 . Fixed bug #60632 (openssl_seal fails with AES). (Jakub Zelenka) 3921 . Implemented FR #70438 (Add IV parameter for openssl_seal and openssl_open) 3922 (Jakub Zelenka) 3923 . Fixed bug #70014 (openssl_random_pseudo_bytes() is not cryptographically 3924 secure). (CVE-2015-8867) (Stas) 3925 . Fixed bug #69882 (OpenSSL error "key values mismatch" after 3926 openssl_pkcs12_read with extra cert). (Tomasz Sawicki) 3927 . Added "alpn_protocols" SSL context option allowing encrypted client/server 3928 streams to negotiate alternative protocols using the ALPN TLS extension when 3929 built against OpenSSL 1.0.2 or newer. Negotiated protocol information is 3930 accessible through stream_get_meta_data() output. 3931 . Removed "CN_match" and "SNI_server_name" SSL context options. Use automatic 3932 detection or the "peer_name" option instead. (Nikita) 3933 3934- Pcntl: 3935 . Fixed bug #70386 (Can't compile on NetBSD because of missing WCONTINUED 3936 and WIFCONTINUED). (Matteo) 3937 . Fixed bug #60509 (pcntl_signal doesn't decrease ref-count of old handler 3938 when setting SIG_DFL). (Julien) 3939 . Implemented FR #68505 (Added wifcontinued and wcontinued). (xilon-jul) 3940 . Added rusage support to pcntl_wait() and pcntl_waitpid(). (Anton Stepanenko, 3941 Tony) 3942 3943- PCRE: 3944 . Fixed bug #70232 (Incorrect bump-along behavior with \K and empty string 3945 match). (cmb) 3946 . Fixed bug #70345 (Multiple vulnerabilities related to PCRE functions). 3947 (Anatol Belski) 3948 . Fixed bug #70232 (Incorrect bump-along behavior with \K and empty string 3949 match). (cmb) 3950 . Fixed bug #53823 (preg_replace: * qualifier on unicode replace garbles the 3951 string). (cmb) 3952 . Fixed bug #69864 (Segfault in preg_replace_callback). (cmb, ab) 3953 3954- PDO: 3955 . Fixed bug #70861 (Segmentation fault in pdo_parse_params() during Drupal 8 3956 test suite). (Anatol) 3957 . Fixed bug #70389 (PDO constructor changes unrelated variables). (Laruence) 3958 . Fixed bug #70272 (Segfault in pdo_mysql). (Laruence) 3959 . Fixed bug #70221 (persistent sqlite connection + custom function 3960 segfaults). (Laruence) 3961 . Removed support for the /e (PREG_REPLACE_EVAL) modifier. (Nikita) 3962 . Fixed bug #59450 (./configure fails with "Cannot find php_pdo_driver.h"). 3963 (maxime dot besson at smile dot fr) 3964 3965- PDO_DBlib: 3966 . Fixed bug #69757 (Segmentation fault on nextRowset). 3967 (miracle at rpz dot name) 3968 3969- PDO_mysql: 3970 . Fixed bug #68424 (Add new PDO mysql connection attr to control multi 3971 statements option). (peter dot wolanin at acquia dot com) 3972 3973- PDO_OCI: 3974 . Fixed bug #70308 (PDO::ATTR_PREFETCH is ignored). (Chris Jones) 3975 3976- PDO_pgsql: 3977 . Fixed bug #69752 (PDOStatement::execute() leaks memory with DML 3978 Statements when closeCuror() is u). (Philip Hofstetter) 3979 . Removed PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute in favor of 3980 ATTR_EMULATE_PREPARES). (Nikita) 3981 3982- Phar: 3983 . Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()). (Stas) 3984 . FIxed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip 3985 entry filename is "/"). (Stas) 3986 . Improved fix for bug #69441. (Anatol Belski) 3987 . Fixed bug #70019 (Files extracted from archive may be placed outside of 3988 destination directory). (Anatol Belski) 3989 3990- Phpdbg: 3991 . Fixed bug #70614 (incorrect exit code in -rr mode with Exceptions). (Bob) 3992 . Fixed bug #70532 (phpdbg must respect set_exception_handler). (Bob) 3993 . Fixed bug #70531 (Run and quit mode (-qrr) should not fallback to 3994 interactive mode). (Bob) 3995 . Fixed bug #70533 (Help overview (-h) does not rpint anything under Windows). 3996 (Anatol) 3997 . Fixed bug #70449 (PHP won't compile on 10.4 and 10.5 because of missing 3998 constants). (Bob) 3999 . Fixed bug #70214 (FASYNC not defined, needs sys/file.h include). (Bob) 4000 . Fixed bug #70138 (Segfault when displaying memory leaks). (Bob) 4001 4002- Reflection: 4003 . Fixed bug #70650 (Wrong docblock assignment). (Marcio) 4004 . Fixed bug #70674 (ReflectionFunction::getClosure() leaks memory when used 4005 for internal functions). (Dmitry, Bob) 4006 . Fixed bug causing bogus traces for ReflectionGenerator::getTrace(). (Bob) 4007 . Fixed inheritance chain of Reflector interface. (Tjerk) 4008 . Added ReflectionGenerator class. (Bob) 4009 . Added reflection support for return types and type declarations. (Sara, 4010 Matteo) 4011 4012- Session: 4013 . Fixed bug #70876 (Segmentation fault when regenerating session id with 4014 strict mode). (Laruence) 4015 . Fixed bug #70529 (Session read causes "String is not zero-terminated" error). 4016 (Yasuo) 4017 . Fixed bug #70013 (Reference to $_SESSION is lost after a call to 4018 session_regenerate_id()). (Yasuo) 4019 . Fixed bug #69952 (Data integrity issues accessing superglobals by 4020 reference). (Bob) 4021 . Fixed bug #67694 (Regression in session_regenerate_id()). (Tjerk) 4022 . Fixed bug #68941 (mod_files.sh is a bash-script). (bugzilla at ii.nl, Yasuo) 4023 4024- SOAP: 4025 . Fixed bug #70940 (Segfault in soap / type_to_string). (Remi) 4026 . Fixed bug #70900 (SoapClient systematic out of memory error). (Dmitry) 4027 . Fixed bug #70875 (Segmentation fault if wsdl has no targetNamespace 4028 attribute). (Matteo) 4029 . Fixed bug #70715 (Segmentation fault inside soap client). (Laruence) 4030 . Fixed bug #70709 (SOAP Client generates Segfault). (Laruence) 4031 . Fixed bug #70388 (SOAP serialize_function_call() type confusion / RCE). 4032 (Stas) 4033 . Fixed bug #70081 (SoapClient info leak / null pointer dereference via 4034 multiple type confusions). (Stas) 4035 . Fixed bug #70079 (Segmentation fault after more than 100 SoapClient 4036 calls). (Laruence) 4037 . Fixed bug #70032 (make_http_soap_request calls 4038 zend_hash_get_current_key_ex(,,,NULL). (Laruence) 4039 . Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes). (Laruence) 4040 4041- SPL: 4042 . Fixed bug #70959 (ArrayObject unserialize does not restore protected 4043 fields). (Laruence) 4044 . Fixed bug #70853 (SplFixedArray throws exception when using ref variable 4045 as index). (Laruence) 4046 . Fixed bug #70868 (PCRE JIT and pattern reuse segfault). (Laruence) 4047 . Fixed bug #70730 (Incorrect ArrayObject serialization if unset is called 4048 in serialize()). (Laruence) 4049 . Fixed bug #70573 (Cloning SplPriorityQueue leads to memory leaks). (Dmitry) 4050 . Fixed bug #70303 (Incorrect constructor reflection for ArrayObject). (cmb) 4051 . Fixed bug #70068 (Dangling pointer in the unserialization of ArrayObject 4052 items). (sean.heelan) 4053 . Fixed bug #70166 (Use After Free Vulnerability in unserialize() with 4054 SPLArrayObject). (taoguangchen at icloud dot com) 4055 . Fixed bug #70168 (Use After Free Vulnerability in unserialize() with 4056 SplObjectStorage). (taoguangchen at icloud dot com) 4057 . Fixed bug #70169 (Use After Free Vulnerability in unserialize() with 4058 SplDoublyLinkedList). (taoguangchen at icloud dot com) 4059 . Fixed bug #70053 (MutlitpleIterator array-keys incompatible change in 4060 PHP 7). (Tjerk) 4061 . Fixed bug #69970 (Use-after-free vulnerability in 4062 spl_recursive_it_move_forward_ex()). (Laruence) 4063 . Fixed bug #69845 (ArrayObject with ARRAY_AS_PROPS broken). (Dmitry) 4064 . Changed ArrayIterator implementation using zend_hash_iterator_... API. 4065 Allowed modification of iterated ArrayObject using the same behavior 4066 as proposed in `Fix "foreach" behavior`. Removed "Array was modified 4067 outside object and internal position is no longer valid" hack. (Dmitry) 4068 . Implemented FR #67886 (SplPriorityQueue/SplHeap doesn't expose extractFlags 4069 nor curruption state). (Julien) 4070 . Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME 4071 breaks the RecursiveIterator). (Paul Garvin) 4072 4073- SQLite3: 4074 . Fixed bug #70571 (Memory leak in sqlite3_do_callback). (Adam) 4075 . Fixed bug #69972 (Use-after-free vulnerability in 4076 sqlite3SafetyCheckSickOrOk()). (Laruence) 4077 . Fixed bug #69897 (segfault when manually constructing SQLite3Result). 4078 (Kalle) 4079 . Fixed bug #68260 (SQLite3Result::fetchArray declares wrong 4080 required_num_args). (Julien) 4081 4082- Standard: 4083 . Fixed count on symbol tables. (Laruence) 4084 . Fixed bug #70963 (Unserialize shows UNKNOWN in result). (Laruence) 4085 . Fixed bug #70910 (extract() breaks variable references). (Laruence) 4086 . Fixed bug #70808 (array_merge_recursive corrupts memory of unset items). 4087 (Laruence) 4088 . Fixed bug #70667 (strtr() causes invalid writes and a crashes). (Dmitry) 4089 . Fixed bug #70668 (array_keys() doesn't respect references when $strict is 4090 true). (Bob, Dmitry) 4091 . Implemented the RFC `Random Functions Throwing Exceptions in PHP 7`. 4092 (Sammy Kaye Powers, Anthony) 4093 . Fixed bug #70487 (pack('x') produces an error). (Nikita) 4094 . Fixed bug #70342 (changing configuration with ignore_user_abort(true) isn't 4095 working). (Laruence) 4096 . Fixed bug #70295 (Segmentation fault with setrawcookie). (Bob) 4097 . Fixed bug #67131 (setcookie() conditional for empty values not met). (cmb) 4098 . Fixed bug #70365 (Use-after-free vulnerability in unserialize() with 4099 SplObjectStorage). (taoguangchen at icloud dot com) 4100 . Fixed bug #70366 (Use-after-free vulnerability in unserialize() with 4101 SplDoublyLinkedList). (taoguangchen at icloud dot com) 4102 . Fixed bug #70250 (extract() turns array elements to references). 4103 (Laruence) 4104 . Fixed bug #70211 (php 7 ZEND_HASH_IF_FULL_DO_RESIZE use after free). 4105 (Laruence) 4106 . Fixed bug #70208 (Assert breaking access on objects). (Bob) 4107 . Fixed bug #70140 (str_ireplace/php_string_tolower - Arbitrary Code 4108 Execution). (CVE-2015-6527) (Laruence) 4109 . Implemented FR #70112 (Allow "dirname" to go up various times). (Remi) 4110 . Fixed bug #36365 (scandir duplicates file name at every 65535th file). (cmb) 4111 . Fixed bug #70096 (Repeated iptcembed() adds superfluous FF bytes). (cmb) 4112 . Fixed bug #70018 (exec does not strip all whitespace). (Laruence) 4113 . Fixed bug #69983 (get_browser fails with user agent of null). 4114 (Kalle, cmb, Laruence) 4115 . Fixed bug #69976 (Unable to parse "all" urls with colon char). (cmb) 4116 . Fixed bug #69768 (escapeshell*() doesn't cater to !). (cmb) 4117 . Fixed bug #62922 (Truncating entire string should result in string). 4118 (Nikita) 4119 . Fixed bug #69723 (Passing parameters by reference and array_column). 4120 (Laruence) 4121 . Fixed bug #69523 (Cookie name cannot be empty). (Christoph M. Becker) 4122 . Fixed bug #69325 (php_copy_file_ex does not pass the argument). 4123 (imbolk at gmail dot com) 4124 . Fixed bug #69299 (Regression in array_filter's $flag argument in PHP 7). 4125 (Laruence) 4126 . Removed call_user_method() and call_user_method_array() functions. (Kalle) 4127 . Fixed user session handlers (See rfc:session.user.return-value). (Sara) 4128 . Added intdiv() function. (Andrea) 4129 . Improved precision of log() function for base 2 and 10. (Marc Bennewitz) 4130 . Remove string category support in setlocale(). (Nikita) 4131 . Remove set_magic_quotes_runtime() and its alias magic_quotes_runtime(). 4132 (Nikita) 4133 . Fixed bug #65272 (flock() out parameter not set correctly in windows). 4134 (Daniel Lowrey) 4135 . Added preg_replace_callback_array function. (Wei Dai) 4136 . Deprecated salt option to password_hash. (Anthony) 4137 . Fixed bug #69686 (password_verify reports back error on PHP7 will null 4138 string). (Anthony) 4139 . Added Windows support for getrusage(). (Kalle) 4140 . Removed hardcoded limit on number of pipes in proc_open(). (Tony) 4141 4142- Streams: 4143 . Fixed bug #70361 (HTTP stream wrapper doesn't close keep-alive connections). 4144 (Niklas Keller) 4145 . Fixed bug #68532 (convert.base64-encode omits padding bytes). 4146 (blaesius at krumedia dot de) 4147 . Removed set_socket_blocking() in favor of its alias stream_set_blocking(). 4148 (Nikita) 4149 4150- Tokenizer: 4151 . Fixed bug #69430 (token_get_all has new irrecoverable errors). (Nikita) 4152 4153- XMLReader: 4154 . Fixed bug #70309 (XmlReader read generates extra output). (Anatol) 4155 4156- XMLRPC 4157 . Fixed bug #70526 (xmlrpc_set_type returns false on success). (Laruence) 4158 4159- XSL: 4160 . Fixed bug #70678 (PHP7 returns true when false is expected). (Felipe) 4161 . Fixed bug #70535 (XSLT: free(): invalid pointer). (Laruence) 4162 . Fixed bug #69782 (NULL pointer dereference). (Stas) 4163 . Fixed bug #64776 (The XSLT extension is not thread safe). (Mike) 4164 . Removed xsl.security_prefs ini option. (Nikita) 4165 4166- Zlib: 4167 . Added deflate_init(), deflate_add(), inflate_init(), inflate_add() 4168 functions allowing incremental/streaming compression/decompression. 4169 (Daniel Lowrey & Bob Weinand) 4170 4171- Zip: 4172 . Fixed bug #70322 (ZipArchive::close() doesn't indicate errors). 4173 (CVE-2014-9767) (cmb) 4174 . Fixed bug #70350 (ZipArchive::extractTo allows for directory traversal when 4175 creating directories). (neal at fb dot com) 4176 . Added ZipArchive::setCompressionName and ZipArchive::setCompressionIndex 4177 methods. (Remi, Cedric Delmas) 4178 . Update bundled libzip to 1.0.1. (Remi, Anatol) 4179 . Fixed bug #67161 (ZipArchive::getStream() returns NULL for certain file). 4180 (Christoph M. Becker) 4181