xref: /PHP-8.1/NEWS (revision fcbcf2f2)
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