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