1PHP NEWS 2||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 3?? ??? ????, PHP 8.1.29 4 5 6 711 Apr 2024, PHP 8.1.28 8 9- Standard: 10 . Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command 11 parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka) 12 . Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to 13 partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos) 14 . Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, 15 opening ATO risk). (CVE-2024-3096) (Jakub Zelenka) 16 1721 Dec 2023, PHP 8.1.27 18 19- Core: 20 . Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious 21 error handler). (ilutov) 22 . Fixed oss-fuzz #64209 (In-place modification of filename in 23 php_message_handler_for_zend). (ilutov) 24 . Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within 25 ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC). (Florian Engelhardt) 26 27- DOM: 28 . Fixed bug GH-12616 (DOM: Removing XMLNS namespace node results in invalid 29 default: prefix). (nielsdos) 30 31- FPM: 32 . Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval). 33 (Patrick Prasse) 34 35- Intl: 36 . Fixed bug GH-12635 (Test bug69398.phpt fails with ICU 74.1). (nielsdos) 37 38- LibXML: 39 . Fixed bug GH-12702 (libxml2 2.12.0 issue building from src). (nono303) 40 41- MySQLnd: 42 . Avoid using uninitialised struct. (mikhainin) 43 44- OpenSSL: 45 . Fixed bug #50713 (openssl_pkcs7_verify() may ignore untrusted CAs). 46 (Jakub Zelenka) 47 48- PCRE: 49 . Fixed bug GH-12628 (The gh11374 test fails on Alpinelinux). (nielsdos) 50 51- PGSQL: 52 . Fixed bug GH-12763 wrong argument type for pg_untrace. (degtyarov) 53 54- PHPDBG: 55 . Fixed bug GH-12675 (MEMORY_LEAK in phpdbg_prompt.c). (nielsdos) 56 57- SQLite3: 58 . Fixed bug GH-12633 (sqlite3_defensive.phpt fails with sqlite 3.44.0). 59 (SakiTakamachi) 60 61- Standard: 62 . Fix memory leak in syslog device handling. (danog) 63 . Fixed bug GH-12621 (browscap segmentation fault when configured in the 64 vhost). (nielsdos) 65 . Fixed bug GH-12655 (proc_open() does not take into account references 66 in the descriptor array). (nielsdos) 67 68- Streams: 69 . Fixed bug #79945 (Stream wrappers in imagecreatefrompng causes segfault). 70 (Jakub Zelenka) 71 72- Zip: 73 . Fixed bug GH-12661 (Inconsistency in ZipArchive::addGlob remove_path Option 74 Behavior). (Remi) 75 7623 Nov 2023, PHP 8.1.26 77 78- Core: 79 . Fixed bug GH-12468 (Double-free of doc_comment when overriding static 80 property via trait). (ilutov) 81 . Fixed segfault caused by weak references to FFI objects. (sj-i) 82 . Fixed max_execution_time: don't delete an unitialized timer. (Kévin Dunglas) 83 84- DOM: 85 . Fix registerNodeClass with abstract class crashing. (nielsdos) 86 . Add missing NULL pointer error check. (icy17) 87 . Fix validation logic of php:function() callbacks. (nielsdos) 88 89- Fiber: 90 . Fixed bug GH-11121 (ReflectionFiber segfault). (danog, trowski, bwoebi) 91 92- FPM: 93 . Fixed bug GH-9921 (Loading ext in FPM config does not register module 94 handlers). (Jakub Zelenka) 95 . Fixed bug GH-12232 (FPM: segfault dynamically loading extension without 96 opcache). (Jakub Zelenka) 97 98- Intl: 99 . Removed the BC break on IntlDateFormatter::construct which threw an 100 exception with an invalid locale. (David Carlier) 101 102- Opcache: 103 . Added warning when JIT cannot be enabled. (danog) 104 . Fixed bug GH-8143 (Crashes in zend_accel_inheritance_cache_find since 105 upgrading to 8.1.3 due to corrupt on-disk file cache). (turchanov) 106 107- OpenSSL: 108 . Fixed bug GH-12489 (Missing sigbio creation checking in openssl_cms_verify). 109 (Jakub Zelenka) 110 111- PCRE: 112 . Fixed bug GH-11374 (Backport upstream fix, Different preg_match result 113 with -d pcre.jit=0). (mvorisek) 114 115- SOAP: 116 . Fixed bug GH-12392 (Segmentation fault on SoapClient::__getTypes). 117 (nielsdos) 118 . Fixed bug #66150 (SOAP WSDL cache race condition causes Segmentation 119 Fault). (nielsdos) 120 . Fixed bug #67617 (SOAP leaves incomplete cache file on ENOSPC). (nielsdos) 121 . Fix incorrect uri check in SOAP caching. (nielsdos) 122 . Fix segfault and assertion failure with refcounted props and arrays. 123 (nielsdos) 124 . Fix potential crash with an edge case of persistent encoders. (nielsdos) 125 . Fixed bug #75306 (Memleak in SoapClient). (nielsdos) 126 127- Streams: 128 . Fixed bug #75708 (getimagesize with "&$imageinfo" fails on StreamWrappers). 129 (Jakub Zelenka) 130 131- XMLReader: 132 . Add missing NULL pointer error check. (icy17) 133 134- XMLWriter: 135 . Add missing NULL pointer error check. (icy17) 136 137- XSL: 138 . Add missing module dependency. (nielsdos) 139 . Fix validation logic of php:function() callbacks. (nielsdos) 140 14126 Oct 2023, PHP 8.1.25 142 143- Core: 144 . Fixed bug GH-12207 (memory leak when class using trait with doc block). 145 (rioderelfte) 146 . Fixed bug GH-12215 (Module entry being overwritten causes type errors in 147 ext/dom). (nielsdos) 148 . Fixed bug GH-12273 (__builtin_cpu_init check). (Freaky) 149 . Fixed bug #80092 (ZTS + preload = segfault on shutdown). (nielsdos) 150 151- CLI: 152 . Ensure a single Date header is present. (coppolafab) 153 154- CType: 155 . Fixed bug GH-11997 (ctype_alnum 5 times slower in PHP 8.1 or greater). 156 (nielsdos) 157 158- DOM: 159 . Restore old namespace reconciliation behaviour. (nielsdos) 160 . Fixed bug GH-8996 (DOMNode serialization on PHP ^8.1). (nielsdos) 161 162- Fileinfo: 163 . Fixed bug GH-11891 (fileinfo returns text/xml for some svg files). (usarise) 164 165- Filter: 166 . Fix explicit FILTER_REQUIRE_SCALAR with FILTER_CALLBACK (ilutov) 167 168- Hash: 169 . Fixed bug GH-12186 (segfault copying/cloning a finalized HashContext). 170 (MaxSem) 171 172- Intl: 173 . Fixed bug GH-12243 (segfault on IntlDateFormatter::construct). 174 (David Carlier) 175 . Fixed bug GH-12282 (IntlDateFormatter::construct should throw an exception 176 on an invalid locale). (David Carlier) 177 178- MySQLnd: 179 . Fixed bug GH-12297 (PHP Startup: Invalid library (maybe not a PHP library) 180 'mysqlnd.so' in Unknown on line). (nielsdos) 181 182- Opcache: 183 . Fixed opcache_invalidate() on deleted file. (mikhainin) 184 . Fixed bug GH-12380 (JIT+private array property access inside closure 185 accesses private property in child class). (nielsdos) 186 187- PCRE: 188 . Fixed bug GH-11956 (Backport upstream fix, PCRE regular expressions with 189 JIT enabled gives different result). (nielsdos) 190 191- SimpleXML: 192 . Fixed bug GH-12170 (Can't use xpath with comments in SimpleXML). (nielsdos) 193 . Fixed bug GH-12223 (Entity reference produces infinite loop in 194 var_dump/print_r). (nielsdos) 195 . Fixed bug GH-12167 (Unable to get processing instruction contents in 196 SimpleXML). (nielsdos) 197 . Fixed bug GH-12169 (Unable to get comment contents in SimpleXML). 198 (nielsdos) 199 200- Streams: 201 . Fixed bug GH-12190 (binding ipv4 address with both address and port at 0). 202 (David Carlier) 203 204- XML: 205 . Fix return type of stub of xml_parse_into_struct(). (nielsdos) 206 . Fix memory leak when calling xml_parse_into_struct() twice. (nielsdos) 207 208- XSL: 209 . Fix type error on XSLTProcessor::transformToDoc return value with 210 SimpleXML. (nielsdos) 211 212- Sockets: 213 . Fix socket_export_stream() with wrong protocol (twosee) 214 21528 Sep 2023, PHP 8.1.24 216 217- Core: 218 . Fixed bug GH-11937 (Constant ASTs containing objects). (ilutov) 219 . Fixed bug GH-11790 (On riscv64 require libatomic if actually needed). 220 (Jeremie Courreges-Anglas) 221 . Fixed bug GH-12073 (Segfault when freeing incompletely initialized 222 closures). (ilutov) 223 . Fixed bug GH-12060 (Internal iterator rewind handler is called twice). 224 (ju1ius) 225 . Fixed bug GH-12102 (Incorrect compile error when using array access on TMP 226 value in function call). (ilutov) 227 228- DOM: 229 . Fix memory leak when setting an invalid DOMDocument encoding. (nielsdos) 230 231- Iconv: 232 . Fixed build for NetBSD which still uses the old iconv signature. 233 (David Carlier) 234 235- Intl: 236 . Fixed bug GH-12020 (intl_get_error_message() broken after 237 MessageFormatter::formatMessage() fails). (Girgias) 238 239- MySQLnd: 240 . Fixed bug GH-10270 (Invalid error message when connection via SSL fails: 241 "trying to connect via (null)"). (Kamil Tekiela) 242 243- ODBC: 244 . Fixed memory leak with failed SQLPrepare. (NattyNarwhal) 245 . Fixed persistent procedural ODBC connections not getting closed. 246 (NattyNarwhal) 247 248- SimpleXML: 249 . Fixed bug #52751 (XPath processing-instruction() function is not 250 supported). (nielsdos) 251 252- SPL: 253 . Fixed bug GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18). 254 (nielsdos) 255 256- SQLite3: 257 . Fixed bug GH-11878 (SQLite3 callback functions cause a memory leak with 258 a callable array). (nielsdos, arnaud-lb) 259 26031 Aug 2023, PHP 8.1.23 261 262- CLI: 263 . Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with 264 ZEND_RC_DEBUG=1). (nielsdos) 265 . Fixed bug GH-10964 (Improve man page about the built-in server). 266 (Alexandre Daubois) 267 268- Core: 269 . Fixed strerror_r detection at configuration time. (Kévin Dunglas) 270 271- Date: 272 . Fixed bug GH-11416: Crash with DatePeriod when uninitialised objects 273 are passed in. (Derick) 274 275- DOM: 276 . Fix DOMEntity field getter bugs. (nielsdos) 277 . Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS. 278 (nielsdos) 279 . Fix DOMCharacterData::replaceWith() with itself. (nielsdos) 280 . Fix empty argument cases for DOMParentNode methods. (nielsdos) 281 . Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone). 282 (nielsdos) 283 . Fix json_encode result on DOMDocument. (nielsdos) 284 . Fix manually calling __construct() on DOM classes. (nielsdos) 285 . Fixed bug GH-11830 (ParentNode methods should perform their checks 286 upfront). (nielsdos) 287 . Fix segfault when DOMParentNode::prepend() is called when the child 288 disappears. (nielsdos) 289 290- FFI: 291 . Fix leaking definitions when using FFI::cdef()->new(...). (ilutov) 292 293- MySQLnd: 294 . Fixed bug GH-11440 (authentication to a sha256_password account fails over 295 SSL). (nielsdos) 296 . Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password 297 accounts using passwords longer than 19 characters). 298 (nielsdos, Kamil Tekiela) 299 . Fixed bug GH-11550 (MySQL Statement has a empty query result when 300 the response field has changed, also Segmentation fault). 301 (Yurunsoft) 302 . Fixed invalid error message "Malformed packet" when connection is dropped. 303 (Kamil Tekiela) 304 305- Opcache: 306 . Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or 307 opcache_get_status() / phpinfo() is wrong). (nielsdos) 308 . Avoid adding an unnecessary read-lock when loading script from shm if 309 restart is in progress. (mikhainin) 310 311- PCNTL: 312 . Revert behaviour of receiving SIGCHLD signals back to the behaviour 313 before 8.1.22. (nielsdos) 314 315- SPL: 316 . Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free). 317 (nielsdos) 318 319- Standard: 320 . Prevent int overflow on $decimals in number_format. (Marc Bennewitz) 321 . Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix) 322 (athos-ribeiro) 323 32403 Aug 2023, PHP 8.1.22 325 326- Build: 327 . Fixed bug GH-11522 (PHP version check fails with '-' separator). 328 (SVGAnimate) 329 330- CLI: 331 . Fix interrupted CLI output causing the process to exit. (nielsdos) 332 333- Core: 334 . Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator). 335 (ilutov) 336 . Fixed use-of-uninitialized-value with ??= on assert. (ilutov) 337 . Fixed build for FreeBSD before the 11.0 releases. (David Carlier) 338 339- Curl: 340 . Fix crash when an invalid callback function is passed to 341 CURLMOPT_PUSHFUNCTION. (nielsdos) 342 343- Date: 344 . Fixed bug GH-11368 (Date modify returns invalid datetime). (Derick) 345 346- DOM: 347 . Fixed bug GH-11625 (DOMElement::replaceWith() doesn't replace node with 348 DOMDocumentFragment but just deletes node or causes wrapping <></> 349 depending on libxml2 version). (nielsdos) 350 351- Fileinfo: 352 . Fixed bug GH-11298 (finfo returns wrong mime type for xz files). (Anatol) 353 354- FTP: 355 . Fix context option check for "overwrite". (JonasQuinten) 356 . Fixed bug GH-10562 (Memory leak and invalid state with consecutive 357 ftp_nb_fget). (nielsdos) 358 359- GD: 360 . Fix most of the external libgd test failures. (Michael Orlitzky) 361 362- Hash: 363 . Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options 364 parameter in signature. (ilutov) 365 366- Intl: 367 . Fix memory leak in MessageFormatter::format() on failure. (Girgias) 368 369- Libxml: 370 . Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading 371 in XML without enabling it). (CVE-2023-3823) (nielsdos, ilutov) 372 373- MBString: 374 . Fix GH-11300 (license issue: restricted unicode license headers). 375 (nielsdos) 376 377- Opcache: 378 . Fixed bug GH-10914 (OPCache with Enum and Callback functions results in 379 segmentation fault). (nielsdos) 380 . Prevent potential deadlock if accelerated globals cannot be allocated. 381 (nielsdos) 382 383- PCNTL: 384 . Fixed bug GH-11498 (SIGCHLD is not always returned from proc_open). 385 (nielsdos) 386 387- PCRE: 388 . Mangle PCRE regex cache key with JIT option. (mvorisek) 389 390- PDO: 391 . Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true 392 and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer 393 filled). (SakiTakamachi) 394 395- PDO SQLite: 396 . Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt). 397 (KapitanOczywisty, CViniciusSDias) 398 399- Phar: 400 . Add missing check on EVP_VerifyUpdate() in phar util. (nielsdos) 401 . Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). 402 (CVE-2023-3824) (nielsdos) 403 404- PHPDBG: 405 . Fixed bug GH-9669 (phpdbg -h options doesn't list the -z option). (adsr) 406 407- Session: 408 . Removed broken url support for transferring session ID. (ilutov) 409 410- Standard: 411 . Fix serialization of RC1 objects appearing in object graph twice. (ilutov) 412 413- SQLite3: 414 . Fix replaced error handling in SQLite3Stmt::__construct. (nielsdos) 415 41606 Jul 2023, PHP 8.1.21 417 418- CLI: 419 . Fixed bug GH-11246 (cli/get_set_process_title fails on MacOS). 420 (James Lucas) 421 422- Core: 423 . Fixed build for the riscv64 architecture/GCC 12. (Daniil Gentili) 424 425- Curl: 426 . Fixed bug GH-11433 (Unable to set CURLOPT_ACCEPT_ENCODING to NULL). 427 (nielsdos) 428 429- DOM: 430 . Fixed bugs GH-11288 and GH-11289 and GH-11290 and GH-9142 (DOMExceptions 431 and segfaults with replaceWith). (nielsdos) 432 . Fixed bug GH-10234 (Setting DOMAttr::textContent results in an empty 433 attribute value). (nielsdos) 434 . Fix return value in stub file for DOMNodeList::item. (divinity76) 435 . Fix spec compliance error with '*' namespace for 436 DOMDocument::getElementsByTagNameNS. (nielsdos) 437 . Fix DOMElement::append() and DOMElement::prepend() hierarchy checks. 438 (nielsdos) 439 . Fixed bug GH-11347 (Memory leak when calling a static method inside an 440 xpath query). (nielsdos) 441 . Fixed bug #67440 (append_node of a DOMDocumentFragment does not reconcile 442 namespaces). (nielsdos) 443 . Fixed bug #81642 (DOMChildNode::replaceWith() bug when replacing a node 444 with itself). (nielsdos) 445 . Fixed bug #77686 (Removed elements are still returned by getElementById). 446 (nielsdos) 447 . Fixed bug #70359 (print_r() on DOMAttr causes Segfault in 448 php_libxml_node_free_list()). (nielsdos) 449 . Fixed bug #78577 (Crash in DOMNameSpace debug info handlers). (nielsdos) 450 . Fix lifetime issue with getAttributeNodeNS(). (nielsdos) 451 . Fix "invalid state error" with cloned namespace declarations. (nielsdos) 452 . Fixed bug #55294 and #47530 and #47847 (various namespace reconciliation 453 issues). (nielsdos) 454 . Fixed bug #80332 (Completely broken array access functionality with 455 DOMNamedNodeMap). (nielsdos) 456 457- Opcache: 458 . Fix allocation loop in zend_shared_alloc_startup(). (nielsdos) 459 . Access violation on smm_shared_globals with ALLOC_FALLBACK. (KoudelkaB) 460 . Fixed bug GH-11336 (php still tries to unlock the shared memory ZendSem 461 with opcache.file_cache_only=1 but it was never locked). (nielsdos) 462 463- OpenSSL: 464 . Fixed bug GH-9356 Incomplete validation of IPv6 Address fields in 465 subjectAltNames (James Lucas, Jakub Zelenka). 466 467- PGSQL: 468 . Fixed intermittent segfault with pg_trace. (David Carlier) 469 470- Phar: 471 . Fix cross-compilation check in phar generation for FreeBSD. (peter279k) 472 473- SPL: 474 . Fixed bug GH-11338 (SplFileInfo empty getBasename with more than one 475 slash). (nielsdos) 476 477- Standard: 478 . Fix access on NULL pointer in array_merge_recursive(). (ilutov) 479 . Fix exception handling in array_multisort(). (ilutov) 480 48108 Jun 2023, PHP 8.1.20 482 483- Core: 484 . Fixed bug GH-9068 (Conditional jump or move depends on uninitialised 485 value(s)). (nielsdos) 486 . Fixed bug GH-11189 (Exceeding memory limit in zend_hash_do_resize leaves 487 the array in an invalid state). (Bob) 488 . Fixed bug GH-11222 (foreach by-ref may jump over keys during a rehash). 489 (Bob) 490 491- Date: 492 . Fixed bug GH-11281 (DateTimeZone::getName() does not include seconds in 493 offset). (nielsdos) 494 495- Exif: 496 . Fixed bug GH-10834 (exif_read_data() cannot read smaller stream wrapper 497 chunk sizes). (nielsdos) 498 499- FPM: 500 . Fixed bug GH-10461 (PHP-FPM segfault due to after free usage of 501 child->ev_std(out|err)). (Jakub Zelenka) 502 . Fixed bug #64539 (FPM status page: query_string not properly JSON encoded). 503 (Jakub Zelenka) 504 . Fixed memory leak for invalid primary script file handle. (Jakub Zelenka) 505 506- Hash: 507 . Fixed bug GH-11180 (hash_file() appears to be restricted to 3 arguments). 508 (nielsdos) 509 510- LibXML: 511 . Fixed bug GH-11160 (Few tests failed building with new libxml 2.11.0). 512 (nielsdos) 513 514- Opcache: 515 . Fixed bug GH-11134 (Incorrect match default branch optimization). (ilutov) 516 . Fixed too wide OR and AND range inference. (nielsdos) 517 . Fixed bug GH-11245 (In some specific cases SWITCH with one default 518 statement will cause segfault). (nielsdos) 519 520- PGSQL: 521 . Fixed parameter parsing of pg_lo_export(). (kocsismate) 522 523- Phar: 524 . Fixed bug GH-11099 (Generating phar.php during cross-compile can't be 525 done). (peter279k) 526 527- Soap: 528 . Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random 529 bytes in HTTP Digest authentication for SOAP). 530 (CVE-2023-3247) (nielsdos, timwolla) 531 . Fixed bug GH-8426 (make test fail while soap extension build). (nielsdos) 532 533- SPL: 534 . Fixed bug GH-11178 (Segmentation fault in spl_array_it_get_current_data 535 (PHP 8.1.18)). (nielsdos) 536 537- Standard: 538 . Fixed bug GH-11138 (move_uploaded_file() emits open_basedir warning for 539 source file). (ilutov) 540 . Fixed bug GH-11274 (POST/PATCH request switches to GET after a HTTP 308 541 redirect). (nielsdos) 542 543- Streams: 544 . Fixed bug GH-10031 ([Stream] STREAM_NOTIFY_PROGRESS over HTTP emitted 545 irregularly for last chunk of data). (nielsdos) 546 . Fixed bug GH-11175 (Stream Socket Timeout). (nielsdos) 547 . Fixed bug GH-11177 (ASAN UndefinedBehaviorSanitizer when timeout = -1 548 passed to stream_socket_accept/stream_socket_client). (nielsdos) 549 55011 May 2023, PHP 8.1.19 551 552- Core: 553 . Fix inconsistent float negation in constant expressions. (ilutov) 554 . Fixed bug GH-8841 (php-cli core dump calling a badly formed function). 555 (nielsdos) 556 . Fixed bug GH-10737 (PHP 8.1.16 segfaults on line 597 of 557 sapi/apache2handler/sapi_apache2.c). (nielsdos, ElliotNB) 558 . Fixed bug GH-11028 (Heap Buffer Overflow in zval_undefined_cv.). (nielsdos) 559 . Fixed bug GH-11108 (Incorrect CG(memoize_mode) state after bailout in ??=). 560 (ilutov) 561 562- DOM: 563 . Fixed bug #80602 (Segfault when using DOMChildNode::before()). 564 (Nathan Freeman) 565 . Fixed incorrect error handling in dom_zvals_to_fragment(). (nielsdos) 566 567- Exif: 568 . Fixed bug GH-9397 (exif read : warnings and errors : Potentially invalid 569 endianess, Illegal IFD size and Undefined index). (nielsdos) 570 571- Intl: 572 . Fixed bug GH-11071 (TZData version not displayed anymore). (Remi) 573 574- PCRE: 575 . Fixed bug GH-10968 (Segfault in preg_replace_callback_array()). (ilutov) 576 577- Standard: 578 . Fixed bug GH-10990 (mail() throws TypeError after iterating over 579 $additional_headers array by reference). (nielsdos) 580 . Fixed bug GH-9775 (Duplicates returned by array_unique when using enums). 581 (ilutov) 582 58313 Apr 2023, PHP 8.1.18 584 585- Core: 586 . Added optional support for max_execution_time in ZTS/Linux builds 587 (Kévin Dunglas) 588 . Fixed use-after-free in recursive AST evaluation. (ilutov) 589 . Fixed bug GH-8646 (Memory leak PHP FPM 8.1). (nielsdos) 590 . Fixed bug GH-10801 (Named arguments in CTE functions cause a segfault). 591 (nielsdos) 592 . Fixed bug GH-8789 (PHP 8.0.20 (ZTS) zend_signal_handler_defer crashes on 593 apache). (nielsdos) 594 . Fixed bug GH-10015 (zend_signal_handler_defer crashes on apache shutdown). 595 (nielsdos) 596 . Fixed bug GH-10810 (Fix NUL byte terminating Exception::__toString()). 597 (ilutov) 598 . Fix potential memory corruption when mixing __callStatic() and FFI. (ilutov) 599 600- Date: 601 . Fixed bug GH-10583 (DateTime modify with tz pattern should not update 602 linked timezone). (Derick) 603 604- FPM: 605 . Fixed bug GH-10611 (fpm_env_init_main leaks environ). (nielsdos) 606 . Destroy file_handle in fpm_main. (Jakub Zelenka, nielsdos) 607 . Fixed bug #74129 (Incorrect SCRIPT_NAME with apache ProxyPassMatch when 608 spaces are in path). (Jakub Zelenka) 609 610- FTP: 611 . Propagate success status of ftp_close(). (nielsdos) 612 . Fixed bug GH-10521 (ftp_get/ftp_nb_get resumepos offset is maximum 10GB). 613 (nielsdos) 614 615- IMAP: 616 . Fix build failure with Clang 16. (orlitzky) 617 618- MySQLnd: 619 . Fixed bug GH-8979 (Possible Memory Leak with SSL-enabled MySQL 620 connections). (nielsdos) 621 622- Opcache: 623 . Fixed build for macOS to cater with pkg-config settings. (David Carlier) 624 . Fixed bug GH-8065 (opcache.consistency_checks > 0 causes segfaults in 625 PHP >= 8.1.5 in fpm context). (nielsdos) 626 627- OpenSSL: 628 . Add missing error checks on file writing functions. (nielsdos) 629 630- PDO Firebird: 631 . Fixed bug GH-10908 (Bus error with PDO Firebird on RPI with 64 bit kernel 632 and 32 bit userland). (nielsdos) 633 634- PDO ODBC: 635 . Fixed missing and inconsistent error checks on SQLAllocHandle. (nielsdos) 636 637- Phar: 638 . Fixed bug GH-10766 (PharData archive created with Phar::Zip format does 639 not keep files metadata (datetime)). (nielsdos) 640 . Add missing error checks on EVP_MD_CTX_create() and EVP_VerifyInit(). 641 (nielsdos) 642 643- PGSQL: 644 . Fixed typo in the array returned from pg_meta_data (extended mode). 645 (David Carlier) 646 647- SPL: 648 . Fixed bug GH-10519 (Array Data Address Reference Issue). (Nathan Freeman) 649 . Fixed bug GH-10844 (ArrayIterator allows modification of readonly props). 650 (ilutov) 651 652- Standard: 653 . Fixed bug GH-10885 (stream_socket_server context leaks). (ilutov) 654 . Fixed bug GH-10052 (Browscap crashes PHP 8.1.12 on request shutdown 655 (apache2)). (nielsdos) 656 . Fixed oss-fuzz #57392 (Buffer-overflow in php_fgetcsv() with \0 delimiter 657 and enclosure). (ilutov) 658 . Fixed undefined behaviour in unpack(). (nielsdos) 659 66016 Mar 2023, PHP 8.1.17 661 662- Core: 663 . Fixed incorrect check condition in ZEND_YIELD. (nielsdos) 664 . Fixed incorrect check condition in type inference. (nielsdos) 665 . Fixed overflow check in OnUpdateMemoryConsumption. (nielsdos) 666 . Fixed bug GH-9916 (Entering shutdown sequence with a fiber suspended in a 667 Generator emits an unavoidable fatal error or crashes). (Arnaud) 668 . Fixed bug GH-10437 (Segfault/assertion when using fibers in shutdown 669 function after bailout). (trowski) 670 . Fixed SSA object type update for compound assignment opcodes. (nielsdos) 671 . Fixed language scanner generation build. (Daniel Black) 672 . Fixed zend_update_static_property() calling zend_update_static_property_ex() 673 misleadingly with the wrong return type. (nielsdos) 674 . Fix bug GH-10570 (Fixed unknown string hash on property fetch with integer 675 constant name). (nielsdos) 676 . Fixed php_fopen_primary_script() call resulted on zend_destroy_file_handle() 677 freeing dangling pointers on the handle as it was uninitialized. (nielsdos) 678 679- Curl: 680 . Fixed deprecation warning at compile time. (Max Kellermann) 681 . Fixed bug GH-10270 (Unable to return CURL_READFUNC_PAUSE in readfunc 682 callback). (Pierrick Charron) 683 684- Date: 685 . Fix GH-10447 ('p' format specifier does not yield 'Z' for 00:00). (Derick) 686 687- FFI: 688 . Fixed incorrect bitshifting and masking in ffi bitfield. (nielsdos) 689 690- Fiber: 691 . Fixed assembly on alpine x86. (nielsdos) 692 . Fixed bug GH-10496 (segfault when garbage collector is invoked inside of 693 fiber). (Bob, Arnaud) 694 695- FPM: 696 . Fixed bug GH-10315 (FPM unknown child alert not valid). (Jakub Zelenka) 697 . Fixed bug GH-10385 (FPM successful config test early exit). (nielsdos) 698 699- Intl: 700 . Fixed bug GH-10647 (Spoolchecker isSuspicious/areConfusable methods 701 error code's argument always returning NULL0. (Nathan Freeman) 702 703- JSON: 704 . Fixed JSON scanner and parser generation build. 705 (Daniel Black, Jakub Zelenka) 706 707- MBString: 708 . ext/mbstring: fix new_value length check. (Max Kellermann) 709 . Fix bug GH-10627 (mb_convert_encoding crashes PHP on Windows). (nielsdos) 710 711- Opcache: 712 . Fix incorrect page_size check. (nielsdos) 713 . Fix readonly modification check when using inc/dec operators on readonly 714 property with JIT. (ilutov) 715 716- OpenSSL: 717 . Fixed php_openssl_set_server_dh_param() DH params errors handling. (nielsdos) 718 719- PDO OCI: 720 . Fixed bug #60994 (Reading a multibyte CLOB caps at 8192 chars). 721 (Michael Voříšek) 722 723- PHPDBG: 724 . Fixed bug GH-10715 (heap buffer overflow on --run option misuse). (nielsdos) 725 726- PGSQL: 727 . Fix GH-10672 (pg_lo_open segfaults in the strict_types mode). (girgias) 728 729- Phar: 730 . Fix incorrect check in phar tar parsing. (nielsdos) 731 732- Reflection: 733 . Fixed bug GH-10623 (Reflection::getClosureUsedVariables opcode fix with 734 variadic arguments). (nielsdos) 735 . Fix Segfault when using ReflectionFiber suspended by an internal function. 736 (danog) 737 738- Session: 739 . Fixed ps_files_cleanup_dir() on failure code paths with -1 instead of 0 as 740 the latter was considered success by callers. (nielsdos). 741 742- Standard: 743 . Fixed bug GH-10292 (Made the default value of the first param of srand() and 744 mt_srand() unknown). (kocsismate) 745 . Fix incorrect check in cs_8559_5 in map_from_unicode(). (nielsdos) 746 . Fix bug GH-9697 for reset/end/next/prev() attempting to move pointer of 747 properties table for certain internal classes such as FFI classes 748 . Fix incorrect error check in browsecap for pcre2_match(). (nielsdos) 749 750- Tidy: 751 . Fix memory leaks when attempting to open a non-existing file or a file over 752 4GB. (Girgias) 753 . Add missing error check on tidyLoadConfig. (nielsdos) 754 755- Zlib: 756 . Fixed output_handler directive value's length which counted the string 757 terminator. (nieldos) 758 75914 Feb 2023, PHP 8.1.16 760 761- Core: 762 . Fixed bug #81744 (Password_verify() always return true with some hash). 763 (CVE-2023-0567). (Tim Düsterhus) 764 . Fixed bug #81746 (1-byte array overrun in common path resolve code). 765 (CVE-2023-0568). (Niels Dossche) 766 767- SAPI: 768 . Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart 769 request body). (CVE-2023-0662) (Jakub Zelenka) 770 77102 Feb 2023, PHP 8.1.15 772 773- Apache: 774 . Fixed bug GH-9949 (Partial content on incomplete POST request). (cmb) 775 776- Core: 777 . Fixed bug GH-10072 (PHP crashes when execute_ex is overridden and a __call 778 trampoline is used from internal code). (Derick) 779 . Fix GH-10251 (Assertion `(flag & (1<<3)) == 0' failed). (nielsdos) 780 . Fix wrong comparison in block optimisation pass after opcode update. (nieldsdos) 781 . Fix GH-10248 (Assertion `!(zval_get_type(&(*(property))) == 10)' failed). 782 (nielsdos) 783 784- Date: 785 . Fixed bug GH-9891 (DateTime modify with unixtimestamp (@) must work like 786 setTimestamp). (Derick) 787 . Fixed bug GH-10218 (DateTimeZone fails to parse time zones that contain the 788 "+" character). (Derick) 789 790- Fiber: 791 . Fix assertion on stack allocation size. (nielsdos) 792 793- FPM: 794 . Fixed bug GH-9981 (FPM does not reset fastcgi.error_header). 795 (Jakub Zelenka) 796 . Fixed bug #67244 (Wrong owner:group for listening unix socket). 797 (Jakub Zelenka) 798 799- Hash: 800 . Handle exceptions from __toString in XXH3's initialization (nielsdos) 801 802- LDAP: 803 . Fixed bug GH-10112 (LDAP\Connection::__construct() refers to ldap_create()). 804 (cmb) 805 806- MBString: 807 . Fixed: mb_strlen (and a couple of other mbstring functions) would wrongly treat 0x80, 0xFD, 0xFE, 0xFF, and certain other byte values as the first byte of a 2-byte SJIS character. (Alex Dowad) 808 809- Opcache: 810 . Fix inverted bailout value in zend_runtime_jit() (Max Kellermann). 811 . Fix access to uninitialized variable in accel_preload(). (nielsdos) 812 . Fix zend_jit_find_trace() crashes. (Max Kellermann) 813 . Added missing lock for EXIT_INVALIDATE in zend_jit_trace_exit. (Max Kellermann) 814 815- Phar: 816 . Fix wrong flags check for compression method in phar_object.c (nielsdos) 817 818- PHPDBG: 819 . Fix undefined behaviour in phpdbg_load_module_or_extension(). (nielsdos) 820 . Fix NULL pointer dereference in phpdbg_create_conditional_breal(). (nielsdos) 821 . Fix GH-9710: phpdbg memory leaks by option "-h" (nielsdos) 822 . Fix phpdbg segmentation fault in case of malformed input (nielsdos) 823 824- Posix: 825 . Fix memory leak in posix_ttyname() (girgias) 826 827- Standard: 828 . Fix GH-10187 (Segfault in stripslashes() with arm64). (nielsdos) 829 . Fix substr_replace with slots in repl_ht being UNDEF. (nielsdos) 830 831- TSRM: 832 . Fixed Windows shmget() wrt. IPC_PRIVATE. (Tyson Andre) 833 834- XMLWriter 835 . Fix missing check for xmlTextWriterEndElement (nielsdos) 836 83705 Jan 2023, PHP 8.1.14 838 839- Core: 840 . Fixed bug GH-9905 (constant() behaves inconsistent when class is undefined). 841 (cmb) 842 . Fixed bug GH-9918 (License information for xxHash is not included in 843 README.REDIST.BINS file). (Akama Hitoshi) 844 . Fixed bug GH-9650 (Can't initialize heap: [0x000001e7]). (Michael Voříšek) 845 . Fixed potentially undefined behavior in Windows ftok(3) emulation. (cmb) 846 847- Date: 848 . Fixed bug GH-9699 (DateTimeImmutable::diff differences in 8.1.10 onwards - 849 timezone related). (Derick) 850 . Fixed bug GH-9700 (DateTime::createFromFormat: Parsing TZID string is too 851 greedy). (Derick) 852 . Fixed bug GH-9866 (Time zone bug with \DateTimeInterface::diff()). (Derick) 853 . Fixed bug GH-9880 (DateTime diff returns wrong sign on day count when using 854 a timezone). (Derick) 855 856- FPM: 857 . Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug 858 #66694). (Petr Sumbera) 859 . Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING). 860 (Jakub Zelenka) 861 . Fixed bug GH-8517 (Random crash of FPM master process in 862 fpm_stdio_child_said). (Jakub Zelenka) 863 864- MBString: 865 . Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in 866 PHP8.1). (Nathan Freeman) 867 868- Opcache: 869 . Fixed bug GH-9968 (Segmentation Fault during OPCache Preload). 870 (Arnaud, michdingpayc) 871 872- OpenSSL: 873 . Fixed bug GH-9064 (PHP fails to build if openssl was built with --no-ec). 874 (Jakub Zelenka) 875 . Fixed bug GH-10000 (OpenSSL test failures when OpenSSL compiled with 876 no-dsa). (Jakub Zelenka) 877 878- Pcntl: 879 . Fixed bug GH-9298 (Signal handler called after rshutdown leads to crash). 880 (Erki Aring) 881 882- PDO_Firebird: 883 . Fixed bug GH-9971 (Incorrect NUMERIC value returned from PDO_Firebird). 884 (cmb) 885 886- PDO/SQLite: 887 . Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631) 888 (cmb) 889 890- Session: 891 . Fixed GH-9932 (session name silently fails with . and [). (David Carlier) 892 893- SPL: 894 . Fixed GH-9883 (SplFileObject::__toString() reads next line). (Girgias) 895 . Fixed GH-10011 (Trampoline autoloader will get reregistered and cannot be 896 unregistered). (Girgias) 897 898- SQLite3: 899 . Fixed bug #81742 (open_basedir bypass in SQLite3 by using file URI). (cmb) 900 90124 Nov 2022, PHP 8.1.13 902 903- CLI: 904 . Fixed bug GH-9709 (Null pointer dereference with -w/-s options). (Adam Saponara) 905 906- Core: 907 . Fixed bug GH-9752 (Generator crashes when interrupted during argument 908 evaluation with extra named params). (Arnaud) 909 . Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during 910 initialization). (Arnaud) 911 . Fixed potential NULL pointer dereference Windows shm*() functions. (cmb) 912 . Fixed bug GH-9750 (Generator memory leak when interrupted during argument 913 evaluation. (Arnaud) 914 915- Date: 916 . Fixed bug GH-9763 (DateTimeZone ctr mishandles input and adds null byte if 917 the argument is an offset larger than 100*60 minutes). (Derick) 918 919- FPM: 920 . Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running 921 php-fpm 8.1.11). (Jakub Zelenka) 922 923- mysqli: 924 . Fixed bug GH-9841 (mysqli_query throws warning despite using 925 silenced error mode). (Kamil Tekiela) 926 927- MySQLnd: 928 . Fixed potential heap corruption due to alignment mismatch. (cmb) 929 930- OpenSSL: 931 . Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does 932 not build). (Jakub Zelenka, fsbruva) 933 934- SOAP: 935 . Fixed GH-9720 (Null pointer dereference while serializing the response). 936 (cmb) 937 93827 Oct 2022, PHP 8.1.12 939 940- Core: 941 . Fixes segfault with Fiber on FreeBSD i386 architecture. (David Carlier) 942 943- Fileinfo: 944 . Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files). 945 (Anatol) 946 947- GD: 948 . Fixed bug #81739: OOB read due to insufficient input validation in 949 imageloadfont(). (CVE-2022-31630) (cmb) 950 951- Hash: 952 . Fixed bug #81738: buffer overflow in hash_update() on long parameter. 953 (CVE-2022-37454) (nicky at mouha dot be) 954 955- MBString: 956 - Fixed bug GH-9683 (Problem when ISO-2022-JP-MS is specified in 957 mb_ encode_mimeheader). (Alex Dowad) 958 959- Opcache: 960 . Added indirect call reduction for jit on x86 architectures. (wxue1) 961 962- Session: 963 . Fixed bug GH-9583 (session_create_id() fails with user defined save handler 964 that doesn't have a validateId() method). (Girgias) 965 966- Streams: 967 . Fixed bug GH-9590 (stream_select does not abort upon exception or empty 968 valid fd set). (Arnaud) 969 97029 Sep 2022, PHP 8.1.11 971 972- Core: 973 . Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function) 974 (Tim Starling) 975 . Fixed bug GH-9361 (Segmentation fault on script exit #9379). (cmb, 976 Christian Schneider) 977 . Fixed bug GH-9447 (Invalid class FQN emitted by AST dump for new and class 978 constants in constant expressions). (ilutov) 979 . Fixed bug #81727: Don't mangle HTTP variable names that clash with ones 980 that have a specific semantic meaning. (CVE-2022-31629). (Derick) 981 982- DOM: 983 . Fixed bug #79451 (DOMDocument->replaceChild on doctype causes double free). 984 (Nathan Freeman) 985 986- FPM: 987 . Fixed bug GH-8885 (FPM access.log with stderr begins to write logs to 988 error_log after daemon reload). (Dmitry Menshikov) 989 . Fixed bug #77780 ("Headers already sent..." when previous connection was 990 aborted). (Jakub Zelenka) 991 992- GMP 993 . Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed 994 to gmp_init()). (Girgias) 995 996- Intl 997 . Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter). 998 (Girgias) 999 1000- PCRE: 1001 . Fixed pcre.jit on Apple Silicon. (Niklas Keller) 1002 1003- PDO_PGSQL: 1004 . Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed). 1005 (Yurunsoft) 1006 1007- Phar: 1008 . Fixed bug #81726: phar wrapper: DOS when using quine gzip file. 1009 (CVE-2022-31628). (cmb) 1010 1011- Reflection: 1012 . Fixed bug GH-8932 (ReflectionFunction provides no way to get the called 1013 class of a Closure). (cmb, Nicolas Grekas) 1014 1015- Streams: 1016 . Fixed bug GH-9316 ($http_response_header is wrong for long status line). 1017 (cmb, timwolla) 1018 101901 Sep 2022, PHP 8.1.10 1020 1021- Core: 1022 . Fixed --CGI-- support of run-tests.php. (cmb) 1023 . Fixed incorrect double to long casting in latest clang. (zeriyoshi) 1024 . Fixed bug GH-9266 (GC root buffer keeps growing when dtors are present). 1025 (Michael Olšavský) 1026 1027- Date: 1028 . Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of 1029 different type). (Derick) 1030 . Fixed bug GH-8964 (DateTime object comparison after applying delta less 1031 than 1 second). (Derick) 1032 . Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded 1033 down since PHP 8.1.0). (Derick) 1034 . Fixed bug #81263 (Wrong result from DateTimeImmutable::diff). (Derick) 1035 1036- DBA: 1037 . Fixed LMDB driver memory leak on DB creation failure (Girgias) 1038 . Fixed bug GH-9155 (dba_open("non-existing", "c-", "flatfile") segfaults) 1039 (cmb) 1040 1041- IMAP: 1042 . Fixed bug GH-9309 (Segfault when connection is used after imap_close()). 1043 (cmb) 1044 1045- Intl: 1046 . Fixed IntlDateFormatter::formatObject() parameter type. (Gert de Pagter) 1047 1048- MBString: 1049 . Fixed bug GH-9008 (mb_detect_encoding(): wrong results with null $encodings). 1050 (cmb) 1051 1052- OPcache: 1053 . Fixed bug GH-9033 (Loading blacklist file can fail due to negative length). 1054 (cmb) 1055 . Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy). 1056 (Arnaud, Sergei Turchanov) 1057 1058- OpenSSL: 1059 . Fixed bug GH-9339 (OpenSSL oid_file path check warning contains 1060 uninitialized path). (Jakub Zelenka) 1061 1062- PDO_SQLite: 1063 . Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values). (cmb) 1064 1065- SQLite3: 1066 . Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values). (cmb) 1067 1068- Streams: 1069 . Fixed bug GH-8472 (The resource returned by stream_socket_accept may have 1070 incorrect metadata). (Jakub Zelenka) 1071 . Fixed bug GH-8409 (SSL handshake timeout leaves persistent connections 1072 hanging). (Jakub Zelenka, Twosee) 1073 107404 Aug 2022, PHP 8.1.9 1075 1076- CLI: 1077 . Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS 1078 environment variable. (yiyuaner) 1079 1080- Core: 1081 . Fixed bug GH-8923 (error_log on Windows can hold the file write lock). (cmb) 1082 . Fixed bug GH-8995 (WeakMap object reference offset causing TypeError). 1083 (Tobias Bachert) 1084 1085- CLI: 1086 . Fixed GH-8952 (Intentionally closing std handles no longer possible). 1087 (Arnaud, cmb) 1088 1089- Date: 1090 . Fixed bug #80047 (DatePeriod doesn't warn with custom DateTimeImmutable). 1091 (Derick) 1092 1093- FPM: 1094 . Fixed zlog message prepend, free on incorrect address. (Heiko Weber) 1095 . Fixed possible double free on configuration loading failure. (Heiko Weber). 1096 1097- GD: 1098 . Fixed bug GH-8848 (imagecopyresized() error refers to the wrong argument). 1099 (cmb) 1100 1101- Intl: 1102 . Fixed build for ICU 69.x and onwards. (David Carlier) 1103 1104- OPcache: 1105 . Fixed bug GH-8847 (PHP hanging infinitly at 100% cpu when check php 1106 syntaxe of a valid file). (Dmitry) 1107 . Fixed bug GH-8030 (Segfault with JIT and large match/switch statements). 1108 (Arnaud) 1109 1110- Reflection: 1111 . Fixed bug GH-8943 (Fixed Reflection::getModifiersNames() with readonly 1112 modifier). (Pierrick) 1113 . Fixed bug GH-8982 (Attribute with TARGET_METHOD is rejected on fake 1114 closure of method). (ilutov) 1115 1116- Standard: 1117 . Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier) 1118 . Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier). 1119 . Fixed bug GH-9017 (php_stream_sock_open_from_socket could return NULL). 1120 (Heiko Weber) 1121 112207 Jul 2022, PHP 8.1.8 1123 1124- Core: 1125 . Fixed bug GH-8338 (Intel CET is disabled unintentionally). (Chen, Hu) 1126 . Fixed leak in Enum::from/tryFrom for internal enums when using JIT (ilutov) 1127 . Fixed calling internal methods with a static return type from 1128 extension code. (Sara) 1129 . Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1 1130 references). (Nicolas Grekas) 1131 . Fixed potential use after free in php_binary_init(). (Heiko Weber) 1132 . Fixed bug GH-7942 (Indirect mutation of readonly properties through 1133 references). (ilutov) 1134 1135- CLI: 1136 . Fixed GH-8827 (Intentionally closing std handles no longer possible). (cmb) 1137 1138- COM: 1139 . Fixed bug GH-8778 (Integer arithmethic with large number variants fails). 1140 (cmb) 1141 1142- Curl: 1143 . Fixed CURLOPT_TLSAUTH_TYPE is not treated as a string option. (Pierrick) 1144 1145- Date: 1146 . Fixed bug #72963 (Null-byte injection in CreateFromFormat and related 1147 functions). (Derick) 1148 . Fixed bug #74671 (DST timezone abbreviation has incorrect offset). (Derick) 1149 . Fixed bug #77243 (Weekdays are calculated incorrectly for negative years). 1150 (Derick) 1151 . Fixed bug #78139 (timezone_open accepts invalid timezone string argument). 1152 (Derick) 1153 1154- Fileinfo: 1155 . Fixed bug #81723 (Heap buffer overflow in finfo_buffer). (CVE-2022-31627) 1156 (cmb) 1157 1158- FPM: 1159 . Fixed bug #67764 (fpm: syslog.ident don't work). (Jakub Zelenka) 1160 1161- GD: 1162 . Fixed imagecreatefromavif() memory leak. (cmb) 1163 1164- MBString: 1165 . mb_detect_encoding recognizes all letters in Czech alphabet (alexdowad) 1166 . mb_detect_encoding recognizes all letters in Hungarian alphabet (alexdowad) 1167 . Fixed bug GH-8685 (pcre not ready at mbstring startup). (Remi) 1168 . Backwards-compatible mappings for 0x5C/0x7E in Shift-JIS are restored, 1169 after they had been changed in 8.1.0. (Alex Dowad) 1170 1171- ODBC: 1172 . Fixed handling of single-key connection strings. (Calvin Buckley) 1173 1174- OPcache: 1175 . Fixed bug GH-8591 (tracing JIT crash after private instance method change). 1176 (Arnaud, Dmitry, Oleg Stepanischev) 1177 1178- OpenSSL: 1179 . Fixed bug #50293 (Several openssl functions ignore the VCWD). 1180 (Jakub Zelenka, cmb) 1181 . Fixed bug #81713 (NULL byte injection in several OpenSSL functions working 1182 with certificates). (Jakub Zelenka) 1183 1184- PDO_ODBC: 1185 . Fixed handling of single-key connection strings. (Calvin Buckley) 1186 1187- Zip: 1188 . Fixed bug GH-8781 (ZipArchive::close deletes zip file without updating stat 1189 cache). (Remi) 1190 119109 Jun 2022, PHP 8.1.7 1192 1193- CLI: 1194 . Fixed bug GH-8575 (CLI closes standard streams too early). (Levi Morrison) 1195 1196- Date: 1197 . Fixed bug #51934 (strtotime plurals / incorrect time). (Derick) 1198 . Fixed bug #51987 (Datetime fails to parse an ISO 8601 ordinal date 1199 (extended format)). (Derick) 1200 . Fixed bug #66019 (DateTime object does not support short ISO 8601 time 1201 format - YYYY-MM-DDTHH) (cmb, Derick) 1202 . Fixed bug #68549 (Timezones and offsets are not properly used when working 1203 with dates) (Derick, Roel Harbers) 1204 . Fixed bug #81565 (date parsing fails when provided with timezones including 1205 seconds). (Derick) 1206 . Fixed bug GH-7758 (Problems with negative timestamps and fractions). 1207 (Derick, Ilija) 1208 1209- FPM: 1210 . Fixed ACL build check on MacOS. (David Carlier) 1211 . Fixed bug #72185: php-fpm writes empty fcgi record causing nginx 502. 1212 (Jakub Zelenka, loveharmful) 1213 . Fixes use after free. (Heiko Weber). 1214 1215- mysqlnd: 1216 . Fixed bug #81719: mysqlnd/pdo password buffer overflow. (CVE-2022-31626) 1217 (c dot fol at ambionics dot io) 1218 1219- OPcache: 1220 . Fixed bug GH-8461 (tracing JIT crash after function/method change). 1221 (Arnaud, Dmitry) 1222 1223- OpenSSL: 1224 . Fixed bug #79589 (error:14095126:SSL routines:ssl3_read_n:unexpected eof 1225 while reading). (Jakub Zelenka) 1226 1227- Pcntl: 1228 . Fixed Haiku build. (David Carlier) 1229 1230- pgsql 1231 . Fixed bug #81720: Uninitialized array in pg_query_params(). 1232 (CVE-2022-31625) (cmb) 1233 1234- Soap: 1235 . Fixed bug GH-8578 (Error on wrong parameter on SoapHeader constructor). 1236 (robertnisipeanu) 1237 . Fixed bug GH-8538 (SoapClient may strip parts of nmtokens). (cmb) 1238 1239- SPL: 1240 . Fixed bug GH-8235 (iterator_count() may run indefinitely). (cmb) 1241 1242- Standard: 1243 . Fixed bug GH-8185 (Crash during unloading of extension after dl() in ZTS). 1244 (Arnaud) 1245 1246- Zip: 1247 . Fixed type for index in ZipArchive::replaceFile. (Martin Rehberger) 1248 124912 May 2022, PHP 8.1.6 1250 1251- Core: 1252 . Fixed bug GH-8310 (Registry settings are no longer recognized). (cmb) 1253 . Fixed potential race condition during resource ID allocation. (ryancaicse) 1254 . Fixed bug GH-8133 (Preloading of constants containing arrays with enums 1255 segfaults). (ilutov) 1256 . Fixed Haiku ZTS builds. (David Carlier) 1257 1258- Date: 1259 . Fixed bug GH-7752 (DateTimeZone::getTransitions() returns insufficient 1260 data). (Derick) 1261 . Fixed bug GH-8108 (Timezone doesn't work as intended). (Derick) 1262 . Fixed bug #81660 (DateTimeZone::getTransitions() returns invalid data). 1263 (Derick) 1264 . Fixed bug GH-8289 (Exceptions thrown within a yielded from iterator are 1265 not rethrown into the generator). (Bob) 1266 1267- FFI: 1268 . Fixed bug GH-8433 (Assigning function pointers to structs in FFI leaks). 1269 (Bob) 1270 1271- FPM: 1272 . Fixed bug #76003 (FPM /status reports wrong number of active processe). 1273 (Jakub Zelenka) 1274 . Fixed bug #77023 (FPM cannot shutdown processes). (Jakub Zelenka) 1275 . Fixed comment in kqueue remove callback log message. (David Carlier) 1276 1277- Hash: 1278 . Fixed bug #81714 (segfault when serializing finalized HashContext). (cmb) 1279 1280- Iconv: 1281 . Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header). 1282 (cmb) 1283 1284- Intl: 1285 . Fixed bug GH-8364 (msgfmt_format $values may not support references). (cmb) 1286 1287- MBString: 1288 . Number of error markers emitted for invalid UTF-8 text matches WHATWG specification. 1289 This is a return to the behavior of PHP 8.0 and earlier. (alexdowad) 1290 1291- MySQLi: 1292 . Fixed bug GH-8267 (MySQLi uses unsupported format specifier on Windows). 1293 (cmb) 1294 1295- OPcache: 1296 . Fixed bug GH-8063 (OPcache breaks autoloading after E_COMPILE_ERROR). 1297 (Arnaud) 1298 1299- SPL: 1300 . Fixed bug GH-8366 (ArrayIterator may leak when calling __construct()). 1301 (cmb) 1302 . Fixed bug GH-8273 (SplFileObject: key() returns wrong value). (Girgias) 1303 1304- Streams: 1305 . Fixed php://temp does not preserve file-position when switched to temporary 1306 file. (Bernd Holzmüller) 1307 1308- zlib: 1309 . Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header). 1310 (cmb) 1311 131214 Apr 2022, PHP 8.1.5 1313 1314- Core: 1315 . Fixed bug GH-8176 (Enum values in property initializers leak). (Bob) 1316 . Fixed freeing of internal attribute arguments. (Bob) 1317 . Fixed bug GH-8070 (memory leak of internal function attribute hash). 1318 (Tim Düsterhus) 1319 . Fixed bug GH-8160 (ZTS support on Alpine is broken). (Michael Voříšek) 1320 1321- Filter: 1322 . Fixed signedness confusion in php_filter_validate_domain(). (cmb) 1323 1324- Intl: 1325 . Fixed bug GH-8115 (Can't catch arg type deprecation when instantiating Intl 1326 classes). (ilutov) 1327 . Fixed bug GH-8142 (Compilation error on cygwin). (David Carlier) 1328 . Fixed bug GH-7734 (Fix IntlPartsIterator key off-by-one error and first 1329 key). (ilutov) 1330 1331- MBString: 1332 . Fixed bug GH-8208 (mb_encode_mimeheader: $indent functionality broken). 1333 (cmb) 1334 1335- MySQLi: 1336 . Fixed bug GH-8068 (mysqli_fetch_object creates inaccessible properties). 1337 (cmb) 1338 1339- Pcntl: 1340 . Fixed bug GH-8142 (Compilation error on cygwin). (David Carlier) 1341 1342- PgSQL: 1343 . Fixed result_type related stack corruption on LLP64 architectures. (cmb) 1344 . Fixed bug GH-8253 (pg_insert() fails for references). (cmb) 1345 1346- Sockets: 1347 . Fixed Solaris builds. (David Carlier) 1348 . Fix undefined behavior in php_set_inet6_addr. (ilutov) 1349 1350- SPL: 1351 . Fixed bug GH-8121 (SplFileObject - seek and key with csv file inconsistent). 1352 (cmb) 1353 . Fixed bug GH-8192 (Cannot override DirectoryIterator::current() without 1354 return typehint in 8.1). (Nikita) 1355 1356- Standard: 1357 . Fixed bug GH-8048 (Force macOS to use statfs). (risner) 1358 135917 Mar 2022, PHP 8.1.4 1360 1361- Core: 1362 . Fixed Haiku ZTS build. (David Carlier) 1363 . Fixed bug GH-8059 arginfo not regenerated for extension. (Remi) 1364 . Fixed bug GH-8083 Segfault when dumping uncalled fake closure with static 1365 variables. (ilutov) 1366 . Fixed bug GH-7958 (Nested CallbackFilterIterator is leaking memory). (cmb) 1367 . Fixed bug GH-8074 (Wrong type inference of range() result). (cmb) 1368 . Fixed bug GH-8140 (Wrong first class callable by name optimization). (cmb) 1369 . Fixed bug GH-8082 (op_arrays with temporary run_time_cache leak memory 1370 when observed). (Bob) 1371 1372- GD: 1373 . Fixed libpng warning when loading interlaced images. (Brett) 1374 1375- FPM: 1376 . Fixed bug #76109 (Unsafe access to fpm scoreboard). 1377 (Till Backhaus, Jakub Zelenka) 1378 1379- Iconv: 1380 . Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding). (cmb) 1381 . Fixed bug GH-7980 (Unexpected result for iconv_mime_decode). (cmb) 1382 1383- MBString: 1384 . Fixed bug GH-8128 (mb_check_encoding wrong result for 7bit). (alexdowad) 1385 1386- MySQLnd: 1387 . Fixed bug GH-8058 (NULL pointer dereference in mysqlnd package). (Kamil Tekiela) 1388 1389- Reflection: 1390 . Fixed bug GH-8080 (ReflectionClass::getConstants() depends on def. order). 1391 (cmb) 1392 . Fixed bug GH-8444 (Fix ReflectionProperty::__toString() of properties 1393 containing instantiated enums). (ilutov) 1394 1395- Zlib: 1396 . Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding). (cmb) 1397 139803 Feb 2022, PHP 8.1.3 1399 1400- Core: 1401 . Fixed bug #81430 (Attribute instantiation leaves dangling pointer). 1402 (beberlei) 1403 . Fixed bug GH-7896 (Environment vars may be mangled on Windows). (cmb) 1404 . Fixed bug GH-7883 (Segfault when INI file is not readable). (Remi) 1405 1406- FFI: 1407 . Fixed bug GH-7867 (FFI::cast() from pointer to array is broken). (cmb, 1408 dmitry) 1409 1410- Filter: 1411 . Fix #81708: UAF due to php_filter_float() failing for ints. 1412 (CVE-2021-21708) (cmb) 1413 1414- FPM: 1415 . Fixed memory leak on invalid port. (David Carlier) 1416 . Fixed bug GH-7842 (Invalid OpenMetrics response format returned by FPM 1417 status page. (Stefano Arlandini) 1418 1419- MBString: 1420 . Fixed bug GH-7902 (mb_send_mail may delimit headers with LF only). (cmb) 1421 1422- MySQLnd: 1423 . Fixed bug GH-7972 (MariaDB version prefix 5.5.5- is not stripped). (Kamil Tekiela) 1424 1425- pcntl: 1426 . Fixed pcntl_rfork build for DragonFlyBSD. (David Carlier) 1427 1428- Sockets: 1429 . Fixed bug GH-7978 (sockets extension compilation errors). (David Carlier) 1430 1431- Standard: 1432 . Fixed bug GH-7899 (Regression in unpack for negative int value). (Remi) 1433 . Fixed bug GH-7875 (mails are sent even if failure to log throws exception). 1434 (cmb) 1435 143620 Jan 2022, PHP 8.1.2 1437 1438- Core: 1439 . Fixed bug #81216 (Nullsafe operator leaks dynamic property name). (Dmitry) 1440 . Fixed bug #81684 (Using null coalesce assignment with $GLOBALS["x"] produces 1441 opcode error). (ilutov) 1442 . Fixed bug #81656 (GCC-11 silently ignores -R). (Michael Wallner) 1443 . Fixed bug #81683 (Misleading "access type ... must be public" error message 1444 on final or abstract interface methods). (ilutov) 1445 . Fixed bug #81585 (cached_chunks are not counted to real_size on shutdown). 1446 (cmb) 1447 . Fixed bug GH-7757 (Multi-inherited final constant causes fatal error). 1448 (cmb) 1449 . Fixed zend_fibers.c build with ZEND_FIBER_UCONTEXT. (Petr Sumbera) 1450 . Added riscv64 support for fibers. (Jeremie Courreges-Anglas) 1451 1452- Filter: 1453 . Fixed FILTER_FLAG_NO_RES_RANGE flag. (Yifan Tong) 1454 1455- Hash: 1456 . Fixed bug GH-7759 (Incorrect return types for hash() and hash_hmac()). 1457 (cmb) 1458 . Fixed bug GH-7826 (Inconsistent argument name in hash_hmac_file and 1459 hash_file). (cmb) 1460 1461- MBString: 1462 . Fixed bug #81693 (mb_check_encoding(7bit) segfaults). (cmb) 1463 1464- MySQLi: 1465 . Fixed bug #81658 (MYSQL_OPT_LOAD_DATA_LOCAL_DIR not available in MariaDB). 1466 (devnexen) 1467 . Introduced MYSQLI_IS_MARIADB. (devnexen) 1468 . Fixed bug GH-7746 (mysqli_sql_exception->getSqlState()). (Kamil Tekiela) 1469 1470- MySQLnd: 1471 . Fixed bug where large bigints may be truncated. (Nathan Freeman, cmb) 1472 1473- OCI8: 1474 . Fixed bug GH-7765 (php_oci_cleanup_global_handles segfaults at second 1475 call). (cmb) 1476 1477- OPcache: 1478 . Fixed bug #81679 (Tracing JIT crashes on reattaching). (cmb) 1479 1480- Readline: 1481 . Fixed bug #81598 (Cannot input unicode characters in PHP 8 interactive 1482 shell). (Nikita) 1483 1484- Reflection: 1485 . Fixed bug #81681 (ReflectionEnum throwing exceptions). (cmb) 1486 1487- PDO_PGSQL: 1488 . Fixed error message allocation of PDO PgSQL. (SATO Kentaro) 1489 1490- Sockets: 1491 . Avoid void* arithmetic in sockets/multicast.c on NetBSD. (David Carlier) 1492 . Fixed ext/sockets build on Haiku. (David Carlier) 1493 1494- Spl: 1495 . Fixed bug #75917 (SplFileObject::seek broken with CSV flags). (Aliaksandr 1496 Bystry) 1497 . Fixed bug GH-7809 (Cloning a faked SplFileInfo object may segfault). (cmb) 1498 1499- Standard: 1500 . Fixed bug GH-7748 (gethostbyaddr outputs binary string). (cmb) 1501 . Fixed bug GH-7815 (php_uname doesn't recognise latest Windows versions). 1502 (David Warner) 1503 150402 Dec 2021, PHP 8.1.1 1505 1506- IMAP: 1507 . Fixed bug #81649 (imap_(un)delete accept sequences, not single numbers). 1508 (cmb) 1509 1510- PCRE: 1511 . Update bundled PCRE2 to 10.39. (cmb) 1512 . Fixed bug #74604 (Out of bounds in php_pcre_replace_impl). (cmb, Dmitry) 1513 1514- Standard: 1515 . Fixed bug #81659 (stream_get_contents() may unnecessarily overallocate). 1516 (cmb) 1517 151825 Nov 2021, PHP 8.1.0 1519 1520- Core: 1521 . Fixed inclusion order for phpize builds on Windows. (cmb) 1522 . Added missing hashtable insertion APIs for arr/obj/ref. (Sara) 1523 . Implemented FR #77372 (Relative file path is removed from uploaded file). 1524 (Björn Tantau) 1525 . Fixed bug #81607 (CE_CACHE allocation with concurrent access). (Nikita, 1526 Dmitry) 1527 . Fixed bug #81507 (Fiber does not compile on AIX). (Clément Chigot) 1528 . Fixed bug #78647 (SEGFAULT in zend_do_perform_implementation_check). 1529 (Nikita) 1530 . Fixed bug #81518 (Header injection via default_mimetype / default_charset). 1531 (cmb) 1532 . Fixed bug #75941 (Fix compile failure on Solaris with clang). (Jaromír 1533 Doleček) 1534 . Fixed bug #81380 (Observer may not be initialized properly). (krakjoe) 1535 . Fixed bug #81514 (Using Enum as key in WeakMap triggers GC + SegFault). 1536 (Nikita) 1537 . Fixed bug #81520 (TEST_PHP_CGI_EXECUTABLE badly set in run-tests.php). 1538 (Remi) 1539 . Fixed bug #81377 (unset() of $GLOBALS sub-key yields warning). (Nikita) 1540 . Fixed bug #81342 (New ampersand token parsing depends on new line after it). 1541 (Nikita) 1542 . Fixed bug #81280 (Unicode characters in cli.prompt causes segfault). 1543 (krakjoe) 1544 . Fixed bug #81192 ("Declaration should be compatible with" gives incorrect 1545 line number with traits). (Nikita) 1546 . Fixed bug #78919 (CLI server: insufficient cleanup if request startup 1547 fails). (cataphract, cmb) 1548 . Fixed bug #81303 (match error message improvements). (krakjoe) 1549 . Fixed bug #81238 (Fiber support missing for Solaris Sparc). (trowski) 1550 . Fixed bug #81237 (Comparison of fake closures doesn't work). (krakjoe) 1551 . Fixed bug #81202 (powerpc64 build fails on fibers). (krakjoe) 1552 . Fixed bug #80072 (Cyclic unserialize in TMPVAR operand may leak). (Nikita) 1553 . Fixed bug #81163 (__sleep allowed to return non-array). (krakjoe) 1554 . Fixed bug #75474 (function scope static variables are not bound to a unique 1555 function). (Nikita) 1556 . Fixed bug #53826 (__callStatic fired in base class through a parent call if 1557 the method is private). (Nikita) 1558 . Fixed bug #81076 (incorrect debug info on Closures with implicit binds). 1559 (krakjoe) 1560 1561- CLI: 1562 . Fixed bug #81496 (Server logs incorrect request method). (lauri) 1563 1564- COM: 1565 . Dispatch using LANG_NEUTRAL instead of LOCALE_SYSTEM_DEFAULT. (Dmitry 1566 Maksimov) 1567 1568- Curl: 1569 . Fixed bug #81085 (Support CURLOPT_SSLCERT_BLOB for cert strings). 1570 (camporter) 1571 1572- Date: 1573 . Fixed bug #81458 (Regression Incorrect difference after timezone change). 1574 (Derick) 1575 . Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2). 1576 (cmb) 1577 . Fixed bug #81504 (Incorrect timezone transition details for POSIX data). 1578 (Derick) 1579 . Fixed bug #80998 (Missing second with inverted interval). (Derick) 1580 . Speed up finding timezone offset information. (Derick) 1581 . Fixed bug #79580 (date_create_from_format misses leap year). (Derick) 1582 . Fixed bug #80963 (DateTimeZone::getTransitions() truncated). (Derick) 1583 . Fixed bug #80974 (Wrong diff between 2 dates in different timezones). 1584 (Derick) 1585 . Fixed bug #80998 (Missing second with inverted interval). (Derick) 1586 . Fixed bug #81097 (DateTimeZone silently falls back to UTC when providing an 1587 offset with seconds). (Derick) 1588 . Fixed bug #81106 (Regression in 8.1: add() now truncate ->f). (Derick) 1589 . Fixed bug #81273 (Date interval calculation not correct). (Derick) 1590 . Fixed bug #52480 (Incorrect difference using DateInterval). (Derick) 1591 . Fixed bug #62326 (date_diff() function returns false result). (Derick) 1592 . Fixed bug #64992 (dst not handled past 2038). (Derick) 1593 . Fixed bug #65003 (Wrong date diff). (Derick) 1594 . Fixed bug #66545 (DateTime. diff returns negative values). (Derick) 1595 . Fixed bug #68503 (date_diff on two dates with timezone set localised 1596 returns wrong results). (Derick) 1597 . Fixed bug #69806 (Incorrect date from timestamp). (Derick) 1598 . Fixed bug #71700 (Extra day on diff between begin and end of march 2016). 1599 (Derick) 1600 . Fixed bug #71826 (DateTime::diff confuse on timezone 'Asia/Tokyo'). (Derick) 1601 . Fixed bug #73460 (Datetime add not realising it already applied DST 1602 change). (Derick) 1603 . Fixed bug #74173 (DateTimeImmutable::getTimestamp() triggers DST switch in 1604 incorrect time). (Derick) 1605 . Fixed bug #74274 (Handling DST transitions correctly). (Derick) 1606 . Fixed bug #74524 (Date diff is bad calculated, in same time zone). (Derick) 1607 . Fixed bug #75167 (DateTime::add does only care about backward DST 1608 transition, not forward). (Derick) 1609 . Fixed bug #76032 (DateTime->diff having issues with leap days for 1610 timezones ahead of UTC). (Derick) 1611 . Fixed bug #76374 (Date difference varies according day time). (Derick) 1612 . Fixed bug #77571 (DateTime's diff DateInterval incorrect in timezones from 1613 UTC+01:00 to UTC+12:00). (Derick) 1614 . Fixed bug #78452 (diff makes wrong in hour for Asia/Tehran). (Derick) 1615 . Fixed bug #79452 (DateTime::diff() generates months differently between 1616 time zones). (Derick) 1617 . Fixed bug #79698 (timelib mishandles future timestamps (triggered by 'zic 1618 -b slim')). (Derick) 1619 . Fixed bug #79716 (Invalid date time created (with day "00")). (Derick) 1620 . Fixed bug #80610 (DateTime calculate wrong with DateInterval). (Derick) 1621 . Fixed bug #80664 (DateTime objects behave incorrectly around DST 1622 transition). (Derick) 1623 . Fixed bug #80913 (DateTime(Immutable)::sub around DST yield incorrect 1624 time). (Derick) 1625 1626- DBA: 1627 . Fixed bug #81588 (TokyoCabinet driver leaks memory). (girgias) 1628 1629- DOM: 1630 . Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID). 1631 (Viktor Volkov) 1632 1633- FFI: 1634 . Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not 1635 defined). (Dmitry) 1636 1637- Filter: 1638 . Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing). 1639 (cmb, Nikita) 1640 1641- FPM: 1642 . Fixed bug #81513 (Future possibility for heap overflow in FPM zlog). 1643 (Jakub Zelenka) 1644 . Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege 1645 escalation) (CVE-2021-21703). (Jakub Zelenka) 1646 . Added openmetrics status format. (Cees-Jan Kiewiet) 1647 . Enable process renaming on macOS. (devnexen) 1648 . Added pm.max_spawn_rate option to configure max spawn child processes rate. 1649 (Paulius Sapragonas) 1650 . Fixed bug #65800 (Events port mechanism). (psumbera) 1651 1652- FTP: 1653 . Convert resource<ftp> to object \FTP\Connection. (Sara) 1654 1655- GD: 1656 . Fixed bug #71316 (libpng warning from imagecreatefromstring). (cmb) 1657 . Convert resource<gd font> to object \GdFont. (Sara) 1658 1659- hash: 1660 . Implemented FR #68109 (Add MurmurHash V3). (Anatol, Michael) 1661 . Implemented FR #73385 (Add xxHash support). (Anatol) 1662 1663- JSON: 1664 . Fixed bug #81532 (Change of $depth behaviour in json_encode() on PHP 8.1). 1665 (Nikita) 1666 . Fixed bug GH-8238 (Register JSON_ERROR_NON_BACKED_ENUM constant). (ilutov) 1667 1668- LDAP: 1669 . Convert resource<ldap link> to object \LDAP\Connection. (Máté) 1670 . Convert resource<ldap result> to object \LDAP\Result. (Máté) 1671 . Convert resource<ldap result entry> to object \LDAP\ResultEntry. (Máté) 1672 1673- MBString: 1674 . Fixed bug #76167 (mbstring may use pointer from some previous request). 1675 (cmb, cataphract) 1676 . Fixed bug #81390 (mb_detect_encoding() regression). (alexdowad) 1677 . Fixed bug #81349 (mb_detect_encoding misdetcts ASCII in some cases). 1678 (Nikita) 1679 . Fixed bug #81298 (mb_detect_encoding() segfaults when 7bit encoding is 1680 specified). (Nikita) 1681 1682- MySQLi: 1683 . Fixed bug #70372 (Emulate mysqli_fetch_all() for libmysqlclient). (Nikita) 1684 . Fixed bug #80330 (Replace language in APIs and source code/docs). 1685 (Darek Ślusarczyk) 1686 . Fixed bug #80329 (Add option to specify LOAD DATA LOCAL white list folder 1687 (including libmysql)). (Darek Ślusarczyk) 1688 1689- MySQLnd: 1690 . Fixed bug #63327 (Crash (Bus Error) in mysqlnd due to wrong alignment). 1691 (Nikita) 1692 . Fixed bug #80761 (PDO uses too much memory). (Nikita) 1693 1694- Opcache: 1695 . Fixed bug #81409 (Incorrect JIT code for ADD with a reference to array). 1696 (Dmitry) 1697 . Fixed bug #81255 (Memory leak in PHPUnit with functional JIT). 1698 . Fixed bug #80959 (infinite loop in building cfg during JIT compilation). 1699 (Nikita, Dmitry) 1700 . Fixed bug #81225 (Wrong result with pow operator with JIT enabled). 1701 (Dmitry) 1702 . Fixed bug #81249 (Intermittent property assignment failure with JIT 1703 enabled). (Dmitry) 1704 . Fixed bug #81256 (Assertion `zv != ((void *)0)' failed for "preload" with 1705 JIT). (Dmitry) 1706 . Fixed bug #81133 (building opcache with phpize fails). (krakjoe) 1707 . Fixed bug #81136 (opcache header not installed). (krakjoe) 1708 . Added inheritance cache. (Dmitry) 1709 1710- OpenSSL: 1711 . Fixed bug #81502 ($tag argument of openssl_decrypt() should accept 1712 null/empty string). (Nikita) 1713 . Bump minimal OpenSSL version to 1.0.2. (Jakub Zelenka) 1714 1715- PCRE: 1716 . Fixed bug #81424 (PCRE2 10.35 JIT performance regression). (cmb) 1717 . Bundled PCRE2 is 10.37. 1718 1719- PDO: 1720 . Fixed bug #40913 (PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for 1721 fetching a BLOB). (Nikita) 1722 1723- PDO MySQL: 1724 . Fixed bug #80908 (PDO::lastInsertId() return wrong). (matt) 1725 . Fixed bug #81037 (PDO discards error message text from prepared 1726 statement). (Kamil Tekiela) 1727 1728- PDO OCI: 1729 . Fixed bug #77120 (Support 'success with info' at connection). 1730 (Sergei Morozov) 1731 1732- PDO ODBC: 1733 . Implement PDO_ATTR_SERVER_VERSION and PDO_ATTR_SERVER_INFO for 1734 PDO::getAttribute(). (Calvin Buckley) 1735 1736- PDO PgSQL: 1737 . Fixed bug #81343 (pdo_pgsql: Inconsitent boolean conversion after calling 1738 closeCursor()). (Philip Hofstetter) 1739 1740- PDO SQLite: 1741 . Fixed bug #38334 (Proper data-type support for PDO_SQLITE). (Nikita) 1742 1743- PgSQL: 1744 . Fixed bug #81509 (pg_end_copy still expects a resource). (Matteo) 1745 . Convert resource<pgsql link> to object \PgSql\Connection. (Máté) 1746 . Convert resource<pgsql result> to object \PgSql\Result. (Máté) 1747 . Convert resource<pgsql large object> to object \PgSql\Lob. (Máté) 1748 1749- Phar: 1750 . Use SHA256 by default for signature. (remi) 1751 . Add support for OpenSSL_SHA256 and OpenSSL_SHA512 signature. (remi) 1752 1753- phpdbg: 1754 . Fixed bug #81135 (unknown help topic causes assertion failure). (krakjoe) 1755 1756- PSpell: 1757 . Convert resource<pspell> to object \PSpell\Dictionary. (Sara) 1758 . Convert resource<pspell config> to object \PSpell\Config. (Sara) 1759 1760- readline: 1761 . Fixed bug #72998 (invalid read in readline completion). (krakjoe) 1762 1763- Reflection: 1764 . Fixed bug #81611 (ArgumentCountError when getting default value from 1765 ReflectionParameter with new). (Cameron Porter) 1766 . Fixed bug #81630 (PHP 8.1: ReflectionClass->getTraitAliases() crashes with 1767 Internal error). (Nikita) 1768 . Fixed bug #81457 (Enum: ReflectionMethod->getDeclaringClass() return a 1769 ReflectionClass). (Nikita) 1770 . Fixed bug #81474 (Make ReflectionEnum and related class non-final). (Nikita) 1771 . Fixed bug #80821 (ReflectionProperty::getDefaultValue() returns current 1772 value for statics). (Nikita) 1773 . Fixed bug #80564 (ReflectionProperty::__toString() renders current value, 1774 not default value). (Nikita) 1775 . Fixed bug #80097 (ReflectionAttribute is not a Reflector). (beberlei) 1776 . Fixed bug #81200 (no way to determine if Closure is static). (krakjoe) 1777 . Implement ReflectionFunctionAbstract::getClosureUsedVariables. (krakjoe) 1778 1779- Shmop: 1780 . Fixed bug #81407 (shmop_open won't attach and causes php to crash). (cmb) 1781 1782- SimpleXML: 1783 . Fixed bug #81325 (Segfault in zif_simplexml_import_dom). (remi) 1784 1785- SNMP: 1786 . Implement SHA256 and SHA512 for security protocol. (remi) 1787 1788- Sodium: 1789 . Added the XChaCha20 stream cipher functions. (P.I.E. Security Team) 1790 . Added the Ristretto255 functions, which are available in libsodium 1.0.18. 1791 (P.I.E. Security Team) 1792 1793- SPL: 1794 . Fixed bug #66588 (SplFileObject::fgetcsv incorrectly returns a row on 1795 premature EOF). (Aliaksandr Bystry) 1796 . Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free). 1797 (cmb, Nikita, Tyson Andre) 1798 . Fixed bug #81477 (LimitIterator + SplFileObject regression in 8.0.1). (cmb) 1799 . Fixed bug #81112 (Special json_encode behavior for SplFixedArray). (Nikita) 1800 . Fixed bug #80945 ("Notice: Undefined index" on unset() ArrayObject 1801 non-existing key). (Nikita) 1802 . Fixed bug #80724 (FilesystemIterator::FOLLOW_SYMLINKS remove KEY_AS_FILE 1803 from bitmask). (Cameron Porter) 1804 1805- Standard: 1806 . Fixed bug #81441 (gethostbyaddr('::1') returns ip instead of name after 1807 calling some other method). (Nikita) 1808 . Fixed bug #81491 (Incorrectly using libsodium for argon2 hashing). 1809 (Dan Pock) 1810 . Fixed bug #81142 (PHP 7.3+ memory leak when unserialize() is used on an 1811 associative array). (Nikita) 1812 . Fixed bug #81111 (Serialization is unexpectedly allowed on anonymous classes 1813 with __serialize()). (Nikita) 1814 . Fixed bug #81137 (hrtime breaks build on OSX before Sierra). (krakjoe) 1815 . Fixed bug #77627 (method_exists on Closure::__invoke inconsistency). 1816 (krakjoe) 1817 1818- Streams: 1819 . Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper). 1820 (cmb) 1821 1822- XML: 1823 . Fixed bug #79971 (special character is breaking the path in xml function) 1824 (CVE-2021-21707). (cmb) 1825 . Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace). 1826 (Aliaksandr Bystry, cmb) 1827 1828- Zip: 1829 . Fixed bug #81490 (ZipArchive::extractTo() may leak memory). (cmb, Remi) 1830 . Fixed bug #77978 (Dirname ending in colon unzips to wrong dir). (cmb) 1831 . Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination) 1832 (CVE-2021-21706). (cmb) 1833 . Fixed bug #80833 (ZipArchive::getStream doesn't use setPassword). (Remi) 1834