1PHP NEWS 2||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 3?? ??? ????, PHP 8.3.14 4 5- Cli: 6 . Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server 7 started through shebang). (ilutov) 8 9- COM: 10 . Fixed out of bound writes to SafeArray data. (cmb) 11 12- Core: 13 . Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled 14 with Xcode 16 clang on macOS 15). (nielsdos) 15 . Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646). (Arnaud) 16 . Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for 17 call trampoline). (ilutov) 18 . Fixed bug GH-16509 (Incorrect line number in function redeclaration error). 19 (ilutov) 20 . Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed 21 early bound classes). (ilutov) 22 . Fixed bug GH-16648 (Use-after-free during array sorting). (ilutov) 23 24- Curl: 25 . Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if 26 curl_multi_add_handle fails). (timwolla) 27 28- Date: 29 . Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset). 30 (cmb) 31 . Fixed bug GH-14732 (date_sun_info() fails for non-finite values). (cmb) 32 33- DBA: 34 . Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams). (cmb) 35 36- DOM: 37 . Fixed bug GH-16316 (DOMXPath breaks when not initialized properly). 38 (nielsdos) 39 . Add missing hierarchy checks to replaceChild. (nielsdos) 40 . Fixed bug GH-16336 (Attribute intern document mismanagement). (nielsdos) 41 . Fixed bug GH-16338 (Null-dereference in ext/dom/node.c). (nielsdos) 42 . Fixed bug GH-16473 (dom_import_simplexml stub is wrong). (nielsdos) 43 . Fixed bug GH-16533 (Segfault when adding attribute to parent that is not 44 an element). (nielsdos) 45 . Fixed bug GH-16535 (UAF when using document as a child). (nielsdos) 46 . Fixed bug GH-16593 (Assertion failure in DOM->replaceChild). (nielsdos) 47 . Fixed bug GH-16595 (Another UAF in DOM -> cloneNode). (nielsdos) 48 49- EXIF: 50 . Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a 51 real file). (nielsdos, cmb) 52 53- FFI: 54 . Fixed bug GH-16397 (Segmentation fault when comparing FFI object). 55 (nielsdos) 56 57- Filter: 58 . Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen). (cmb) 59 60- FPM: 61 . Fixed bug GH-16628 (FPM logs are getting corrupted with this log 62 statement). (nielsdos) 63 64- GD: 65 . Fixed bug GH-16334 (imageaffine overflow on matrix elements). 66 (David Carlier) 67 . Fixed bug GH-16427 (Unchecked libavif return values). (cmb) 68 . Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007). 69 (nielsdos) 70 71- GMP: 72 . Fixed floating point exception bug with gmp_pow when using 73 large exposant values. (David Carlier). 74 . Fixed bug GH-16411 (gmp_export() can cause overflow). (cmb) 75 . Fixed bug GH-16501 (gmp_random_bits() can cause overflow). 76 (David Carlier) 77 . Fixed gmp_pow() overflow bug with large base/exponents. 78 (David Carlier) 79 . Fixed segfaults and other issues related to operator overloading with 80 GMP objects. (Girgias) 81 82- MBstring: 83 . Fixed bug GH-16361 (mb_substr overflow on start/length arguments). 84 (David Carlier) 85 86- Opcache: 87 . Fixed bug GH-16408 (Array to string conversion warning emitted in 88 optimizer). (ilutov) 89 90- OpenSSL: 91 . Fixed bug GH-16357 (openssl may modify member types of certificate arrays). 92 (cmb) 93 . Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow). 94 (cmb) 95 . Fix various memory leaks on error conditions in openssl_x509_parse(). 96 (nielsdos) 97 98- PDO_ODBC: 99 . Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values). (cmb) 100 101- Phar: 102 . Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808). (nielsdos) 103 104- PHPDBG: 105 . Fixed bug GH-16174 (Empty string is an invalid expression for ev). (cmb) 106 107- Reflection: 108 . Fixed bug GH-16601 (Memory leak in Reflection constructors). (nielsdos) 109 110- Session: 111 . Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params). 112 (nielsdos) 113 . Fixed bug GH-16290 (overflow on cookie_lifetime ini value). 114 (David Carlier) 115 116- SOAP: 117 . Fixed bug GH-16318 (Recursive array segfaults soap encoding). (nielsdos) 118 . Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient). 119 (nielsdos) 120 121- Sockets: 122 . Fixed bug with overflow socket_recvfrom $length argument. (David Carlier) 123 124- SPL: 125 . Fixed bug GH-16337 (Use-after-free in SplHeap). (nielsdos) 126 . Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()). 127 (ilutov) 128 . Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()). (ilutov) 129 . Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()). (ilutov) 130 . Fixed bug GH-16588 (UAF in Observer->serialize). (nielsdos) 131 . Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed 132 SplFileObject::__constructor). (Girgias) 133 . Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()). (nielsdos) 134 . Fixed bug GH-14687 (segfault on SplObjectIterator instance). 135 (David Carlier) 136 . Fixed bug GH-16604 (Memory leaks in SPL constructors). (nielsdos) 137 . Fixed bug GH-16646 (UAF in ArrayObject::unset() and 138 ArrayObject::exchangeArray()). (ilutov) 139 140- Standard: 141 . Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with 142 bail enabled). (ilutov) 143 144- SysVMsg: 145 . Fixed bug GH-16592 (msg_send() crashes when a type does not properly 146 serialized). (David Carlier / cmb) 147 148- SysVShm: 149 . Fixed bug GH-16591 (Assertion error in shm_put_var). (nielsdos, cmb) 150 151- XMLReader: 152 . Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c). 153 (nielsdos) 154 155- Zlib: 156 . Fixed bug GH-16326 (Memory management is broken for bad dictionaries.) 157 (cmb) 158 15924 Oct 2024, PHP 8.3.13 160 161- Calendar: 162 . Fixed GH-16240: jdtounix overflow on argument value. (David Carlier) 163 . Fixed GH-16241: easter_days/easter_date overflow on year argument. 164 (David Carlier) 165 . Fixed GH-16263: jddayofweek overflow. (cmb) 166 . Fixed GH-16234: jewishtojd overflow. (nielsdos) 167 168- CLI: 169 . Fixed bug GH-16137: duplicate http headers when set several times by 170 the client. (David Carlier) 171 172- Core: 173 . Fixed bug GH-16054 (Segmentation fault when resizing hash table iterator 174 list while adding). (nielsdos) 175 . Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER). (cmb) 176 . Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to 177 exception). (ilutov) 178 . Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of 179 nested generator frame). (ilutov) 180 . Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c). (Arnaud) 181 . Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c). (Arnaud) 182 . Fixed bug GH-16233 (Observer segfault when calling user function in 183 internal function via trampoline). (nielsdos) 184 185- DOM: 186 . Fixed bug GH-16039 (Segmentation fault (access null pointer) in 187 ext/dom/parentnode/tree.c). (nielsdos) 188 . Fixed bug GH-16149 (Null pointer dereference in 189 DOMElement->getAttributeNames()). (nielsdos) 190 . Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c). 191 (nielsdos) 192 . Fixed bug GH-16150 (Use after free in php_dom.c). (nielsdos) 193 . Fixed bug GH-16152 (Memory leak in DOMProcessingInstruction/DOMDocument). 194 (nielsdos) 195 196- JSON: 197 . Fixed bug GH-15168 (stack overflow in json_encode()). (nielsdos) 198 199- GD: 200 . Fixed bug GH-16232 (bitshift overflow on wbmp file content reading / 201 fix backport from upstream). (David Carlier) 202 . Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value) 203 (David Carlier) 204 . Fixed bug GH-16274 (imagescale underflow on RBG channels / 205 fix backport from upstream). (David Carlier) 206 207- LDAP: 208 . Fixed bug GH-16032 (Various NULL pointer dereferencements in 209 ldap_modify_batch()). (Girgias) 210 . Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search() 211 when LDAPs array is not a list). (Girgias) 212 . Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated 213 by ZMM.). (Girgias) 214 . Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a 215 proper dictionary). (Girgias) 216 217- MBString: 218 . Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()). 219 (nielsdos) 220 221- OpenSSL: 222 . Fixed stub for openssl_csr_new. (Jakub Zelenka) 223 224- PCRE: 225 . Fixed bug GH-16189 (underflow on offset argument). (David Carlier) 226 . Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c). 227 (nielsdos) 228 229- PHPDBG: 230 . Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs). (cmb) 231 . Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error). 232 (cmb) 233 234- Reflection: 235 . Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c). 236 (DanielEScherzer) 237 238- SAPI: 239 . Fixed bug GH-15395 (php-fpm: zend_mm_heap corrupted with cgi-fcgi request). 240 (Jakub Zelenka, David Carlier) 241 242- SimpleXML: 243 . Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c). 244 (nielsdos) 245 246- Sockets: 247 . Fixed bug GH-16267 (socket_strerror overflow on errno argument). 248 (David Carlier) 249 250- SOAP: 251 . Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP 252 headers in array form). (nielsdos) 253 . Fixed bug #62900 (Wrong namespace on xsd import error message). (nielsdos) 254 . Fixed bug GH-15711 (SoapClient can't convert BackedEnum to scalar value). 255 (nielsdos) 256 . Fixed bug GH-16237 (Segmentation fault when cloning SoapServer). (nielsdos) 257 . Fix Soap leaking http_msg on error. (nielsdos) 258 . Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460). 259 (nielsdos) 260 . Fixed bug GH-16259 (Soap segfault when classmap instantiation fails). 261 (nielsdos) 262 263- SPL: 264 . Fixed bug GH-15918 (Assertion failure in ext/spl/spl_fixedarray.c). 265 (nielsdos) 266 267- Standard: 268 . Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c). (Arnaud) 269 . Fixed bug GH-15169 (stack overflow when var serialization in 270 ext/standard/var). (nielsdos) 271 272- Streams: 273 . Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c). 274 (nielsdos) 275 . Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c). 276 (cmb) 277 278- TSRM: 279 . Prevent closing of unrelated handles. (cmb) 280 281- Windows: 282 . Fixed minimal Windows version. (cmb) 283 28426 Sep 2024, PHP 8.3.12 285 286- CGI: 287 . Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection 288 Vulnerability). (CVE-2024-8926) (nielsdos) 289 . Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is 290 bypassable due to the environment variable collision). (CVE-2024-8927) 291 (nielsdos) 292 293- Core: 294 . Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer). 295 (zeriyoshi) 296 . Fixed bug GH-15515 (Configure error grep illegal option q). (Peter Kokot) 297 . Fixed bug GH-15514 (Configure error: genif.sh: syntax error). (Peter Kokot) 298 . Fixed bug GH-15565 (--disable-ipv6 during compilation produces error 299 EAI_SYSTEM not found). (nielsdos) 300 . Fixed bug GH-15587 (CRC32 API build error on arm 32-bit). 301 (Bernd Kuhls, Thomas Petazzoni) 302 . Fixed bug GH-15330 (Do not scan generator frames more than once). (Arnaud) 303 . Fixed uninitialized lineno in constant AST of internal enums. (ilutov) 304 305- Curl: 306 . FIxed bug GH-15547 (curl_multi_select overflow on timeout argument). 307 (David Carlier) 308 309- DOM: 310 . Fixed bug GH-15551 (Segmentation fault (access null pointer) in 311 ext/dom/xml_common.h). (nielsdos) 312 . Fixed bug GH-15654 (Signed integer overflow in ext/dom/nodelist.c). 313 (nielsdos) 314 315- Fileinfo: 316 . Fixed bug GH-15752 (Incorrect error message for finfo_file 317 with an empty filename argument). (DanielEScherzer) 318 319- FPM: 320 . Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). 321 (CVE-2024-9026) (Jakub Zelenka) 322 323- MySQLnd: 324 . Fixed bug GH-15432 (Heap corruption when querying a vector). (cmb, 325 Kamil Tekiela) 326 327- Opcache: 328 . Fixed bug GH-15661 (Access null pointer in 329 Zend/Optimizer/zend_inference.c). (nielsdos) 330 . Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h). 331 (nielsdos) 332 333- SAPI: 334 . Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). 335 (CVE-2024-8925) (Arnaud) 336 337- Standard: 338 . Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c). (cmb) 339 340- Streams: 341 . Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated). 342 (cmb) 343 34429 Aug 2024, PHP 8.3.11 345 346- Core: 347 . Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c). 348 (nielsdos) 349 . Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c). (nielsdos) 350 . Fixed bug GH-13330 (Append -Wno-implicit-fallthrough flag conditionally). 351 (Peter Kokot) 352 . Fix uninitialized memory in network.c. (nielsdos) 353 . Fixed bug GH-15108 (Segfault when destroying generator during shutdown). 354 (Arnaud) 355 . Fixed bug GH-15275 (Crash during GC of suspended generator delegate). 356 (Arnaud) 357 358- Curl: 359 . Fixed case when curl_error returns an empty string. 360 (David Carlier) 361 362- DOM: 363 . Fix UAF when removing doctype and using foreach iteration. (nielsdos) 364 365- FFI: 366 . Fixed bug GH-14286 (ffi enum type (when enum has no name) make memory 367 leak). (nielsdos, dstogov) 368 369- Hash: 370 . Fix crash when converting array data for array in shm in xxh3. (nielsdos) 371 372- Intl: 373 . Fixed bug GH-15087 (IntlChar::foldCase()'s $option is not optional). (cmb) 374 375- Opcache: 376 . Fixed bug GH-13817 (Segmentation fault for enabled observers after pass 4). 377 (Bob) 378 . Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement). 379 (Arnaud, nielsdos) 380 381- Output: 382 . Fixed bug GH-15179 (Segmentation fault (null pointer dereference) in 383 ext/standard/url_scanner_ex.re). (nielsdos) 384 385- PDO_Firebird: 386 . Fix bogus fallthrough path in firebird_handle_get_attribute(). (nielsdos) 387 388- PHPDBG: 389 . Fixed bug GH-13199 (EOF emits redundant prompt in phpdbg local console mode 390 with libedit/readline). (Peter Kokot) 391 . Fixed bug GH-15268 (heap buffer overflow in phpdbg 392 (zend_hash_num_elements() Zend/zend_hash.h)). (nielsdos) 393 . Fixed bug GH-15210 use-after-free on watchpoint allocations. (nielsdos) 394 395- Random: 396 . Fixed part of bug GH-15381, checking getrandom availability on solaris. 397 (David Carlier) 398 399- Soap: 400 . Fixed bug #55639 (Digest autentication dont work). (nielsdos) 401 . Fix SoapFault property destruction. (nielsdos) 402 . Fixed bug GH-15252 (SOAP XML broken since PHP 8.3.9 when using classmap 403 constructor option). (nielsdos) 404 405- Standard: 406 . Fix passing non-finite timeout values in stream functions. (nielsdos) 407 . Fixed GH-14780 p(f)sockopen timeout overflow. (David Carlier) 408 . Fixed GH-15653 overflow on fgetcsv length parameter. (David Carlier) 409 410- Streams: 411 . Fixed bug GH-15028 (Memory leak in ext/phar/stream.c). (nielsdos) 412 . Fixed bug GH-15034 (Integer overflow on stream_notification_callback 413 byte_max parameter with files bigger than 2GB). (nielsdos) 414 . Reverted fix for GH-14930 (Custom stream wrapper dir_readdir output 415 truncated to 255 characters). (Jakub Zelenka) 416 417- Tidy: 418 . Fix memory leaks in ext/tidy basedir restriction code. (nielsdos) 419 42001 Aug 2024, PHP 8.3.10 421 422- Core: 423 . Fixed bug GH-13922 (Fixed support for systems with 424 sysconf(_SC_GETPW_R_SIZE_MAX) == -1). (Arnaud) 425 . Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks). (Arnaud) 426 . Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt. 427 (nielsdos) 428 . Fixed OSS-Fuzz #69765. (nielsdos) 429 . Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h). (nielsdos) 430 . Fixed bug GH-14969 (Use-after-free in property coercion with __toString()). 431 (ilutov) 432 . Fixed bug GH-14961 (Comment between -> and keyword results in parse error). 433 (ilutov) 434 435- Dom: 436 . Fixed bug GH-14702 (DOMDocument::xinclude() crash). (nielsdos) 437 438- Fileinfo: 439 . Fixed bug GH-14888 (README.REDIST.BINS refers to non-existing LICENSE). 440 (cmb) 441 442- Gd: 443 . ext/gd/tests/gh10614.phpt: skip if no PNG support. (orlitzky) 444 . restored warning instead of fata error. (dryabov) 445 446- LibXML: 447 . Fixed bug GH-14563 (Build failure with libxml2 v2.13.0). (nielsdos) 448 449- Opcache: 450 . Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that 451 opcache.jit is implictly disabled). (nielsdos) 452 453- Output: 454 . Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with 455 empty output buffer). (nielsdos) 456 457- PDO: 458 . Fixed bug GH-14712 (Crash with PDORow access to null property). 459 (David Carlier) 460 461- Phar: 462 . Fixed bug GH-14603 (null string from zip entry). 463 (David Carlier) 464 465- PHPDBG: 466 . Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1). 467 (David Carlier) 468 . Fixed bug GH-14553 (echo output trimmed at NULL byte). (nielsdos) 469 470- Shmop: 471 . Fixed bug GH-14537 (shmop Windows 11 crashes the process). (nielsdos) 472 473- SPL: 474 . Fixed bug GH-14639 (Member access within null pointer in 475 ext/spl/spl_observer.c). (nielsdos) 476 477- Standard: 478 . Fixed bug GH-14775 (range function overflow with negative step argument). 479 (David Carlier) 480 . Fix 32-bit wordwrap test failures. (orlitzky) 481 . Fixed bug GH-14774 (time_sleep_until overflow). (David Carlier) 482 483- Streams: 484 . Fixed bug GH-14930 (Custom stream wrapper dir_readdir output truncated to 485 255 characters in PHP 8.3). (Joe Cai) 486 487- Tidy: 488 . Fix memory leak in tidy_repair_file(). (nielsdos) 489 490- Treewide: 491 . Fix compatibility with libxml2 2.13.2. (nielsdos) 492 493- XML: 494 . Move away from to-be-deprecated libxml fields. (nielsdos) 495 . Fixed bug GH-14834 (Error installing PHP when --with-pear is used). 496 (nielsdos) 497 49820 Jun 2024, PHP 8.3.9 499 500- Core: 501 . Fixed bug GH-14315 (Incompatible pointer type warnings). (Peter Kokot) 502 . Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14 503 when running on Apple Silicon). (Manuel Kress) 504 . Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from 505 values during Generator->throw()). (Bob) 506 . Fixed bug GH-14456 (Attempting to initialize class with private constructor 507 calls destructor). (Girgias) 508 . Fixed bug GH-14510 (memleak due to missing pthread_attr_destroy()-call). 509 (Florian Engelhardt) 510 . Fixed bug GH-14549 (Incompatible function pointer type for fclose). 511 (Ryan Carsten Schmidt) 512 513- BCMath: 514 . Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0). (Girgias) 515 516- Curl: 517 . Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0). (nielsdos) 518 519- DOM: 520 . Fixed bug GH-14343 (Memory leak in xml and dom). (nielsdos) 521 522- FPM: 523 . Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are 524 ignored in status pool). (Wilhansen Li, Pierrick Charron) 525 526- GD: 527 . Fix parameter numbers for imagecolorset(). (Giovanni Giacobbi) 528 529- Intl: 530 . Fix reference handling in SpoofChecker. (nielsdos) 531 532- MySQLnd: 533 . Partially fix bug GH-10599 (Apache crash on Windows when using a 534 self-referencing anonymous function inside a class with an active 535 mysqli connection). (nielsdos) 536 537- Opcache: 538 . Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime). 539 (ilutov) 540 . Fixed TLS access in JIT on FreeBSD/amd64. (Arnaud) 541 . Fixed bug GH-11188 (Error when building TSRM in ARM64). (nielsdos) 542 543- PDO ODBC: 544 . Fixed bug GH-14367 (incompatible SDWORD type with iODBC). (Calvin Buckley) 545 546- PHPDBG: 547 . Fixed bug GH-13681 (segfault on watchpoint addition failure). (David Carlier) 548 549- Soap: 550 . Fixed bug #47925 (PHPClient can't decompress response). (nielsdos) 551 . Fix missing error restore code. (nielsdos) 552 . Fix memory leak if calling SoapServer::setObject() twice. (nielsdos) 553 . Fix memory leak if calling SoapServer::setClass() twice. (nielsdos) 554 . Fix reading zlib ini settings in ext-soap. (nielsdos) 555 . Fix memory leaks with string function name lookups. (nielsdos) 556 . Fixed bug #69280 (SoapClient classmap doesn't support fully qualified class 557 name). (nielsdos) 558 . Fixed bug #76232 (SoapClient Cookie Header Semicolon). (nielsdos) 559 . Fixed memory leaks when calling SoapFault::__construct() twice. (Girgias) 560 561- Sodium: 562 . Fix memory leaks in ext/sodium on failure of some functions. (nielsdos) 563 564- SPL: 565 . Fixed bug GH-14290 (Member access within null pointer in extension spl). 566 (nielsdos) 567 568- Standard: 569 . Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract 570 namespace Unix sockets). (Derick) 571 572- Streams: 573 . Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not 574 allocated and malloc: double free for ptr errors). (nielsdos) 575 57606 Jun 2024, PHP 8.3.8 577 578- CGI: 579 . Fixed buffer limit on Windows, replacing read call usage by _read. 580 (David Carlier) 581 . Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection 582 in PHP-CGI). (CVE-2024-4577) (nielsdos) 583 584- CLI: 585 . Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles 586 quoted heredoc literals.). (nielsdos) 587 588- Core: 589 . Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for 590 non-compile-time expressions). (ilutov) 591 592- DOM: 593 . Fix crashes when entity declaration is removed while still having entity 594 references. (nielsdos) 595 . Fix references not handled correctly in C14N. (nielsdos) 596 . Fix crash when calling childNodes next() when iterator is exhausted. 597 (nielsdos) 598 . Fix crash in ParentNode::append() when dealing with a fragment 599 containing text nodes. (nielsdos) 600 601- Filter: 602 . Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). 603 (CVE-2024-5458) (nielsdos) 604 605- FPM: 606 . Fix bug GH-14175 (Show decimal number instead of scientific notation in 607 systemd status). (Benjamin Cremer) 608 609- Hash: 610 . ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__` 611 (Saki Takamachi) 612 613- Intl: 614 . Fixed build regression on systems without C++17 compilers. (Calvin Buckley, 615 Peter Kokot) 616 617- MySQLnd: 618 . Fix bug GH-14255 (mysqli_fetch_assoc reports error from 619 nested query). (Kamil Tekiela) 620 621- Opcache: 622 . Fixed bug GH-14109 (Fix accidental persisting of internal class constant in 623 shm). (ilutov) 624 625- OpenSSL: 626 . The openssl_private_decrypt function in PHP, when using PKCS1 padding 627 (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack 628 unless it is used with an OpenSSL version that includes the changes from this pull 629 request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). 630 These changes are part of OpenSSL 3.2 and have also been backported to stable 631 versions of various Linux distributions, as well as to the PHP builds provided for 632 Windows since the previous release. All distributors and builders should ensure that 633 this version is used to prevent PHP from being vulnerable. (CVE-2024-2408) 634 635- Standard: 636 . Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). 637 (CVE-2024-5585) (nielsdos) 638 639- XML: 640 . Fixed bug GH-14124 (Segmentation fault with XML extension under certain 641 memory limit). (nielsdos) 642 643- XMLReader: 644 . Fixed bug GH-14183 (XMLReader::open() can't be overridden). (nielsdos) 645 64609 May 2024, PHP 8.3.7 647 648- Core: 649 . Fixed zend_call_stack build with Linux/uclibc-ng without thread support. 650 (Fabrice Fontaine) 651 . Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall 652 handlers when JIT is enabled). (Bob) 653 . Fixed bug GH-13931 (Applying zero offset to null pointer in 654 Zend/zend_opcode.c). (nielsdos) 655 . Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with 656 other timeout implementations). (Kévin Dunglas) 657 . Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert 658 parameters). (ilutov) 659 . Fixed bug GH-14013 (Erroneous dnl appended in configure). (Peter Kokot) 660 . Fixed bug GH-10232 (If autoloading occurs during constant resolution 661 filename and lineno are identified incorrectly). (ranvis) 662 . Fixed bug GH-13727 (Missing void keyword). (Peter Kokot) 663 664- Fibers: 665 . Fixed bug GH-13903 (ASAN false positive underflow when executing copy()). 666 (nielsdos) 667 668- Fileinfo: 669 . Fixed bug GH-13795 (Test failing in ext/fileinfo/tests/bug78987.phpt on 670 big-endian PPC). (orlitzky) 671 672- FPM: 673 . Fixed bug GH-13563 (Setting bool values via env in FPM config fails). 674 (Jakub Zelenka) 675 676- Intl: 677 . Fixed build for icu 74 and onwards. (dunglas) 678 679- MySQLnd: 680 . Fix shift out of bounds on 32-bit non-fast-path platforms. (nielsdos) 681 682- Opcache: 683 . Fixed bug GH-13433 (Segmentation Fault in zend_class_init_statics when 684 using opcache.preload). (nielsdos) 685 . Fixed incorrect assumptions across compilation units for static calls. 686 (ilutov) 687 688- OpenSSL: 689 . Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely). 690 (Jakub Zelenka) 691 692- PDO SQLite: 693 . Fix GH-13984 (Buffer size is now checked before memcmp). (Saki Takamachi) 694 . Fix GH-13998 (Manage refcount of agg_context->val correctly). 695 (Saki Takamachi) 696 697- Phar: 698 . Fixed bug GH-13836 (Renaming a file in a Phar to an already existing 699 filename causes a NULL pointer dereference). (nielsdos) 700 . Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c). 701 (nielsdos) 702 . Fix potential NULL pointer dereference before calling EVP_SignInit. (icy17) 703 704- PHPDBG: 705 . Fixed bug GH-13827 (Null pointer access of type 'zval' in phpdbg_frame). 706 (nielsdos) 707 708- Posix: 709 . Fix usage of reentrant functions in ext/posix. (Arnaud) 710 711- Session: 712 . Fixed bug GH-13856 (Member access within null pointer of type 'ps_files' in 713 ext/session/mod_files.c). (nielsdos) 714 . Fixed bug GH-13891 (memleak and segfault when using ini_set with 715 session.trans_sid_hosts). (nielsdos, kamil-tekiela) 716 . Fixed buffer _read/_write size limit on windows for the file mode. (David Carlier) 717 718- Streams: 719 . Fixed file_get_contents() on Windows fails with "errno=22 Invalid 720 argument". (Damian Wójcik) 721 . Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure). 722 (Jakub Zelenka) 723 . Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in 724 ext/openssl/xp_ssl.c - causing use of dead socket). (nielsdos) 725 . Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64). (Arnaud) 726 727- Treewide: 728 . Fix gcc-14 Wcalloc-transposed-args warnings. (Cristian Rodríguez) 729 73028 Mar 2024, PHP 8.3.5RC1 731 732- Core: 733 . Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when 734 scanning WeakMaps). (Arnaud) 735 . Fixed bug GH-13612 (Corrupted memory in destructor with weak references). 736 (nielsdos) 737 . Fixed bug GH-13446 (Restore exception handler after it finishes). (ilutov) 738 . Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure). (Remi) 739 . Fixed bug GH-13670 (GC does not scale well with a lot of objects created in 740 destructor). (Arnaud) 741 742- DOM: 743 . Add some missing ZPP checks. (nielsdos) 744 . Fix potential memory leak in XPath evaluation results. (nielsdos) 745 746- FPM: 747 . Fixed GH-11086 (FPM: config test runs twice in daemonised mode). 748 (Jakub Zelenka) 749 . Fixed incorrect check in fpm_shm_free(). (nielsdos) 750 751- GD: 752 . Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests). (Michael Orlitzky) 753 754- Gettext: 755 . Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 756 with category set to LC_ALL. (David Carlier) 757 758- MySQLnd: 759 . Fix GH-13452 (Fixed handshake response [mysqlnd]). (Saki Takamachi) 760 . Fix incorrect charset length in check_mb_eucjpms(). (nielsdos) 761 762- Opcache: 763 . Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null). 764 (Arnaud, Dmitry) 765 . Fixed GH-13712 (Segmentation fault for enabled observers when calling trait 766 method of internal trait when opcache is loaded). (Bob) 767 768- Random: 769 . Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown 770 modes). (timwolla) 771 . Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between 772 requests when MT_RAND_PHP is used). (timwolla) 773 774- Session: 775 . Fixed bug GH-13680 (Segfault with session_decode and compilation error). 776 (nielsdos) 777 778- SPL: 779 . Fixed bug GH-13685 (Unexpected null pointer in zend_string.h). (nielsdos) 780 781- Standard: 782 . Fixed bug GH-11808 (Live filesystem modified by tests). (nielsdos) 783 . Fixed GH-13402 (Added validation of `\n` in $additional_headers of mail()). 784 (SakiTakamachi) 785 . Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows). 786 (divinity76) 787 . Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command 788 parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka) 789 . Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to 790 partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos) 791 . Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, 792 opening ATO risk). (CVE-2024-3096) (Jakub Zelenka) 793 . Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some 794 inputs). (CVE-2024-2757) (Alex Dowad) 795 79614 Mar 2024, PHP 8.3.4 797 798- Core: 799 . Fix ZTS persistent resource crashes on shutdown. (nielsdos) 800 801- Curl: 802 . Fix failing tests due to string changes in libcurl 8.6.0. (Ayesh) 803 804- DOM: 805 . Fix unlikely memory leak in case of namespace removal with extremely deep 806 trees. (nielsdos) 807 . Fix reference access in dimensions for DOMNodeList and DOMNodeMap. 808 (nielsdos) 809 810- Fileinfo: 811 . Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), 812 backport). (nielsdos) 813 814- FPM: 815 . Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER). 816 (Jakub Zelenka) 817 818- GD: 819 . Fixed bug GH-12019 (detection of image formats in system gd library). 820 (Michael Orlitzky) 821 822- MySQLnd: 823 . Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error 824 if CR_SERVER_GONE_ERROR is already set). (Saki Takamachi) 825 826- PDO: 827 . Fix various PDORow bugs. (Girgias) 828 829- PGSQL: 830 . Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute 831 with null value passed by reference). (George Barbarosie) 832 833- SPL: 834 . Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized 835 in PHP 8.2.15). (nielsdos) 836 837- Standard: 838 . Fixed bug GH-13279 (Instable array during in-place modification in uksort). 839 (ilutov) 840 . Fixed array key as hash to string (case insensitive) comparison typo 841 for the second operand buffer size (albeit unused for now). (A. Slepykh) 842 843- XML: 844 . Fixed bug GH-13517 (Multiple test failures when building with 845 --with-expat). (nielsdos) 846 84715 Feb 2024, PHP 8.3.3 848 849- Core: 850 . Fixed timer leak in zend-max-execution-timers builds. (withinboredom) 851 . Fixed bug GH-12349 (linking failure on ARM with mold). (Jan Palus) 852 . Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown 853 Exception). (nielsdos) 854 . Fixed bug GH-13177 (PHP 8.3.2: final private constructor not allowed 855 when used in trait). (nielsdos) 856 . Fixed bug GH-13215 (GCC 14 build failure). (Remi) 857 858- Curl: 859 . Fix missing error check in curl_multi_init(). (divinity76) 860 861- FPM: 862 . Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when 863 plus in path). (Jakub Zelenka) 864 865- GD: 866 . Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path). 867 (nielsdos) 868 . Fixed bug GH-10614 (imagerotate will turn the picture all black, when 869 rotated 90). (nielsdos) 870 871- LibXML: 872 . Fix crashes with entity references and predefined entities. (nielsdos) 873 874- MySQLnd: 875 . Fixed bug GH-12107 (When running a stored procedure (that returns a result 876 set) twice, PHP crashes). (nielsdos) 877 878- Opcache: 879 . Fixed bug GH-13145 (strtok() is not comptime). (ilutov) 880 . Fixed type inference of range(). (ilutov) 881 . Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but 882 JIT_debug is still on). (nielsdos) 883 884- OpenSSL: 885 . Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. 886 (David Carlier). 887 888- PDO_Firebird: 889 . Fix GH-13119 (Changed to convert float and double values into strings using 890 `H` format). (SakiTakamachi) 891 892- Phar: 893 . Fixed bug #71465 (PHAR doesn't know about litespeed). (nielsdos) 894 . Fixed bug GH-13037 (PharData incorrectly extracts zip file). (nielsdos) 895 896- Random: 897 . Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken 898 engines). (timwolla) 899 900- Session: 901 . Fixed bug GH-12504 (Corrupted session written when there's a fatal error 902 in autoloader). (nielsdos) 903 904- Standard: 905 . Fixed bug GH-13094 (range(9.9, '0') causes segmentation fault). (nielsdos) 906 907- Streams: 908 . Fixed bug GH-13071 (Copying large files using mmap-able source streams may 909 exhaust available memory and fail). (nielsdos) 910 91118 Jan 2024, PHP 8.3.2 912 913- Core: 914 . Fixed bug GH-12953 (false positive SSA integrity verification failed when 915 loading composer classmaps with more than 11k elements). (nielsdos) 916 . Fixed bug GH-12999 (zend_strnlen build when strnlen is unsupported). 917 (rainerjung) 918 . Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf 919 doesn't emit warnings). (Peter Kokot) 920 . Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly 921 report visibility in Reflection). (nielsdos) 922 923- Cli: 924 . Fix incorrect timeout in built-in web server when using router script and 925 max_input_time. (ilutov) 926 927- DOM: 928 . Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException). 929 (nielsdos) 930 . Fix crash when toggleAttribute() is used without a document. (nielsdos) 931 . Fix crash in adoptNode with attribute references. (nielsdos) 932 . Fixed bug GH-13012 (DOMNode::isEqualNode() is incorrect when attribute 933 order is different). (nielsdos) 934 935- FFI: 936 . Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\CData). 937 (Jakub Zelenka) 938 . Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos) 939 940- GD: 941 . Fixed GH-13082 undefined behavior with GdFont instances handling with 942 imageload* and imagechar*. (David Carlier) 943 944- Intl: 945 . Fixed GH-12943 (IntlDateFormatter::__construct accepts 'C' as valid locale). 946 (David Carlier) 947 948- Hash: 949 . Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on 950 strings >= 4GiB). (nielsdos) 951 952- MBString: 953 . When operating on a string with invalid encoding, mb_substr (as well 954 as mb_strstr and its variants) defines character indices in the same 955 way as other mbstring functions such as mb_strpos. (Alex Dowad) 956 957- ODBC: 958 . Fix crash on Apache shutdown with persistent connections. (nielsdos) 959 960- Opcache: 961 . Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM 962 with NULL when DIM is the same var as result). (ilutov) 963 . Added workaround for SELinux mprotect execheap issue. 964 See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov) 965 966- OpenSSL: 967 . Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error). 968 (Jakub Zelenka) 969 970- PDO: 971 . Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES). 972 (SakiTakamachi) 973 974- PDO_ODBC: 975 . Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()). 976 (SakiTakamachi) 977 978- PGSQL: 979 . Fixed auto_reset_persistent handling and allow_persistent type. (David Carlier) 980 . Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()). 981 (nielsdos) 982 983- Phar: 984 . Fixed bug #77432 (Segmentation fault on including phar file). (nielsdos) 985 986- PHPDBG: 987 . Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos) 988 989- SimpleXML: 990 . Fix getting the address of an uninitialized property of a SimpleXMLElement 991 resulting in a crash. (nielsdos) 992 . Fixed bug GH-12929 (SimpleXMLElement with stream_wrapper_register can 993 segfault). (nielsdos) 994 995- Tidy: 996 . Fixed bug GH-12980 (tidynode.props.attribute is missing 997 "Boolean Attributes" and empty attributes). (nielsdos) 998 99907 Dec 2023, PHP 8.3.1RC1 1000 1001- Core: 1002 . Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within 1003 ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC). (Florian Engelhardt) 1004 . Fix various missing NULL checks. (nielsdos, dstogov) 1005 . Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call). 1006 (ilutov) 1007 . Fixed bug GH-12826 (Weird pointers issue in nested loops). (nielsdos) 1008 1009- FPM: 1010 . Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval). 1011 (Patrick Prasse) 1012 1013- FTP: 1014 . Fixed bug GH-9348 (FTP & SSL session reuse). (nielsdos) 1015 1016- LibXML: 1017 . Fixed test failures for libxml2 2.12.0. (nielsdos) 1018 1019- MySQLnd: 1020 . Avoid using uninitialised struct. (mikhainin) 1021 . Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code). 1022 (nielsdos) 1023 1024- Opcache: 1025 . Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning 1026 at the same time as invalid offset Error). (Girgias) 1027 . Fixed JIT bug (JIT emits "Attempt to assign property of non-object" 1028 warning at the same time as Error is being thrown). (Girgias) 1029 1030- PDO PGSQL: 1031 . Fixed the default value of $fetchMode in PDO::pgsqlGetNotify() (kocsismate) 1032 1033- SOAP: 1034 . Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted). 1035 (nielsdos) 1036 1037- Standard 1038 . Fixed GH-12745 (http_build_query() default null argument for $arg_separator 1039 is implicitly coerced to string). (Girgias) 1040 104123 Nov 2023, PHP 8.3.0 1042 1043- Bcmath 1044 . Fixed GH-11761 (removing trailing zeros from numbers) (jorgsowa) 1045 1046- CLI: 1047 . Added pdeathsig to builtin server to terminate workers when the master 1048 process is killed. (ilutov) 1049 . Fixed bug GH-11104 (STDIN/STDOUT/STDERR is not available for CLI without 1050 a script). (nielsdos) 1051 . Implement GH-10024 (support linting multiple files at once using php -l). 1052 (nielsdos) 1053 1054- Core: 1055 . Fix GH-11388 (Allow "final" modifier when importing a method from a trait). 1056 (nielsdos) 1057 . Fixed bug GH-11406 (segfault with unpacking and magic method closure). 1058 (nielsdos) 1059 . Fixed bug GH-9388 (Improve unset property and __get type incompatibility 1060 error message). (ilutov) 1061 . SA_ONSTACK is now set for signal handlers to be friendlier to other 1062 in-process code such as Go's cgo. (Kévin Dunglas) 1063 . SA_ONSTACK is now set when signals are disabled. (Kévin Dunglas) 1064 . Fix GH-9649: Signal handlers now do a no-op instead of crashing when 1065 executed on threads not managed by TSRM. (Kévin Dunglas) 1066 . Added shadow stack support for fibers. (Chen Hu) 1067 . Fix bug GH-9965 (Fix accidental caching of default arguments with side 1068 effects). (ilutov) 1069 . Implement GH-10217 (Use strlen() for determining the class_name length). 1070 (Dennis Buteyn) 1071 . Fix bug GH-8821 (Improve line numbers for errors in constant expressions). 1072 (ilutov) 1073 . Fix bug GH-10083 (Allow comments between & and parameter). (ilutov) 1074 . Zend Max Execution Timers is now enabled by default for ZTS builds on 1075 Linux. (Kévin Dunglas) 1076 . Fix bug GH-10469 (Disallow .. in open_basedir paths set at runtime). 1077 (ilutov) 1078 . Fix bug GH-10168, GH-10582 (Various segfaults with destructors and VM return 1079 values). (dstogov, nielsdos, ilutov) 1080 . Fix bug GH-10935 (Use of trait doesn't redeclare static property if class 1081 has inherited it from its parent). (ilutov) 1082 . Fix bug GH-11154 (Negative indices on empty array don't affect next chosen 1083 index). (ColinHDev) 1084 . Fix bug GH-8846 (Implement delayed early binding for classes without 1085 parents). (ilutov) 1086 . Fix bug #79836 (Segfault in concat_function). (nielsdos) 1087 . Fix bug #81705 (type confusion/UAF on set_error_handler with concat 1088 operation). (nielsdos) 1089 . Fix GH-11348 (Closure created from magic method does not accept named 1090 arguments). (nielsdos) 1091 . Fix GH-11388 (Allow "final" modifier when importing a method from a trait). 1092 (nielsdos) 1093 . Fixed bug GH-11406 (segfault with unpacking and magic method closure). 1094 (nielsdos) 1095 . Fixed bug GH-11507 (String concatenation performance regression in 8.3). 1096 (nielsdos) 1097 . Fixed GH-11488 (Missing "Optional parameter before required" deprecation on 1098 union null type). (ilutov) 1099 . Implement the #[\Override] attribute RFC. (timwolla) 1100 . Fixed bug GH-11601 (Incorrect handling of unwind and graceful exit 1101 exceptions). (ilutov) 1102 . Added zend_call_stack_get implementation for OpenBSD. (David Carlier) 1103 . Add stack limit check in zend_eval_const_expr(). (Arnaud) 1104 . Expose time spent collecting cycles in gc_status(). (Arnaud) 1105 . Remove WeakMap entries whose key is only reachable through the entry value. 1106 (Arnaud) 1107 . Resolve open_basedir paths on INI update. (ilutov) 1108 . Fixed oss-fuzz #60741 (Leak in open_basedir). (ilutov) 1109 . Fixed segfault during freeing of some incompletely initialized objects due 1110 to OOM error (PDO, SPL, XSL). (ilutov) 1111 . Introduced Zend guard recursion protection to fix __debugInfo issue. 1112 (Jakub Zelenka) 1113 . Fixed oss-fuzz #61712 (assertion failure with error handler during binary 1114 op). (nielsdos) 1115 . Fixed GH-11847 (DTrace enabled build is broken). (Filip Zrůst) 1116 . Fixed OSS Fuzz #61865 (Undef variable in ++/-- for declared property 1117 that is unset in error handler). (Girgias) 1118 . Fixed warning emitted when checking if a user stream is castable. (Girgias) 1119 . Fixed bug GH-12123 (Compile error on MacOS with C++ extension when using 1120 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX). (kocsismate) 1121 . Fixed bug GH-12189 (#[Override] attribute in trait does not check for 1122 parent class implementations). (timwolla) 1123 . Fixed OSS Fuzz #62294 (Unsetting variable after ++/-- on string variable 1124 warning). (Girgias) 1125 . Fixed buffer underflow when compiling memoized expression. (ilutov) 1126 . Fixed oss-fuzz #63802 (OP1 leak in error path of post inc/dec). (ilutov) 1127 1128- Curl: 1129 . Added Curl options and constants up to (including) version 7.87. 1130 (nielsdos, adoy) 1131 1132- Date: 1133 . Implement More Appropriate Date/Time Exceptions RFC. (Derick) 1134 1135- DOM: 1136 . Fix bug GH-8388 (DOMAttr unescapes character reference). (Tim Starling) 1137 . Fix bug GH-11308 (getElementsByTagName() is O(N^2)). (nielsdos) 1138 . Fix #79700 (wrong use of libxml oldNs leads to performance problem). 1139 (nielsdos) 1140 . Fix #77894 (DOMNode::C14N() very slow on generated DOMDocuments even after 1141 normalisation). (nielsdos) 1142 . Revert changes to DOMAttr::$value and DOMAttr::$nodeValue expansion. 1143 (nielsdos) 1144 . Fixed bug GH-11500 (Namespace reuse in createElementNS() generates wrong 1145 output). (nielsdos) 1146 . Implemented DOMDocument::adoptNode(). Previously this always threw a 1147 "not yet implemented" exception. (nielsdos) 1148 . Fixed bug GH-9628 (Implicitly removing nodes from \DOMDocument breaks 1149 existing references). (nielsdos) 1150 . Added DOMNode::contains() and DOMNameSpaceNode::contains(). (nielsdos) 1151 . Added DOMElement::getAttributeNames(). (nielsdos) 1152 . Added DOMNode::getRootNode(). (nielsdos) 1153 . Added DOMElement::className and DOMElement::id. (nielsdos) 1154 . Added DOMParentNode::replaceChildren(). (nielsdos) 1155 . Added DOMNode::isConnected and DOMNameSpaceNode::isConnected. (nielsdos) 1156 . Added DOMNode::parentElement and DOMNameSpaceNode::parentElement. 1157 (nielsdos) 1158 . Added DOMNode::isEqualNode(). (nielsdos) 1159 . Added DOMElement::insertAdjacentElement() and 1160 DOMElement::insertAdjacentText(). (nielsdos) 1161 . Added DOMElement::toggleAttribute(). (nielsdos) 1162 . Fixed bug GH-11792 (LIBXML_NOXMLDECL is not implemented or broken). 1163 (nielsdos) 1164 . adoptNode now respects the strict error checking property. (nielsdos) 1165 . Align DOMChildNode parent checks with spec. (nielsdos) 1166 . Fixed bug #80927 (Removing documentElement after creating attribute node: 1167 possible use-after-free). (nielsdos) 1168 . Fix various namespace prefix conflict resolution bugs. (nielsdos) 1169 . Fix calling createAttributeNS() without prefix causing the default 1170 namespace of the element to change. (nielsdos) 1171 . Fixed GH-11952 (Confusing warning when blocking entity loading via 1172 libxml_set_external_entity_loader). (nielsdos) 1173 . Fix broken cache invalidation with deallocated and reallocated document 1174 node. (nielsdos) 1175 . Fix compile error when php_libxml.h header is included in C++. 1176 (Remi, nielsdos) 1177 . Fixed bug #47531 (No way of removing redundant xmlns: declarations). 1178 (nielsdos) 1179 1180- Exif: 1181 . Removed unneeded codepaths in exif_process_TIFF_in_JPEG(). (nielsdos) 1182 1183- FFI: 1184 . Implement GH-11934 (Allow to pass CData into struct and/or union fields). 1185 (nielsdos, KapitanOczywisty) 1186 1187- Fileinfo: 1188 . Upgrade bundled libmagic to 5.43. (Anatol) 1189 . Fix GH-11408 (Unable to build PHP 8.3.0 alpha 1 / fileinfo extension). 1190 (nielsdos) 1191 1192- FPM: 1193 . The status.listen shared pool now uses the same php_values (including 1194 expose_php) and php_admin_value as the pool it is shared with. (dwxh) 1195 . Added warning to log when fpm socket was not registered on the expected 1196 path. (Joshua Behrens, Jakub Zelenka) 1197 . Fixed bug #76067 (system() function call leaks php-fpm listening sockets). 1198 (Mikhail Galanin, Jakub Zelenka) 1199 . Fixed GH-12077 (PHP 8.3.0RC1 borked socket-close-on-exec.phpt). 1200 (Jakub Zelenka) 1201 1202- GD: 1203 . Removed imagerotate "ignore_transparent" argument since it has no effect. 1204 (David Carlier) 1205 1206- Intl: 1207 . Added pattern format error infos for numfmt_set_pattern. (David Carlier) 1208 . Added MIXED_NUMBERS and HIDDEN_OVERLAY constants for 1209 the Spoofchecker's class. (David Carlier) 1210 . Updated datefmt_set_timezone/IntlDateformatter::setTimezone returns type. 1211 (David Carlier). 1212 . Updated IntlBreakInterator::setText return type. (David Carlier) 1213 . Updated IntlChar::enumCharNames return type. (David Carlier) 1214 . Removed the BC break on IntlDateFormatter::construct which threw an 1215 exception with an invalid locale. (David Carlier) 1216 1217- JSON: 1218 . Added json_validate(). (Juan Morales) 1219 1220- LDAP: 1221 . Deprecate calling ldap_connect() with separate hostname and port. 1222 (heiglandreas) 1223 1224- LibXML: 1225 . Fix compile error with -Werror=incompatible-function-pointer-types and 1226 old libxml2. (nielsdos) 1227 1228- MBString: 1229 . mb_detect_encoding is better able to identify the correct encoding for 1230 Turkish text. (Alex Dowad) 1231 . mb_detect_encoding's "non-strict" mode now behaves as described in the 1232 documentation. Previously, it would return false if the same byte 1233 (for example, the first byte) of the input string was invalid in all 1234 candidate encodings. More generally, it would eliminate candidate 1235 encodings from consideration when an invalid byte was seen, and if the 1236 same input byte eliminated all remaining encodings still under 1237 consideration, it would return false. On the other hand, if all candidate 1238 encodings but one were eliminated from consideration, it would return the 1239 last remaining one without regard for how many encoding errors might be 1240 encountered later in the string. This is different from the behavior 1241 described in the documentation, which says: "If strict is set to false, 1242 the closest matching encoding will be returned." (Alex Dowad) 1243 . mb_strtolower, mb_strtotitle, and mb_convert_case implement conditional 1244 casing rules for the Greek letter sigma. For mb_convert_case, conditional 1245 casing only applies to MB_CASE_LOWER and MB_CASE_TITLE modes, not to 1246 MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE. (Alex Dowad) 1247 . mb_detect_encoding is better able to identify UTF-8 and UTF-16 strings 1248 with a byte-order mark. (Alex Dowad) 1249 . mb_decode_mimeheader interprets underscores in QPrint-encoded MIME 1250 encoded words as required by RFC 2047; they are converted to spaces. 1251 Underscores must be encoded as "=5F" in such MIME encoded words. 1252 (Alex Dowad) 1253 . mb_encode_mimeheader no longer drops NUL (zero) bytes when 1254 QPrint-encoding the input string. This previously caused strings in 1255 certain text encodings, especially UTF-16 and UTF-32, to be 1256 corrupted by mb_encode_mimeheader. (Alex Dowad) 1257 . Implement mb_str_pad() RFC. (nielsdos) 1258 . Fixed bug GH-11514 (PHP 8.3 build fails with --enable-mbstring enabled). 1259 (nielsdos) 1260 . Fix use-after-free of mb_list_encodings() return value. (ilutov) 1261 . Fixed bug GH-11992 (utf_encodings.phpt fails on Windows 32-bit). (nielsdos) 1262 1263- mysqli: 1264 . mysqli_fetch_object raises a ValueError instead of an Exception. 1265 (David Carlier) 1266 1267- Opcache: 1268 . Added start, restart and force restart time to opcache's 1269 phpinfo section. (Mikhail Galanin) 1270 . Fix GH-9139: Allow FFI in opcache.preload when opcache.preload_user=root. 1271 (Arnaud, Kapitan Oczywisty) 1272 . Made opcache.preload_user always optional in the cli and phpdbg SAPIs. 1273 (Arnaud) 1274 . Allows W/X bits on page creation on FreeBSD despite system settings. 1275 (David Carlier) 1276 . Added memfd api usage, on Linux, for zend_shared_alloc_create_lock() 1277 to create an abstract anonymous file for the opcache's lock. (Max Kellermann) 1278 . Avoid resetting JIT counter handlers from multiple processes/threads. 1279 (ilutov) 1280 . Fixed COPY_TMP type inference for references. (ilutov) 1281 1282- OpenSSL: 1283 . Added OPENSSL_CMS_OLDMIMETYPE and PKCS7_NOOLDMIMETYPE contants to switch 1284 between mime content types. (Daniel Kesselberg) 1285 . Fixed GH-11054: Reset OpenSSL errors when using a PEM public key. 1286 (Florian Moser) 1287 . Added support for additional EC parameters in openssl_pkey_new. (Eno-CN) 1288 1289- PCNTL: 1290 . SA_ONSTACK is now set for pcntl_signal. (Kévin Dunglas) 1291 . Added SIGINFO constant. (David Carlier) 1292 1293- PCRE: 1294 . Update bundled libpcre2 to 10.42. (nielsdos) 1295 1296- PGSQL: 1297 . pg_fetch_object raises a ValueError instead of an Exception. 1298 (David Carlier) 1299 . pg_cancel use thread safe PQcancel api instead. (David Carlier) 1300 . pg_trace new PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE 1301 contants support. (David Carlier) 1302 . pg_set_error_verbosity adding PGSQL_ERRORS_STATE constant. (David Carlier) 1303 . pg_convert/pg_insert E_WARNING on type errors had been converted to 1304 ValueError/TypeError exceptions. (David Carlier) 1305 . Added pg_set_error_context_visibility to set the context's visibility 1306 within the error messages. (David Carlier) 1307 1308- Phar: 1309 . Fix memory leak in phar_rename_archive(). (stkeke) 1310 1311- POSIX: 1312 . Added posix_sysconf. (David Carlier) 1313 . Added posix_pathconf. (David Carlier) 1314 . Added posix_fpathconf. (David Carlier) 1315 . Fixed zend_parse_arg_long's bool pointer argument assignment. (Cristian Rodriguez) 1316 . Added posix_eaccess. (David Carlier) 1317 1318- Random: 1319 . Added Randomizer::getBytesFromString(). (Joshua Rüsweg) 1320 . Added Randomizer::nextFloat(), ::getFloat(), and IntervalBoundary. (timwolla) 1321 . Enable getrandom() for NetBSD (from 10.x). (David Carlier) 1322 . Deprecate MT_RAND_PHP. (timwolla) 1323 . Fix Randomizer::getFloat() returning incorrect results under 1324 certain circumstances. (timwolla) 1325 1326- Reflection: 1327 . Fix GH-9470 (ReflectionMethod constructor should not find private parent 1328 method). (ilutov) 1329 . Fix GH-10259 (ReflectionClass::getStaticProperties doesn't need null return 1330 type). (kocsismate) 1331 1332- SAPI: 1333 . Fixed GH-11141 (Could not open input file: should be sent to stderr). 1334 (nielsdos) 1335 1336- Session: 1337 . Fixed bug GH-11529 (Crash after dealing with an Apache request). (nielsdos) 1338 1339- SimpleXML: 1340 . Fixed bug GH-12192 (SimpleXML infinite loop when getName() is called 1341 within foreach). (nielsdos) 1342 . Fixed bug GH-12208 (SimpleXML infinite loop when a cast is used inside a 1343 foreach). (nielsdos) 1344 . Fixed bug #55098 (SimpleXML iteration produces infinite loop). (nielsdos) 1345 1346- Sockets: 1347 . Added SO_ATTACH_REUSEPORT_CBPF socket option, to give tighter control 1348 over socket binding for a cpu core. (David Carlier) 1349 . Added SKF_AD_QUEUE for cbpf filters. (David Carlier) 1350 . Added socket_atmark if send/recv needs using MSG_OOB. (David Carlier) 1351 . Added TCP_QUICKACK constant, to give tigher control over 1352 ACK delays. (David Carlier) 1353 . Added DONTFRAGMENT support for path MTU discovery purpose. (David Carlier) 1354 . Added AF_DIVERT for raw socket for divert ports. (David Carlier) 1355 . Added SOL_UPDLITE, UDPLITE_RECV_CSCOV and UDPLITE_SEND_CSCOV for updlite 1356 protocol support. (David Carlier) 1357 . Added SO_RERROR, SO_ZEROIZE and SO_SPLICE netbsd and openbsd constants. 1358 (David Carlier) 1359 . Added TCP_REPAIR for quietly close a connection. (David Carlier) 1360 . Added SO_REUSEPORT_LB freebsd constant. (David Carlier) 1361 . Added IP_BIND_ADDRESS_NO_PORT. (David Carlier) 1362 1363- SPL: 1364 . Fixed GH-11573 (RecursiveDirectoryIterator::hasChildren is slow). 1365 (nielsdos) 1366 1367- Standard: 1368 . E_NOTICEs emitted by unserialize() have been promoted to E_WARNING. (timwolla) 1369 . unserialize() now emits a new E_WARNING if the input contains unconsumed 1370 bytes. (timwolla) 1371 . Make array_pad's $length warning less confusing. (nielsdos) 1372 . E_WARNING emitted by strtok in the caase both arguments are not provided when 1373 starting tokenisation. (David Carlier) 1374 . password_hash() will now chain the original RandomException to the ValueError 1375 on salt generation failure. (timwolla) 1376 . Fix GH-10239 (proc_close after proc_get_status always returns -1). (nielsdos) 1377 . Improve the warning message for unpack() in case not enough values were 1378 provided. (nielsdos) 1379 . Fix GH-11010 (parse_ini_string() now preserves formatting of unquoted 1380 strings starting with numbers when the INI_SCANNER_TYPED flag is 1381 specified). (ilutov) 1382 . Fix GH-10742 (http_response_code emits no error when headers were already 1383 sent). (NattyNarwhal) 1384 . Added support for rounding negative places in number_format(). 1385 (Marc Bennewitz) 1386 . Prevent precision loss on formatting decimal integers in number_format(). 1387 (Marc Bennewitz) 1388 . Added usage of posix_spawn for proc_open when supported by OS. 1389 (Cristian Rodriguez) 1390 . Added $before_needle argument to strrchr(). (HypeMC) 1391 . Fixed GH-11982 (str_getcsv returns null byte for unterminated enclosure). 1392 (Jakub Zelenka) 1393 . Fixed str_decrement() on "1". (ilutov) 1394 1395- Streams: 1396 . Fixed bug #51056: blocking fread() will block even if data is available. 1397 (Jakub Zelenka) 1398 . Added storing of the original path used to open xport stream. 1399 (Luc Vieillescazes) 1400 . Implement GH-8641 (STREAM_NOTIFY_COMPLETED over HTTP never emitted). 1401 (nielsdos, Jakub Zelenka) 1402 . Fix bug GH-10406 (fgets on a redis socket connection fails on PHP 8.3). 1403 (Jakub Zelenka) 1404 . Implemented GH-11242 (_php_stream_copy_to_mem: Allow specifying a maximum 1405 length without allocating a buffer of that size). (Jakub Zelenka) 1406 . Fixed bug #52335 (fseek() on memory stream behavior different than file). 1407 (Jakub Zelenka) 1408 . Fixed bug #76857 (Can read "non-existant" files). (Jakub Zelenka) 1409 1410- XSLTProcessor: 1411 . Fixed bug #69168 (DomNode::getNodePath() returns invalid path). (nielsdos) 1412 1413- ZIP: 1414 . zip extension version 1.22.0 for libzip 1.10.0. (Remi) 1415 . add new error macros (ER_DATA_LENGTH and ER_NOT_ALLOWED). (Remi) 1416 . add new archive global flags (ER_AFL_*). (Remi) 1417 . add ZipArchive::setArchiveFlag and ZipArchive::getArchiveFlag methods. 1418 (Remi) 1419