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