PHP 8 ChangeLog ![rw-book-cover](https://www.php.net/images/meta-image.png) ## Metadata - Author: [[php.net]] - Full Title: PHP 8 ChangeLog - Category: #articles - Document Note: --- tags: [#php, #changelog, #release, #documentation] - #php - #changelog - #release Author: The PHP Documentation Team Source: PHP.net Reference: [PHP ChangeLog 8](https://www.php.net/ChangeLog-8.php) date created: 2025-04-14 12:00 --- # Title: PHP 8 ChangeLog Comprehensive Analysis ## Table of Contents: - ๐Ÿ—‚๏ธ [๐Ÿ“ Summary](#-summary) - ๐Ÿ—‚๏ธ [๐Ÿ“– Main Content](#-main-content) - ๐Ÿ—‚๏ธ [๐Ÿ—’๏ธ Notes](#-notes) - ๐Ÿ—‚๏ธ [๐Ÿ“– References](#-references) - ๐Ÿ—‚๏ธ [๐Ÿ—ฃ๏ธ Paraphrase](#-paraphrase) - ๐Ÿ—‚๏ธ [๐Ÿ“ฐ Newsletter](#-newsletter) - ๐Ÿ—‚๏ธ [โœ… Action Items](#-action-items) - ๐Ÿ—‚๏ธ [๐Ÿงช Hypotheses](#-hypotheses) - ๐Ÿ—‚๏ธ [๐Ÿ“Š Methodology](#-methodology) - ๐Ÿ—‚๏ธ [โ“ Questions](#-questions) - ๐Ÿ—‚๏ธ [๐Ÿ”ฎ Future Research](#-future-research) - ๐Ÿ—‚๏ธ [๐Ÿ’ก Implications](#-implications) - ๐Ÿ—‚๏ธ [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - ๐Ÿ—‚๏ธ [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - ๐Ÿ—‚๏ธ [๐ŸŒ DEIB Assessment](#-deib-assessment) - ๐Ÿ—‚๏ธ [โœ… Logical Validity](#-logical-validity) - ๐Ÿ—‚๏ธ [๐Ÿ” DARVO Analysis](#-darvo-analysis) - ๐Ÿ—‚๏ธ [๐Ÿ” SEO Evaluation](#-seo-evaluation) - ๐Ÿ—‚๏ธ [๐ŸŽฏ Conclusion](#-conclusion) ## ๐Ÿ“ Summary: - ๐Ÿ”ธ This document provides a comprehensive analysis of the PHP 8 ChangeLog, which details the evolution of PHP 8 through new features, improvements, and bug fixes. - ๐Ÿ”ธ Key entries include version releases such as PHP 8.0.0 on [๐Ÿ”—2020-11-26](https://www.php.net/releases/8_0_0.php) and subsequent updates, each with direct timestamp links for reference. ## ๐Ÿ“– Main Content: - ๐Ÿ”น **Overview**: PHP 8 marks a major evolution in the PHP ecosystem. The changelog records enhancements ranging from new language features to critical security and bug fixes, ensuring a transparent development history. - ๐Ÿ”น **Key Areas Covered**: - ๐Ÿ”ธ **New Features**: - Introduction of attributes for metadata annotations. - Union types for improved type flexibility. - Match expressions as a concise alternative to switch-case constructs. - Just-In-Time (JIT) compilation for performance boosts. - ๐Ÿ”ธ **Enhancements**: - Enhanced error handling mechanisms. - Optimized core engine performance. - Improved type system support. - ๐Ÿ”ธ **Bug Fixes & Security Updates**: - Consistent resolution of critical bugs to enhance stability. - Security patches addressing vulnerabilities observed in previous versions. - ๐Ÿ”น **Release Timestamps with Links**: - PHP 8.0.0 released on [๐Ÿ”—2020-11-26](https://www.php.net/releases/8_0_0.php). - Subsequent versions (e.g., PHP 8.0.1, PHP 8.1.0) include detailed changelog entries with precise timestamps. - ๐Ÿ”น **Technical Impact**: These updates not only drive performance improvements but also enhance the overall developer experience by streamlining coding practices and solidifying PHP's role in modern web development. ### ๐Ÿ—’๏ธ Notes: - ๐Ÿ”น **Introduction & Context**: - ๐Ÿ”ธ PHP 8 represents a watershed moment in PHP's development, incorporating innovative syntax and performance enhancements. - ๐Ÿ”ธ Each changelog entry is timestamped and hyperlinked, ensuring that developers can verify the historical progression of updates. - ๐Ÿ”น **Feature Highlights**: - ๐Ÿ”ธ **Attributes**: Allow embedded metadata directly in code structures. - โžก๏ธ Enables more robust framework and library design. - ๐Ÿ”ธ **Union Types**: Support multiple data types for function parameters and return values. - ๐Ÿ”ธ **Match Expressions**: Simplify conditional logic and reduce boilerplate compared to traditional switch-case constructs. - ๐Ÿ”ธ **JIT Compilation**: Converts code to machine language at runtime, significantly improving execution speed. - ๐Ÿ”น **Fixes & Improvements**: - ๐Ÿ”ธ Regular patches and bug fixes enhance security and reliability. - ๐Ÿ”ธ Detailed release notes provide transparency regarding the specific issues addressed. - ๐Ÿ”น **Timestamp Integration**: - ๐Ÿ”ธ Direct links to release dates (e.g., [๐Ÿ”—2020-11-26](https://www.php.net/releases/8_0_0.php)) enable precise tracking of the PHP 8 timeline. ## ๐Ÿ“– References: - ๐Ÿ”น [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php) - ๐Ÿ”น [PHP 8.0.0 Release Announcement](https://www.php.net/releases/8_0_0.php) - ๐Ÿ”น PHP official documentation for further technical details. ## ๐Ÿ—ฃ๏ธ Paraphrase: - ๐Ÿ”น **Paragraph 1**: - **Original**: "PHP 8 introduces significant enhancements including new language features that improve performance and developer experience." - **Paraphrased**: "The introduction of PHP 8 brings major advancements that not only boost system performance but also enhance the overall experience for developers through innovative language constructs." - ๐Ÿ”น **Paragraph 2**: - **Original**: "The changelog meticulously records the evolution of PHP with detailed entries for each release, ensuring transparency and traceability for developers." - **Paraphrased**: "Every update in the PHP changelog is carefully documented, providing detailed entries for each version to guarantee transparency and ease of traceability for the developer community." ## ๐Ÿ“ฐ Newsletter: - ๐Ÿ”น **Web Development Updates**: - ๐Ÿ”ธ Stay ahead with the latest on PHP 8, featuring cutting-edge updates like attributes and union types that streamline coding practices. - ๐Ÿ”ธ Our community-centric newsletter highlights recent releases, performance optimizations, and must-know bug fixes to empower your development projects. - ๐Ÿ”ธ Check out detailed release notes, including [PHP 8.0.0](https://www.php.net/releases/8_0_0.php), and join the discussion on our developer forums. - ๐Ÿ”ธ Embrace new plugins and tools that integrate seamlessly with PHP 8 while keeping you informed on upcoming features and community events. ## โœ… Action Items: - ๐Ÿ”น **For Open Source Advocates and Educators**: - ๐Ÿ”ธ **Educational Integration**: Utilize detailed changelog entries as teaching materials to illustrate modern programming practices. - ๐Ÿ”ธ **Contributor Engagement**: Highlight areas in the update that invite community feedback and contributions to foster inclusive development. - ๐Ÿ”ธ **Transparency & Documentation**: Emphasize the importance of clear documentation in promoting trust within the open source ecosystem. - ๐Ÿ”ธ **Career Alignment**: Align article analyses with professional goals by showcasing how these updates enhance PHPโ€™s reliability and inform best practices in open-source programming. ## ๐Ÿงช Hypotheses: - ๐Ÿ”น The performance improvements in PHP 8, particularly from the JIT compiler, lead to measurable speed gains in high-load environments. - ๐Ÿ”น New language features such as union types and match expressions have a positive impact on code maintainability and developer productivity. - ๐Ÿ”น Rigorous documentation of bug fixes correlates with enhanced security and fewer production issues in PHP applications. ### ๐Ÿ“Š Methodology: - ๐Ÿ”น **Data Collection**: - ๐Ÿ”ธ Gather performance benchmarks from before and after PHP 8 adoption. - ๐Ÿ”ธ Collect developer feedback through surveys and code reviews. - ๐Ÿ”น **Research Design**: - ๐Ÿ”ธ Employ case studies comparing PHP 7 and PHP 8 implementations. - ๐Ÿ”ธ Conduct controlled experiments to measure response times and stability. - ๐Ÿ”น **Analysis Techniques**: - ๐Ÿ”ธ Use statistical methods for benchmarking data. - ๐Ÿ”ธ Apply qualitative analysis to feedback and survey responses. ### โ“ Questions: - ๐Ÿ”น How significantly does the JIT compiler affect overall application performance? - ๐Ÿ”น What is the developer learning curve for adapting to new PHP 8 features? - ๐Ÿ”น How do these updates influence long-term maintainability of PHP codebases? ### ๐Ÿ”ฎ Future Research: - ๐Ÿ”น Explore the long-term impact of PHP 8 features on large-scale enterprise applications. - ๐Ÿ”น Study community adoption rates and the effectiveness of new language constructs. - ๐Ÿ”น Investigate further optimizations in the PHP core inspired by these advancements. ### ๐Ÿ’ก Implications: - ๐Ÿ”น **Advancement in Knowledge**: Insights from PHP 8 performance metrics can inform future software engineering practices. - ๐Ÿ”น **Influence on Best Practices**: Empirical evidence may drive standardized adoption of new features across the industry. - ๐Ÿ”น **Policy & Standards Impact**: Findings could contribute to setting industry benchmarks for language performance and security. ### ๐Ÿง  Learning Styles Assessment: - ๐Ÿ”น **Visual Learners (Spatial)**: - ๐Ÿ”ธ **Present**: Structured layout with direct links and timestamped entries. - ๐Ÿ”ธ **Improve**: Add infographics summarizing update impacts. - ๐Ÿ”น **Aural Learners (Auditory-Musical)**: - ๐Ÿ”ธ **Present**: Occasional mentions of audio summaries in release notes. - ๐Ÿ”ธ **Improve**: Integrate podcast links discussing PHP 8 updates. - ๐Ÿ”น **Verbal Learners (Linguistic)**: - ๐Ÿ”ธ **Present**: Detailed textual explanations of each feature. - ๐Ÿ”ธ **Improve**: Enhance with analogies and narrative examples. - ๐Ÿ”น **Physical Learners (Kinesthetic)**: - ๐Ÿ”ธ **Present**: Step-by-step notes on update procedures. - ๐Ÿ”ธ **Improve**: Introduce interactive code examples and hands-on exercises. - ๐Ÿ”น **Logical Learners (Mathematical)**: - ๐Ÿ”ธ **Present**: Data-driven performance comparisons and timeline links. - ๐Ÿ”ธ **Improve**: Incorporate additional analytical charts and step-by-step breakdowns. - ๐Ÿ”น **Social Learners (Interpersonal)**: - ๐Ÿ”ธ **Present**: Links to community forums and collaborative projects. - ๐Ÿ”ธ **Improve**: Encourage group discussions and peer reviews. - ๐Ÿ”น **Solitary Learners (Intrapersonal)**: - ๐Ÿ”ธ **Present**: Comprehensive self-study materials and detailed release notes. - ๐Ÿ”ธ **Improve**: Suggest reflective journaling on update impacts. - ๐Ÿ”น **Naturalistic Learners**: - ๐Ÿ”ธ **Present**: References to sustainable development practices in tech. - ๐Ÿ”ธ **Improve**: Embed case studies linking technological updates with environmental considerations. ### ๐Ÿ“Š Accessibility Assessment: - ๐Ÿ”น **Screen Reader Compatibility**: - ๐Ÿ”ธ Ensure alt text is provided for all images and links. - ๐Ÿ”น **Keyboard Navigation**: - ๐Ÿ”ธ All interactive elements should be fully navigable via keyboard. - ๐Ÿ”น **Contrast and Readability**: - ๐Ÿ”ธ Adopt high-contrast themes and scalable fonts to assist visually impaired users. - ๐Ÿ”น **Text Resizing**: - ๐Ÿ”ธ Content layout must adjust gracefully with different text size settings. ### ๐ŸŒ DEIB Assessment: - ๐Ÿ”น **Cultural Relevance**: - ๐Ÿ”ธ Incorporate diverse developer case studies and examples. - ๐Ÿ”น **Inclusive Language**: - ๐Ÿ”ธ Use gender-neutral terms and clear language throughout. - ๐Ÿ”น **Neurodiversity Support**: - ๐Ÿ”ธ Structure content with headings, lists, and short paragraphs for clarity. - ๐Ÿ”น **Representation**: - ๐Ÿ”ธ Ensure diverse voices and contributions in community examples. - ๐Ÿ”น **Psychological Safety**: - ๐Ÿ”ธ Maintain respectful language and provide trigger warnings where necessary. ### โœ… Logical Validity: - ๐Ÿ”น **Sound Reasoning**: - ๐Ÿ”ธ The changelog uses a factual and chronological presentation, linking each version (e.g., [๐Ÿ”—2020-11-26](https://www.php.net/releases/8_0_0.php)) to concrete updates, which reinforces accountability. - ๐Ÿ”ธ Clear cause-and-effect relationships connect new features with improved performance. - ๐Ÿ”น **Potential Logical Gaps**: - ๐Ÿ”ธ While the focus is on positive advancements, the absence of counterpoints (such as potential migration challenges) may indicate a slight confirmation bias. - ๐Ÿ”น **Suggestions for Improvement**: - ๐Ÿ”ธ Balancing the documentation with community feedback or case studies discussing both benefits and challenges would provide a more holistic view. - ๐Ÿ”น **Tone of Voice**: - ๐Ÿ”ธ The tone remains technical, neutral, and data-driven, appropriate for a changelog intended for developers. ### ๐Ÿ” DARVO Analysis: - ๐Ÿ”น **Deny**: - ๐Ÿ”ธ No denial of issues is observed; the changelog directly documents updates. - ๐Ÿ”น **Attack**: - ๐Ÿ”ธ The content avoids personal or ad hominem attacks, focusing solely on factual information. - ๐Ÿ”น **Reverse Victim and Offender**: - ๐Ÿ”ธ There is no narrative shifting blame or portraying any party as an undeserved victim. - ๐Ÿ”น **Overall DARVO Summary**: - ๐Ÿ”ธ The changelog maintains an objective record of PHP updates without employing DARVO tactics, focusing entirely on transparency. ### ๐Ÿ” SEO Evaluation: - ๐Ÿ”น **Keywords**: - ๐Ÿ”ธ Effective use of keywords such as โ€œPHP 8โ€, โ€œChangeLogโ€, โ€œreleaseโ€, and โ€œupdateโ€ throughout enhances discoverability. - ๐Ÿ”น **Meta Description & Title Tag**: - ๐Ÿ”ธ A clear and concise meta description summarizing PHP 8 updates would further boost SEO. - ๐Ÿ”น **Header Structure**: - ๐Ÿ”ธ Proper use of H1, H2, and H3 headers streamlines readability and assists search engines in understanding content structure. - ๐Ÿ”น **Content Length & Links**: - ๐Ÿ”ธ The detailed changelog and embedded links (e.g., [๐Ÿ”—2020-11-26](https://www.php.net/releases/8_0_0.php)) contribute positively to SEO by providing in-depth, relevant content. - ๐Ÿ”น **Image & Mobile Optimization**: - ๐Ÿ”ธ While the text primarily relies on structured content, incorporating optimized images and ensuring responsive design would enhance SEO further. - ๐Ÿ”น **Social Sharing & Schema Markup**: - ๐Ÿ”ธ Utilizing social sharing features and implementing proper schema markup can improve content visibility and ranking. ## ๐ŸŽฏ Conclusion: - ๐Ÿ”น **Recap**: The PHP 8 ChangeLog is an essential resource that meticulously documents all updates, features, and fixes across PHP 8 releases. Its structured format with direct timestamp links offers developers transparency and reliable historical context. - ๐Ÿ”น **Impact**: This level of detail not only aids developers in tracking progress but also reinforces best practices in software development and open-source transparency. - ๐Ÿ”น **Future Outlook**: With continuous community input and future innovations, PHPโ€™s evolution remains on a positive trajectory, ensuring that both performance and developer experience continue to advance. - Document Tags: [[php]] - Summary: PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world. - URL: https://www.php.net/ChangeLog-8.php [8.4](https://www.php.net/ChangeLog-8.php#PHP_8_4) | [8.3](https://www.php.net/ChangeLog-8.php#PHP_8_3) | [8.2](https://www.php.net/ChangeLog-8.php#PHP_8_2) | [8.1](https://www.php.net/ChangeLog-8.php#PHP_8_1) | [8.0](https://www.php.net/ChangeLog-8.php#PHP_8_0) ##### Version 8.4.6 **10 Apr 2025** * BCMath: + Fixed pointer subtraction for scale. * Core: + Fixed property hook backing value access in multi-level inheritance. + Fixed accidentally inherited default value in overridden virtual properties. + Fixed bug [GH-17376](https://github.com/php/php-src/issues/17376) (Broken JIT polymorphism for property hooks added to child class). + Fixed bug [GH-17913](https://github.com/php/php-src/issues/17913) (ReflectionFunction::isDeprecated() returns incorrect results for closures created from magic \_\_call()). + Fixed bug [GH-17941](https://github.com/php/php-src/issues/17941) (Stack-use-after-return with lazy objects and hooks). + Fixed bug [GH-17988](https://github.com/php/php-src/issues/17988) (Incorrect handling of hooked props without get hook in get\_object\_vars()). + Fixed bug [GH-17998](https://github.com/php/php-src/issues/17998) (Skipped lazy object initialization on primed SIMPLE\_WRITE cache). + Fixed bug [GH-17998](https://github.com/php/php-src/issues/17998) (Assignment to backing value in set hook of lazy proxy calls hook again). + Fixed bug [GH-17961](https://github.com/php/php-src/issues/17961) (use-after-free during dl()'ed module class destruction). + Fixed bug [GH-15367](https://github.com/php/php-src/issues/15367) (dl() of module with aliased class crashes in shutdown). + Fixed OSS-Fuzz #403308724. + Fixed bug [GH-13193](https://github.com/php/php-src/issues/13193) again (Significant performance degradation in 'foreach'). * DBA: + Fixed assertion violation when opening the same file with dba\_open multiple times. * DOM: + Fixed bug [GH-17991](https://github.com/php/php-src/issues/17991) (Assertion failure dom\_attr\_value\_write). + Fix weird unpack behaviour in DOM. + Fixed bug [GH-18090](https://github.com/php/php-src/issues/18090) (DOM: Svg attributes and tag names are being lowercased). + Fix xinclude destruction of live attributes. * Fuzzer: + Fixed bug [GH-18081](https://github.com/php/php-src/issues/18081) (Memory leaks in error paths of fuzzer SAPI). * GD: + Fixed bug [GH-17984](https://github.com/php/php-src/issues/17984) (calls with arguments as array with references). * LDAP: + Fixed bug [GH-18015](https://github.com/php/php-src/issues/18015) (Error messages for ldap\_mod\_replace are confusing). * Mbstring: + Fixed bug [GH-17989](https://github.com/php/php-src/issues/17989) (mb\_output\_handler crash with unset http\_output\_conv\_mimetypes). * Opcache: + Fixed bug [GH-15834](https://github.com/php/php-src/issues/15834) (Segfault with hook "simple get" cache slot and minimal JIT). + Fixed bug [GH-17966](https://github.com/php/php-src/issues/17966) (Symfony JIT 1205 assertion failure). + Fixed bug [GH-18037](https://github.com/php/php-src/issues/18037) (SEGV Zend/zend\_execute.c). + Fixed bug [GH-18050](https://github.com/php/php-src/issues/18050) (IN\_ARRAY optimization in DFA pass is broken). + Fixed bug [GH-18113](https://github.com/php/php-src/issues/18113) (stack-buffer-overflow ext/opcache/jit/ir/ir\_sccp.c). + Fixed bug [GH-18112](https://github.com/php/php-src/issues/18112) (NULL access with preloading and INI option). + Fixed bug [GH-18107](https://github.com/php/php-src/issues/18107) (Opcache CFG jmp optimization with try-finally breaks the exception table). * PDO: + Fix memory leak when destroying PDORow. * Standard: + Fix memory leaks in array\_any() / array\_all(). * SOAP: + Fixed bug [#66049](http://bugs.php.net/66049) (Typemap can break parsing in parse\_packet\_soap leading to a segfault) . * SPL: + Fixed bug [GH-18018](https://github.com/php/php-src/issues/18018) (RC1 data returned from offsetGet causes UAF in ArrayObject). * Treewide: + Fixed bug [GH-17736](https://github.com/php/php-src/issues/17736) (Assertion failure zend\_reference\_destroy()). * Windows: + Fixed bug [GH-17836](https://github.com/php/php-src/issues/17836) (zend\_vm\_gen.php shouldn't break on Windows line endings). ##### Version 8.4.5 * BCMath: + Fixed bug [GH-17398](https://github.com/php/php-src/issues/17398) (bcmul memory leak). * Core: + Fixed bug [GH-17623](https://github.com/php/php-src/issues/17623) (Broken stack overflow detection for variable compilation). + Fixed bug [GH-17618](https://github.com/php/php-src/issues/17618) (UnhandledMatchError does not take zend.exception\_ignore\_args=1 into account). + Fix fallback paths in fast\_long\_{add,sub}\_function. + Fixed bug OSS-Fuzz #391975641 (Crash when accessing property backing value by reference). + Fixed bug [GH-17718](https://github.com/php/php-src/issues/17718) (Calling static methods on an interface that has `\_\_callStatic` is allowed). + Fixed bug [GH-17713](https://github.com/php/php-src/issues/17713) (ReflectionProperty::getRawValue() and related methods may call hooks of overridden properties). + Fixed bug [GH-17916](https://github.com/php/php-src/issues/17916) (Final abstract properties should error). + Fixed bug [GH-17866](https://github.com/php/php-src/issues/17866) (zend\_mm\_heap corrupted error after upgrading from 8.4.3 to 8.4.4). + Fixed [GHSA-rwp7-7vc6-8477](https://github.com/php/php-src/security/advisories/GHSA-rwp7-7vc6-8477) (Reference counting in php\_request\_shutdown causes Use-After-Free). (CVE-2024-11235) * DOM: + Fixed bug [GH-17609](https://github.com/php/php-src/issues/17609) (Typo in error message: Dom\NO\_DEFAULT\_NS instead of Dom\HTML\_NO\_DEFAULT\_NS). + Fixed bug [GH-17802](https://github.com/php/php-src/issues/17802) (\Dom\HTMLDocument querySelector attribute name is case sensitive in HTML). + Fixed bug [GH-17847](https://github.com/php/php-src/issues/17847) (xinclude destroys live node). + Fix using Dom\Node with Dom\XPath callbacks. * GD: + Fixed bug [GH-17703](https://github.com/php/php-src/issues/17703) (imagescale with both width and height negative values triggers only an Exception on width). + Fixed bug [GH-17772](https://github.com/php/php-src/issues/17772) (imagepalettetotruecolor crash with memory\_limit=2M). * FFI: + Fix FFI Parsing of Pointer Declaration Lists. * FPM: + Fixed bug [GH-17643](https://github.com/php/php-src/issues/17643) (FPM with httpd ProxyPass encoded PATH\_INFO env). * LDAP: + Fixed bug [GH-17704](https://github.com/php/php-src/issues/17704) (ldap\_search fails when $attributes contains a non-packed array with numerical keys). * LibXML: + Fixed [GHSA-wg4p-4hqh-c3g9](https://github.com/php/php-src/security/advisories/GHSA-wg4p-4hqh-c3g9) (Reocurrence of #72714). + Fixed [GHSA-p3x9-6h7p-cgfc](https://github.com/php/php-src/security/advisories/GHSA-p3x9-6h7p-cgfc) (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) * MBString: + Fixed bug [GH-17503](https://github.com/php/php-src/issues/17503) (Undefined float conversion in mb\_convert\_variables). * Opcache: + Fixed bug [GH-17654](https://github.com/php/php-src/issues/17654) (Multiple classes using same trait causes function JIT crash). + Fixed bug [GH-17577](https://github.com/php/php-src/issues/17577) (JIT packed type guard crash). + Fixed bug [GH-17747](https://github.com/php/php-src/issues/17747) (Exception on reading property in register-based FETCH\_OBJ\_R breaks JIT). + Fixed bug [GH-17715](https://github.com/php/php-src/issues/17715) (Null pointer deref in observer API when calling cases() method on preloaded enum). + Fixed bug [GH-17868](https://github.com/php/php-src/issues/17868) (Cannot allocate memory with tracing JIT on 8.4.4). * PDO\_SQLite: + Fixed [GH-17837](https://github.com/php/php-src/issues/17837) ()::getColumnMeta() on unexecuted statement segfaults). + Fix cycle leak in sqlite3 setAuthorizer(). + Fix memory leaks in pdo\_sqlite callback registration. * Phar: + Fixed bug [GH-17808](https://github.com/php/php-src/issues/17808): PharFileInfo refcount bug. * PHPDBG: + Partially fixed bug [GH-17387](https://github.com/php/php-src/issues/17387) (Trivial crash in phpdbg lexer). + Fix memory leak in phpdbg calling registered function. * Reflection: + Fixed bug [GH-15902](https://github.com/php/php-src/issues/15902) (Core dumped in ext/reflection/php\_reflection.c). + Fixed missing final and abstract flags when dumping properties. * Standard: + Fixed bug [#72666](http://bugs.php.net/72666) (stat cache clearing inconsistent between file:// paths and plain paths). * Streams: + Fixed bug [GH-17650](https://github.com/php/php-src/issues/17650) (realloc with size 0 in user\_filters.c). + Fix memory leak on overflow in \_php\_stream\_scandir(). + Fixed [GHSA-hgf5-96fm-v528](https://github.com/php/php-src/security/advisories/GHSA-hgf5-96fm-v528) (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) + Fixed [GHSA-52jp-hrpf-2jff](https://github.com/php/php-src/security/advisories/GHSA-52jp-hrpf-2jff) (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) + Fixed [GHSA-pcmh-g36c-qc44](https://github.com/php/php-src/security/advisories/GHSA-pcmh-g36c-qc44) (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) + Fixed [GHSA-v8xr-gpvj-cx9g](https://github.com/php/php-src/security/advisories/GHSA-v8xr-gpvj-cx9g) (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) * Windows: + Fixed phpize for Windows 11 (24H2). + Fixed [GH-17855](https://github.com/php/php-src/issues/17855) (CURL\_STATICLIB flag set even if linked with shared lib). * Zlib: + Fixed bug [GH-17745](https://github.com/php/php-src/issues/17745) (zlib extension incorrectly handles object arguments). + Fix memory leak when encoding check fails. + Fix zlib support for large files. ##### Version 8.4.4 **13 Feb 2025** * Core: + Fixed bug [GH-17234](https://github.com/php/php-src/issues/17234) (Numeric parent hook call fails with assertion). + Fixed bug [GH-16892](https://github.com/php/php-src/issues/16892) (ini\_parse\_quantity() fails to parse inputs starting with 0x0b). + Fixed bug [GH-16886](https://github.com/php/php-src/issues/16886) (ini\_parse\_quantity() fails to emit warning for 0x+0). + Fixed bug [GH-17222](https://github.com/php/php-src/issues/17222) (\_\_PROPERTY\_\_ magic constant does not work in all constant expression contexts). + Fixed bug [GH-17214](https://github.com/php/php-src/issues/17214) (Relax final+private warning for trait methods with inherited final). + Fixed NULL arithmetic during system program execution on Windows. + Fixed potential OOB when checking for trailing spaces on Windows. + Fixed bug [GH-17408](https://github.com/php/php-src/issues/17408) (Assertion failure Zend/zend\_exceptions.c). + Fix may\_have\_extra\_named\_args flag for ZEND\_AST\_UNPACK. + Fix NULL arithmetic in System V shared memory emulation for Windows. + Fixed bug [GH-17597](https://github.com/php/php-src/issues/17597) (#[\Deprecated] does not work for \_\_call() and \_\_callStatic()). * DOM: + Fixed bug [GH-17397](https://github.com/php/php-src/issues/17397) (Assertion failure ext/dom/php\_dom.c). + Fixed bug [GH-17486](https://github.com/php/php-src/issues/17486) (Incorrect error line numbers reported in Dom\HTMLDocument::createFromString). + Fixed bug [GH-17481](https://github.com/php/php-src/issues/17481) (UTF-8 corruption in \Dom\HTMLDocument). + Fixed bug [GH-17500](https://github.com/php/php-src/issues/17500) (Segfault with requesting nodeName on nameless doctype). + Fixed bug [GH-17485](https://github.com/php/php-src/issues/17485) (upstream fix, Self-closing tag on void elements shouldn't be a parse error/warning in \Dom\HTMLDocument). + Fixed bug [GH-17572](https://github.com/php/php-src/issues/17572) (getElementsByTagName returns collections with tagName-based indexing). * Enchant: + Fix crashes in enchant when passing null bytes. * FTP: + Fixed bug [GH-16800](https://github.com/php/php-src/issues/16800) (ftp functions can abort with EINTR). * GD: + Fixed bug [GH-17349](https://github.com/php/php-src/issues/17349) (Tiled truecolor filling looses single color transparency). + Fixed bug [GH-17373](https://github.com/php/php-src/issues/17373) (imagefttext() ignores clipping rect for palette images). + Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate). + Added support for reading GIFs without colormap to bundled libgd. * Gettext: + Fixed bug [GH-17400](https://github.com/php/php-src/issues/17400) (bindtextdomain SEGV on invalid domain). * Intl: + Fixed bug [GH-11874](https://github.com/php/php-src/issues/11874) (intl causing segfault in docker images). * Opcache: + Fixed bug [GH-15981](https://github.com/php/php-src/issues/15981) (Segfault with frameless jumps and minimal JIT). + Fixed bug [GH-17307](https://github.com/php/php-src/issues/17307) (Internal closure causes JIT failure). + Fixed bug [GH-17428](https://github.com/php/php-src/issues/17428) (Assertion failure ext/opcache/jit/zend\_jit\_ir.c:8940). + Fixed bug [GH-17564](https://github.com/php/php-src/issues/17564) (Potential UB when reading from / writing to struct padding). * PCNTL: + Fixed pcntl\_setcpuaffinity exception type from ValueError to TypeError for the cpu mask argument with entries type different than int/string. * PCRE: + Fixed bug [GH-17122](https://github.com/php/php-src/issues/17122) (memory leak in regex). * PDO: + Fixed a memory leak when the GC is used to free a PDOStatment. + Fixed a crash in the PDO Firebird Statement destructor. + Fixed UAFs when changing default fetch class ctor args. * PgSql: + Fixed build failure when the constant PGRES\_TUPLES\_CHUNK is not present in the system. * Phar: + Fixed bug [GH-17518](https://github.com/php/php-src/issues/17518) (offset overflow phar extractTo()). * PHPDBG: + Fix crashes in function registration + test. * Session: + Fix type confusion with session SID constant. + Fixed bug [GH-17541](https://github.com/php/php-src/issues/17541) (ext/session NULL pointer dereferencement during ID reset). * SimpleXML: + Fixed bug [GH-17409](https://github.com/php/php-src/issues/17409) (Assertion failure Zend/zend\_hash.c:1730). * SNMP: + Fixed bug [GH-17330](https://github.com/php/php-src/issues/17330) (SNMP::setSecurity segfault on closed session). * SPL: + Fixed bug [GH-15833](https://github.com/php/php-src/issues/15833) (Segmentation fault (access null pointer) in ext/spl/spl\_array.c). + Fixed bug [GH-17516](https://github.com/php/php-src/issues/17516) (SplFileTempObject::getPathInfo() Undefined behavior on invalid class). * Standard: + Fixed bug [GH-17447](https://github.com/php/php-src/issues/17447) (Assertion failure when array popping a self addressing variable). * Windows: + Fixed clang compiler detection. * Zip: + Fixed bug [GH-17139](https://github.com/php/php-src/issues/17139) (Fix zip\_entry\_name() crash on invalid entry). ##### Version 8.4.3 **16 Jan 2025** * BcMath: + Fixed bug [GH-17049](https://github.com/php/php-src/issues/17049) (Correctly compare 0 and -0). + Fixed bug [GH-17061](https://github.com/php/php-src/issues/17061) (Now Number::round() does not remove trailing zeros). + Fixed bug [GH-17064](https://github.com/php/php-src/issues/17064) (Correctly round rounding mode with zero edge case). + Fixed bug [GH-17275](https://github.com/php/php-src/issues/17275) (Fixed the calculation logic of dividend scale). * Core: + Fixed bug OSS-Fuzz #382922236 (Duplicate dynamic properties in hooked object iterator properties table). + Fixed unstable get\_iterator pointer for hooked classes in shm on Windows. + Fixed bug [GH-17106](https://github.com/php/php-src/issues/17106) (ZEND\_MATCH\_ERROR misoptimization). + Fixed bug [GH-17162](https://github.com/php/php-src/issues/17162) (zend\_array\_try\_init() with dtor can cause engine UAF). + Fixed bug [GH-17101](https://github.com/php/php-src/issues/17101) (AST->string does not reproduce constructor property promotion correctly). + Fixed bug [GH-17200](https://github.com/php/php-src/issues/17200) (Incorrect dynamic prop offset in hooked prop iterator). + Fixed bug [GH-17216](https://github.com/php/php-src/issues/17216) (Trampoline crash on error). * DBA: + Skip test if inifile is disabled. * DOM: + Fixed bug [GH-17145](https://github.com/php/php-src/issues/17145) (DOM memory leak). + Fixed bug [GH-17201](https://github.com/php/php-src/issues/17201) (Dom\TokenList issues with interned string replace). + Fixed bug [GH-17224](https://github.com/php/php-src/issues/17224) (UAF in importNode). * Embed: + Make build command for program using embed portable. * FFI: + Fixed bug [#79075](http://bugs.php.net/79075) (FFI header parser chokes on comments). + Fix memory leak on ZEND\_FFI\_TYPE\_CHAR conversion failure. + Fixed bug [GH-16013](https://github.com/php/php-src/issues/16013) and bug #80857 (Big endian issues). * Fileinfo: + Fixed bug [GH-17039](https://github.com/php/php-src/issues/17039) (PHP 8.4: Incorrect MIME content type). * FPM: + Fixed bug [GH-13437](https://github.com/php/php-src/issues/13437) (FPM: ERROR: scoreboard: failed to lock (already locked)). + Fixed bug [GH-17112](https://github.com/php/php-src/issues/17112) (Macro redefinitions). + Fixed bug [GH-17208](https://github.com/php/php-src/issues/17208) (bug64539-status-json-encoding.phpt fail on 32-bits). * GD: + Fixed bug [GH-16255](https://github.com/php/php-src/issues/16255) (Unexpected nan value in ext/gd/libgd/gd\_filter.c). + Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs). * Gettext: + Fixed bug [GH-17202](https://github.com/php/php-src/issues/17202) (Segmentation fault ext/gettext/gettext.c bindtextdomain()). * Iconv: + Fixed bug [GH-17047](https://github.com/php/php-src/issues/17047) (UAF on iconv filter failure). * LDAP: + Fixed bug [GH-17280](https://github.com/php/php-src/issues/17280) (ldap\_search() fails when $attributes array has holes). * LibXML: + Fixed bug [GH-17223](https://github.com/php/php-src/issues/17223) (Memory leak in libxml encoding handling). * MBString: + Fixed bug [GH-17112](https://github.com/php/php-src/issues/17112) (Macro redefinitions). * Opcache: + opcache\_get\_configuration() properly reports jit\_prof\_threshold. + Fixed bug [GH-17140](https://github.com/php/php-src/issues/17140) (Assertion failure in JIT trace exit with ZEND\_FETCH\_DIM\_FUNC\_ARG). + Fixed bug [GH-17151](https://github.com/php/php-src/issues/17151) (Incorrect RC inference of op1 of FETCH\_OBJ and INIT\_METHOD\_CALL). + Fixed bug [GH-17246](https://github.com/php/php-src/issues/17246) (GC during SCCP causes segfault). + Fixed bug [GH-17257](https://github.com/php/php-src/issues/17257) (UBSAN warning in ext/opcache/jit/zend\_jit\_vm\_helpers.c). * PCNTL: + Fix memory leak in cleanup code of pcntl\_exec() when a non stringable value is encountered past the first entry. * PgSql: + Fixed bug [GH-17158](https://github.com/php/php-src/issues/17158) (pg\_fetch\_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument). + Fixed further ArgumentCountError for calls with flexible number of arguments. * Phar: + Fixed bug [GH-17137](https://github.com/php/php-src/issues/17137) (Segmentation fault ext/phar/phar.c). * SimpleXML: + Fixed bug [GH-17040](https://github.com/php/php-src/issues/17040) (SimpleXML's unset can break DOM objects). + Fixed bug [GH-17153](https://github.com/php/php-src/issues/17153) (SimpleXML crash when using autovivification on document). * Sockets: + Fixed bug [GH-16276](https://github.com/php/php-src/issues/16276) (socket\_strerror overflow handling with INT\_MIN). + Fixed overflow on SO\_LINGER values setting, strengthening values check on SO\_SNDTIMEO/SO\_RCVTIMEO for socket\_set\_option(). * SPL: + Fixed bug [GH-17198](https://github.com/php/php-src/issues/17198) (SplFixedArray assertion failure with get\_object\_vars). + Fixed bug [GH-17225](https://github.com/php/php-src/issues/17225) (NULL deref in spl\_directory.c). * Streams: + Fixed bug [GH-17037](https://github.com/php/php-src/issues/17037) (UAF in user filter when adding existing filter name due to incorrect error handling). + Fixed bug [GH-16810](https://github.com/php/php-src/issues/16810) (overflow on fopen HTTP wrapper timeout value). + Fixed bug [GH-17067](https://github.com/php/php-src/issues/17067) (glob:// wrapper doesn't cater to CWD for ZTS builds). * Windows: + Hardened proc\_open() against cmd.exe hijacking. * XML: + Fixed bug [GH-1718](https://github.com/php/php-src/issues/1718) (unreachable program point in zend\_hash). ##### Version 8.4.2 **19 Dec 2024** * BcMath: + Fixed bug [GH-16978](https://github.com/php/php-src/issues/16978) (Avoid unnecessary padding with leading zeros) (Saki Takamachi) * Calendar: + Fixed jdtogregorian overflow. + Fixed cal\_to\_jd julian\_days argument overflow. * COM: + Fixed bug [GH-16991](https://github.com/php/php-src/issues/16991) (Getting typeinfo of non DISPATCH variant segfaults). * Core: + Fail early in \*nix configuration build script. + Fixed bug [GH-16344](https://github.com/php/php-src/issues/16344) (setRawValueWithoutLazyInitialization() and skipLazyInitialization() may change initialized proxy). + Fixed bug [GH-16727](https://github.com/php/php-src/issues/16727) (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)). + Fixed bug [GH-16799](https://github.com/php/php-src/issues/16799) (Assertion failure at Zend/zend\_vm\_execute.h:7469). + Fixed bug [GH-16630](https://github.com/php/php-src/issues/16630) (UAF in lexer with encoding translation and heredocs). + Fix is\_zend\_ptr() huge block comparison. + Fixed potential OOB read in zend\_dirname() on Windows. + Fixed bug [GH-15964](https://github.com/php/php-src/issues/15964) (printf() can strip sign of -INF). * Curl: + Fixed bug [GH-16802](https://github.com/php/php-src/issues/16802) (open\_basedir bypass using curl extension). + Fix various memory leaks in curl mime handling. * DBA: + Fixed bug [GH-16990](https://github.com/php/php-src/issues/16990) (dba\_list() is now zero-indexed instead of using resource ids) (kocsismate) * DOM: + Fixed bug [GH-16777](https://github.com/php/php-src/issues/16777) (Calling the constructor again on a DOM object after it is in a document causes UAF). + Fixed bug [GH-16906](https://github.com/php/php-src/issues/16906) (Reloading document can cause UAF in iterator). * FPM: + Fixed [GH-16432](https://github.com/php/php-src/issues/16432) (PHP-FPM 8.2 SIGSEGV in fpm\_get\_status). + Fixed bug [GH-16932](https://github.com/php/php-src/issues/16932) (wrong FPM status output). * GD: + Fixed [GH-16776](https://github.com/php/php-src/issues/16776) (imagecreatefromstring overflow). * GMP: + Fixed bug [GH-16890](https://github.com/php/php-src/issues/16890) (array\_sum() with GMP can loose precision (LLP64)). * Hash: + Fixed [GH-16711](https://github.com/php/php-src/issues/16711): Segfault in mhash(). * Opcache: + Fixed bug [GH-16851](https://github.com/php/php-src/issues/16851) (JIT\_G(enabled) not set correctly on other threads). + Fixed bug [GH-16902](https://github.com/php/php-src/issues/16902) (Set of opcache tests fail zts+aarch64). + Fixed bug [GH-16879](https://github.com/php/php-src/issues/16879) (JIT dead code skipping does not update call\_level). * OpenSSL: + Prevent unexpected array entry conversion when reading key. + Fix various memory leaks related to openssl exports. + Fix memory leak in php\_openssl\_pkey\_from\_zval(). * PDO: + Fixed memory leak of `setFetchMode()`. * Phar: + Fixed bug [GH-16695](https://github.com/php/php-src/issues/16695) (phar:// tar parser and zero-length file header blocks). * PHPDBG: + Fixed bug [GH-15208](https://github.com/php/php-src/issues/15208) (Segfault with breakpoint map and phpdbg\_clear()). * SAPI: + Fixed bug [GH-16998](https://github.com/php/php-src/issues/16998) (UBSAN warning in rfc1867). * SimpleXML: + Fixed bug [GH-16808](https://github.com/php/php-src/issues/16808) (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input). * SOAP: + Fix make check being invoked in ext/soap. * Standard: + Fixed bug [GH-16905](https://github.com/php/php-src/issues/16905) (Internal iterator functions can't handle UNDEF properties). + Fixed bug [GH-16957](https://github.com/php/php-src/issues/16957) (Assertion failure in array\_shift with self-referencing array). * Streams: + Fixed network connect poll interuption handling. * Windows: + Fixed bug [GH-16849](https://github.com/php/php-src/issues/16849) (Error dialog causes process to hang). + Windows Server 2025 is now properly reported. ##### Version 8.4.1 **21 Nov 2024** * BcMath: + [RFC] Add bcfloor, bcceil and bcround to BCMath. + Improve performance. + Adjust bcround()'s $mode parameter to only accept the RoundingMode enum. + Fixed LONG\_MAX in BCMath ext. + Fixed bcdiv() div by one. + [RFC] Support object types in BCMath. + bcpow() performance improvement. + ext/bcmath: Check for scale overflow. + [RFC] ext/bcmath: Added bcdivmod. + Fix [GH-15968](https://github.com/php/php-src/issues/15968) (Avoid converting objects to strings in operator calculations). + Fixed bug [GH-16265](https://github.com/php/php-src/issues/16265) (Added early return case when result is 0) (Saki Takamachi). + Fixed bug [GH-16262](https://github.com/php/php-src/issues/16262) (Fixed a bug where size\_t underflows) (Saki Takamachi). + Fixed [GH-16236](https://github.com/php/php-src/issues/16236) (Fixed a bug in BcMath\Number::pow() and bcpow() when raising negative powers of 0) (Saki Takamachi). * Core: + Added zend\_call\_stack\_get implementation for NetBSD, DragonFlyBSD, Solaris and Haiku. + Enabled ifunc checks on FreeBSD from the 12.x releases. + Changed the type of PHP\_DEBUG and PHP\_ZTS constants to bool. + Fixed bug [GH-13142](https://github.com/php/php-src/issues/13142) (Undefined variable name is shortened when contains \0). + Fixed bug [GH-13178](https://github.com/php/php-src/issues/13178) (Iterator positions incorrect when converting packed array to hashed). + Fixed zend fiber build for solaris default mode (32 bits). + Fixed zend call stack size for macOs/arm64. + Added support for Zend Max Execution Timers on FreeBSD. + Ensure fiber stack is not backed by THP. + Implement [GH-13609](https://github.com/php/php-src/issues/13609) (Dump wrapped object in WeakReference class). + Added sparc64 arch assembly support for zend fiber. + Fixed [GH-13581](https://github.com/php/php-src/issues/13581) no space available for TLS on NetBSD. + Added fiber Sys-V loongarch64 support. + Adjusted closure names to include the parent function's name. + Improve randomness of uploaded file names and files created by tempnam(). + Added gc and shutdown callbacks to zend\_mm custom handlers. + Fixed bug [GH-14650](https://github.com/php/php-src/issues/14650) (Compute the size of pages before allocating memory). + Fixed bug [GH-11928](https://github.com/php/php-src/issues/11928) (The --enable-re2c-cgoto doesn't add the -g flag). + Added the #[\Deprecated] attribute. + Fixed [GH-11389](https://github.com/php/php-src/issues/11389) (Allow suspending fibers in destructors). + Fixed bug [GH-14801](https://github.com/php/php-src/issues/14801) (Fix build for armv7). + Implemented property hooks RFC. + Fix [GH-14978](https://github.com/php/php-src/issues/14978) (The xmlreader extension phpize build). + Throw Error exception when encountering recursion during comparison, rather than fatal error. + Added missing cstddef include for C++ builds. + Updated build system scripts config.guess to 2024-07-27 and config.sub to 2024-05-27. + Fixed bug [GH-15240](https://github.com/php/php-src/issues/15240) (Infinite recursion in trait hook). + Fixed bug [GH-15140](https://github.com/php/php-src/issues/15140) (Missing variance check for abstract set with asymmetric type). + Fixed bug [GH-15181](https://github.com/php/php-src/issues/15181) (Disabled output handler is flushed again). + Passing E\_USER\_ERROR to trigger\_error() is now deprecated. + Fixed bug [GH-15292](https://github.com/php/php-src/issues/15292) (Dynamic AVX detection is broken for MSVC). + Using "\_" as a class name is now deprecated. + Exiting a namespace now clears seen symbols. + The exit (and die) language constructs now behave more like a function. They can be passed liked callables, are affected by the strict\_types declare statement, and now perform the usual type coercions instead of casting any non-integer value to a string. As such, passing invalid types to exit/die may now result in a TypeError being thrown. + Fixed bug [GH-15438](https://github.com/php/php-src/issues/15438) (Hooks on constructor promoted properties without visibility are ignored). + Fixed bug [GH-15419](https://github.com/php/php-src/issues/15419) (Missing readonly+hook incompatibility check for readonly classes). + Fixed bug [GH-15187](https://github.com/php/php-src/issues/15187) (Various hooked object iterator issues). + Fixed bug [GH-15456](https://github.com/php/php-src/issues/15456) (Crash in get\_class\_vars() on virtual properties). + Fixed bug [GH-15501](https://github.com/php/php-src/issues/15501) (Windows HAVE\_<header>\_H macros defined to 1 or undefined). + Implemented asymmetric visibility for properties. + Fixed bug [GH-15644](https://github.com/php/php-src/issues/15644) (Asymmetric visibility doesn't work with hooks). + Implemented lazy objects RFC. + Fixed bug [GH-15686](https://github.com/php/php-src/issues/15686) (Building shared iconv with external iconv library). + Fixed missing error when adding asymmetric visibility to unilateral virtual property. + Fixed bug [GH-15693](https://github.com/php/php-src/issues/15693) (Unnecessary include in main.c bloats binary). + Fixed bug [GH-15731](https://github.com/php/php-src/issues/15731) (AllowDynamicProperties validation should error on enums). + Fixed bug [GH-16040](https://github.com/php/php-src/issues/16040) (Use-after-free of object released in hook). + Fixed bug [GH-16026](https://github.com/php/php-src/issues/16026) (Reuse of dtor fiber during shutdown). + Fixed bug [GH-15999](https://github.com/php/php-src/issues/15999) (zend\_std\_write\_property() assertion failure with lazy objects). + Fixed bug [GH-15960](https://github.com/php/php-src/issues/15960) (Foreach edge cases with lazy objects). + Fixed bug [GH-16185](https://github.com/php/php-src/issues/16185) (Various hooked object iterator issues). + Fixed bug OSS-Fuzz #371445205 (Heap-use-after-free in attr\_free). + Fixed missing error when adding asymmetric visibility to static properties. + Fixed bug OSS-Fuzz #71407 (Null-dereference WRITE in zend\_lazy\_object\_clone). + Fixed bug [GH-16574](https://github.com/php/php-src/issues/16574) (Incorrect error "undefined method" messages). + Fixed bug [GH-16577](https://github.com/php/php-src/issues/16577) (EG(strtod\_state).freelist leaks with opcache.preload). + Fixed bug [GH-16615](https://github.com/php/php-src/issues/16615) (Assertion failure in zend\_std\_read\_property). + Fixed bug [GH-16342](https://github.com/php/php-src/issues/16342) (Added ReflectionProperty::isLazy()). + Fixed bug [GH-16725](https://github.com/php/php-src/issues/16725) (Incorrect access check for non-hooked props in hooked object iterator). * Curl: + Deprecated the CURLOPT\_BINARYTRANSFER constant. + Bumped required libcurl version to 7.61.0. + Added feature\_list key to the curl\_version() return value. + Added constants CURL\_HTTP\_VERSION\_3 (libcurl 7.66) and CURL\_HTTP\_VERSION\_3ONLY (libcurl 7.88) as options for CURLOPT\_HTTP\_VERSION (Ayesh Karunaratne) + Added CURLOPT\_TCP\_KEEPCNT to set the number of probes to send before dropping the connection. + Added CURLOPT\_PREREQFUNCTION Curl option to set a custom callback after the connection is established, but before the request is performed. + Added CURLOPT\_SERVER\_RESPONSE\_TIMEOUT, which was formerly known as CURLOPT\_FTP\_RESPONSE\_TIMEOUT. + The CURLOPT\_DNS\_USE\_GLOBAL\_CACHE option is now silently ignored. + Added CURLOPT\_DEBUGFUNCTION as a Curl option. + Fixed bug [GH-16359](https://github.com/php/php-src/issues/16359) (crash with curl\_setopt\* CURLOPT\_WRITEFUNCTION without null callback). + Fixed bug [GH-16723](https://github.com/php/php-src/issues/16723) (CURLMOPT\_PUSHFUNCTION issues). * Date: + Added DateTime[Immutable]::createFromTimestamp. + Added DateTime[Immutable]::[get|set]Microsecond. + Constants SUNFUNCS\_RET\_TIMESTAMP, SUNFUNCS\_RET\_STRING, and SUNFUNCS\_RET\_DOUBLE are now deprecated. + Fixed bug [GH-13773](https://github.com/php/php-src/issues/13773) (DatePeriod not taking into account microseconds for end date). * DBA: + Passing null or false to dba\_key\_split() is deprecated. * Debugging: + Fixed bug [GH-15923](https://github.com/php/php-src/issues/15923) (GDB: Python Exception <class 'TypeError'>: exceptions must derive from BaseException). * DOM: + Added DOMNode::compareDocumentPosition(). + Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents). + Fix cloning attribute with namespace disappearing namespace. + Implement DOM HTML5 parsing and serialization RFC. + Fix DOMElement->prefix with empty string creates bogus prefix. + Handle OOM more consistently. + Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. + Added DOMXPath::quote() static method. + Implemented opt-in ext/dom spec compliance RFC. + Fixed bug [#79701](http://bugs.php.net/79701) (getElementById does not correctly work with duplicate definitions). + Implemented "New ext-dom features in PHP 8.4" RFC. + Fixed [GH-14698](https://github.com/php/php-src/issues/14698) (segfault on DOM node dereference). + Improve support for template elements. + Fix trampoline leak in xpath callables. + Throw instead of silently failing when creating a too long text node in (DOM)ParentNode and (DOM)ChildNode. + Fixed bug [GH-15192](https://github.com/php/php-src/issues/15192) (Segmentation fault in dom extension (html5\_serializer)). + Deprecated DOM\_PHP\_ERR constant. + Removed DOMImplementation::getFeature(). + Fixed bug [GH-15331](https://github.com/php/php-src/issues/15331) (Element::$substitutedNodeValue test failed). + Fixed bug [GH-15570](https://github.com/php/php-src/issues/15570) (Segmentation fault (access null pointer) in ext/dom/html5\_serializer.c). + Fixed bug [GH-13988](https://github.com/php/php-src/issues/13988) (Storing DOMElement consume 4 times more memory in PHP 8.1 than in PHP 8.0). + Fix XML serializer errata: xmlns="" serialization should be allowed. + Fixed bug [GH-15910](https://github.com/php/php-src/issues/15910) (Assertion failure in ext/dom/element.c). + Fix unsetting DOM properties. + Fixed bug [GH-16190](https://github.com/php/php-src/issues/16190) (Using reflection to call Dom\Node::\_\_construct causes assertion failure). + Fix edge-case in DOM parsing decoding. + Fixed bug [GH-16465](https://github.com/php/php-src/issues/16465) (Heap buffer overflow in DOMNode->getElementByTagName). + Fixed bug [GH-16594](https://github.com/php/php-src/issues/16594) (Assertion failure in DOM -> before). * Fileinfo: + Update to libmagic 5.45. + Fixed bug [#65106](http://bugs.php.net/65106) (PHP fails to compile ext/fileinfo). * FPM: + Implement [GH-12385](https://github.com/php/php-src/issues/12385) (flush headers without body when calling flush()). + Added DragonFlyBSD system to the list which set FPM\_BACKLOG\_DEFAULT to SOMAXCONN. + /dev/poll events.mechanism for Solaris/Illumos setting had been retired. + Added memory peak to the scoreboard / status page. * FTP: + Removed the deprecated inet\_ntoa call support. + Fixed bug [#63937](http://bugs.php.net/63937) (Upload speed 10 times slower with PHP). * GD: + Fix parameter numbers and missing alpha check for imagecolorset(). + imagepng/imagejpeg/imagewep/imageavif now throw an exception on invalid quality parameter. + Check overflow/underflow for imagescale/imagefilter. + Added gdImageClone to bundled libgd. * Gettext: + bind\_textdomain\_codeset, textdomain and d(\*)gettext functions now throw an exception on empty domain. * GMP: + The GMP class is now final and cannot be extended anymore. + RFC: Change GMP bool cast behavior. * Hash: + Changed return type of hash\_update() to true. + Added HashContext::\_\_debugInfo(). + Deprecated passing incorrect data types for options to ext/hash functions. + Added SSE2 and SHA-NI implementation of SHA-256. + Fix [GH-15384](https://github.com/php/php-src/issues/15384) (Build fails on Alpine / Musl for amd64). + Fixed bug [GH-15742](https://github.com/php/php-src/issues/15742) (php\_hash\_sha.h incompatible with C++). * IMAP: + Moved to PECL. * Intl: + Added IntlDateFormatter::PATTERN constant. + Fixed Numberformatter::\_\_construct when the locale is invalid, now throws an exception. + Added NumberFormatter::ROUND\_TOWARD\_ZERO and ::ROUND\_AWAY\_FROM\_ZERO as aliases for ::ROUND\_DOWN and ::ROUND\_UP. + Added NumberFormatter::ROUND\_HALFODD. + Added PROPERTY\_IDS\_UNARY\_OPERATOR, PROPERTY\_ID\_COMPAT\_MATH\_START and PROPERTY\_ID\_COMPAT\_MATH\_CONTINUE constants. + Added IntlDateFormatter::getIanaID/intltz\_get\_iana\_id method/function. + Set to C++17 standard for icu 74 and onwards. + resourcebundle\_get(), ResourceBundle::get(), and accessing offsets on a ResourceBundle object now throw: - TypeError for invalid offset types - ValueError for an empty string - ValueError if the integer index does not fit in a signed 32 bit integer + ResourceBundle::get() now has a tentative return type of: ResourceBundle|array|string|int|null + Added the new Grapheme function grapheme\_str\_split. + Added IntlDateFormatter::parseToCalendar. + Added SpoofChecker::setAllowedChars to set unicode chars ranges. * LDAP: + Added LDAP\_OPT\_X\_TLS\_PROTOCOL\_MAX/LDAP\_OPT\_X\_TLS\_PROTOCOL\_TLS1\_3 constants. * LibXML: + Added LIBXML\_RECOVER constant. + libxml\_set\_streams\_context() now throws immediately on an invalid context instead of at the use-site. + Added LIBXML\_NO\_XXE constant. * MBString: + Added mb\_trim, mb\_ltrim and mb\_rtrim. + Added mb\_ucfirst and mb\_lcfirst. + Updated Unicode data tables to Unicode 15.1. + Fixed bug [GH-15824](https://github.com/php/php-src/issues/15824) (mb\_detect\_encoding(): Argument $encodings contains invalid encoding "UTF8"). + Updated Unicode data tables to Unicode 16.0. * Mysqli: + The mysqli\_ping() function and mysqli::ping() method are now deprecated, as the reconnect feature was removed in PHP 8.2. + The mysqli\_kill() function and mysqli::kill() method are now deprecated. If this functionality is needed a SQL "KILL" command can be used instead. + The mysqli\_refresh() function and mysqli::refresh() method are now deprecated. If this functionality is needed a SQL "FLUSH" command can be used instead. + Passing explicitly the $mode parameter to mysqli\_store\_result() has been deprecated. As the MYSQLI\_STORE\_RESULT\_COPY\_DATA constant was only used in conjunction with this function it has also been deprecated. * MySQLnd: + Fixed bug [GH-13440](https://github.com/php/php-src/issues/13440) (PDO quote bottleneck). + Fixed bug [GH-10599](https://github.com/php/php-src/issues/10599) (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection). * Opcache: + Added large shared segments support for FreeBSD. + If JIT is enabled, PHP will now exit with a fatal error on startup in case of JIT startup initialization issues. + Increased the maximum value of opcache.interned\_strings\_buffer to 32767 on 64bit archs. + Fixed bug [GH-13834](https://github.com/php/php-src/issues/13834) (Applying non-zero offset 36 to null pointer in zend\_jit.c). + Fixed bug [GH-14361](https://github.com/php/php-src/issues/14361) (Deep recursion in zend\_cfg.c causes segfault). + Fixed bug [GH-14873](https://github.com/php/php-src/issues/14873) (PHP 8.4 min function fails on typed integer). + Fixed bug [GH-15490](https://github.com/php/php-src/issues/15490) (Building of callgraph modifies preloaded symbols). + Fixed bug [GH-15178](https://github.com/php/php-src/issues/15178) (Assertion in tracing JIT on hooks). + Fixed bug [GH-15657](https://github.com/php/php-src/issues/15657) (Segmentation fault in dasm\_x86.h). + Added opcache\_jit\_blacklist() function. + Fixed bug [GH-16009](https://github.com/php/php-src/issues/16009) (Segmentation fault with frameless functions and undefined CVs). + Fixed bug [GH-16186](https://github.com/php/php-src/issues/16186) (Assertion failure in Zend/zend\_operators.c). + Fixed bug [GH-16572](https://github.com/php/php-src/issues/16572) (Incorrect result with reflection in low-trigger JIT). + Fixed [GH-16839](https://github.com/php/php-src/issues/16839) (Error on building Opcache JIT for Windows ARM64). * OpenSSL: + Fixed bug [#80269](http://bugs.php.net/80269) (OpenSSL sets Subject wrong with extraattribs parameter). + Implement request #48520 (openssl\_csr\_new - allow multiple values in DN). + Introduced new serial\_hex parameter to openssl\_csr\_sign. + Added X509\_PURPOSE\_OCSP\_HELPER and X509\_PURPOSE\_TIMESTAMP\_SIGN constants. + Bumped minimum required OpenSSL version to 1.1.1. + Added compile-time option --with-openssl-legacy-provider to enable legacy provider. + Added support for Curve25519 + Curve448 based keys. + Fixed bug [GH-13343](https://github.com/php/php-src/issues/13343) (openssl\_x509\_parse should not allow omitted seconds in UTCTimes). + Bumped minimum required OpenSSL version to 1.1.0. + Implement [GH-13514](https://github.com/php/php-src/issues/13514) PASSWORD\_ARGON2 from OpenSSL 3.2. * Output: + Clear output handler status flags during handler initialization. + Fixed bug with url\_rewriter.hosts not used by output\_add\_rewrite\_var(). * PCNTL: + Added pcntl\_setns for Linux. + Added pcntl\_getcpuaffinity/pcntl\_setcpuaffinity. + Updated pcntl\_get\_signal\_handler signal id upper limit to be more in line with platforms limits. + Added pcntl\_getcpu for Linux/FreeBSD/Solaris/Illumos. + Added pcntl\_getqos\_class/pcntl\_setqos\_class for macOs. + Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD. + Added FreeBSD's SIGTRAP handling to pcntl\_siginfo\_to\_zval. + Added POSIX pcntl\_waitid. + Fixed bug [GH-16769](https://github.com/php/php-src/issues/16769): (pcntl\_sigwaitinfo aborts on signal value as reference). * PCRE: + Upgrade bundled pcre2lib to version 10.43. + Add "/r" modifier. + Upgrade bundled pcre2lib to version 10.44. + Fixed [GH-16189](https://github.com/php/php-src/issues/16189) (underflow on offset argument). + Fix UAF issues with PCRE after request shutdown. * PDO: + Fixed setAttribute and getAttribute. + Implemented PDO driver-specific subclasses RFC. + Added support for PDO driver-specific SQL parsers. + Fixed bug [GH-14792](https://github.com/php/php-src/issues/14792) (Compilation failure on pdo\_\* extensions). + mysqlnd: support ER\_CLIENT\_INTERACTION\_TIMEOUT. + The internal header php\_pdo\_int.h is no longer installed; it is not supposed to be used by PDO drivers. + Fixed bug [GH-16167](https://github.com/php/php-src/issues/16167) (Prevent mixing PDO sub-classes with different DSN). + Fixed bug [GH-16314](https://github.com/php/php-src/issues/16314) ("Pdo\Mysql object is uninitialized" when opening a persistent connection). * PDO\_DBLIB: + Fixed setAttribute and getAttribute. + Added class Pdo\DbLib. * PDO\_Firebird: + Fixed setAttribute and getAttribute. + Feature: Add transaction isolation level and mode settings to pdo\_firebird. + Added class Pdo\Firebird. + Added Pdo\Firebird::ATTR\_API\_VERSION. + Added getApiVersion() and removed from getAttribute(). + Supported Firebird 4.0 datatypes. + Support proper formatting of time zone types. + Fixed [GH-15604](https://github.com/php/php-src/issues/15604) (Always make input parameters nullable). * PDO\_MYSQL: + Fixed setAttribute and getAttribute. + Added class Pdo\Mysql. + Added custom SQL parser. + Fixed [GH-15949](https://github.com/php/php-src/issues/15949) (PDO\_MySQL not properly quoting PDO\_PARAM\_LOB binary data). * PDO\_ODBC: + Added class Pdo\Odbc. * PDO\_PGSQL: + Fixed [GH-12423](https://github.com/php/php-src/issues/12423), DSN credentials being prioritized over the user/password PDO constructor arguments. + Fixed native float support with pdo\_pgsql query results. + Added class Pdo\Pgsql. + Retrieve the memory usage of the query result resource. + Added Pdo\Pgsql::setNoticeCallBack method to receive DB notices. + Added custom SQL parser. + Fixed [GH-15986](https://github.com/php/php-src/issues/15986) (Double-free due to Pdo\Pgsql::setNoticeCallback()). + Fixed [GH-12940](https://github.com/php/php-src/issues/12940) (Using PQclosePrepared when available instead of the DEALLOCATE command to free statements resources). + Remove PGSQL\_ATTR\_RESULT\_MEMORY\_SIZE constant as it is provided by the new PDO Subclass as Pdo\Pgsql::ATTR\_RESULT\_MEMORY\_SIZE. * PDO\_SQLITE: + Added class Pdo\Sqlite. + Fixed bug [#81227](http://bugs.php.net/81227) (PDO::inTransaction reports false when in transaction). + Added custom SQL parser. * PHPDBG: + array out of bounds, stack overflow handled for segfault handler on windows. + Fixed bug [GH-16041](https://github.com/php/php-src/issues/16041) (Support stack limit in phpdbg). * PGSQL: + Added the possibility to have no conditions for pg\_select. + Persistent connections support the PGSQL\_CONNECT\_FORCE\_RENEW flag. + Added pg\_result\_memory\_size to get the query result memory usage. + Added pg\_change\_password to alter an user's password. + Added pg\_put\_copy\_data/pg\_put\_copy\_end to send COPY commands and signal the end of the COPY. + Added pg\_socket\_poll to poll on the connection. + Added pg\_jit to get infos on server JIT support. + Added pg\_set\_chunked\_rows\_size to fetch results per chunk. + pg\_convert/pg\_insert/pg\_update/pg\_delete ; regexes are now cached. * Phar: + Fixed bug [GH-12532](https://github.com/php/php-src/issues/12532) (PharData created from zip has incorrect timestamp). * POSIX: + Added POSIX\_SC\_CHILD\_MAX and POSIX\_SC\_CLK\_TCK constants. + Updated posix\_isatty to set the error number on file descriptors. * PSpell: + Moved to PECL. * Random: + Fixed bug [GH-15094](https://github.com/php/php-src/issues/15094) (php\_random\_default\_engine() is not C++ conforming). + lcg\_value() is now deprecated. * Readline: + Fixed readline\_info, rl\_line\_buffer\_length/rl\_len globals on update. + Fixed bug [#51558](http://bugs.php.net/51558) (Shared readline build fails). + Fixed UAF with readline\_info(). * Reflection: + Implement [GH-12908](https://github.com/php/php-src/issues/12908) (Show attribute name/class in ReflectionAttribute dump). + Make ReflectionGenerator::getFunction() legal after generator termination. + Added ReflectionGenerator::isClosed(). + Fixed bug [GH-15718](https://github.com/php/php-src/issues/15718) (Segfault on ReflectionProperty::get{Hook,Hooks}() on dynamic properties). + Fixed bug [GH-15694](https://github.com/php/php-src/issues/15694) (ReflectionProperty::isInitialized() is incorrect for hooked properties). + Add missing ReflectionProperty::hasHook[s]() methods. + Add missing ReflectionProperty::isFinal() method. + Fixed bug [GH-16122](https://github.com/php/php-src/issues/16122) (The return value of ReflectionFunction::getNamespaceName() and ReflectionFunction::inNamespace() for closures is incorrect). + Fixed bug [GH-16162](https://github.com/php/php-src/issues/16162) (No ReflectionProperty::IS\_VIRTUAL) (DanielEScherzer) + Fixed the name of the second parameter of ReflectionClass::resetAsLazyGhost(). * Session: + INI settings session.sid\_length and session.sid\_bits\_per\_character are now deprecated. + Emit warnings for non-positive values of session.gc\_divisor and negative values of session.gc\_probability. + Fixed bug [GH-16590](https://github.com/php/php-src/issues/16590) (UAF in session\_encode()). * SimpleXML: + Fix signature of simplexml\_import\_dom(). * SNMP: + Removed the deprecated inet\_ntoa call support. * SOAP: + Add support for clark notation for namespaces in class map. + Mitigate #51561 (SoapServer with a extented class and using sessions, lost the setPersistence()). + Fixed bug [#49278](http://bugs.php.net/49278) (SoapClient::\_\_getLastResponseHeaders returns NULL if wsdl operation !has output). + Fixed bug [#44383](http://bugs.php.net/44383) (PHP DateTime not converted to xsd:datetime). + Fixed bug [GH-11941](https://github.com/php/php-src/issues/11941) (soap with session persistence will silently fail when "session" built as a shared object). + Passing an int to SoapServer::addFunction() is now deprecated. If all PHP functions need to be provided flatten the array returned by get\_defined\_functions(). + The SOAP\_FUNCTIONS\_ALL constant is now deprecated. + Fixed bug [#61525](http://bugs.php.net/61525) (SOAP functions require at least one space after HTTP header colon). + Implement request #47317 (SoapServer::\_\_getLastResponse()). * Sockets: + Removed the deprecated inet\_ntoa call support. + Added the SO\_EXECLUSIVEADDRUSE windows constant. + Added the SOCK\_CONN\_DGRAM/SOCK\_DCCP netbsd constants. + Added multicast group support for ipv4 on FreeBSD. + Added the TCP\_SYNCNT constant for Linux to set number of attempts to send SYN packets from the client. + Added the SO\_EXCLBIND constant for exclusive socket binding on illumos/solaris. + Updated the socket\_create\_listen backlog argument default value to SOMAXCONN. + Added the SO\_NOSIGPIPE constant to control the generation of SIGPIPE for macOs and FreeBSD. + Added SO\_LINGER\_SEC for macOs, true equivalent of SO\_LINGER in other platforms. + Add close-on-exec on socket created with socket\_accept on unixes. + Added IP\_PORTRANGE\* constants for BSD systems to control ephemeral port ranges. + Added SOCK\_NONBLOCK/SOCK\_CLOEXEC constants for socket\_create and socket\_create\_pair to apply O\_NONBLOCK/O\_CLOEXEC flags to the newly created sockets. + Added SO\_BINDTOIFINDEX to bind a socket to an interface index. * Sodium: + Add support for AEGIS-128L and AEGIS-256. + Enable AES-GCM on aarch64 with the ARM crypto extensions. * SPL: + Implement SeekableIterator for SplObjectStorage. + The SplFixedArray::\_\_wakeup() method has been deprecated as it implements \_\_serialize() and \_\_unserialize() which need to be overwritten instead. + Passing a non-empty string for the $escape parameter of: - SplFileObject::setCsvControl() - SplFileObject::fputcsv() - SplFileObject::fgetcsv() is now deprecated. * Standard: + Implement [GH-12188](https://github.com/php/php-src/issues/12188) (Indication for the int size in phpinfo()). + Partly fix [GH-12143](https://github.com/php/php-src/issues/12143) (Incorrect round() result for 0.49999999999999994). + Fix [GH-12252](https://github.com/php/php-src/issues/12252) (round(): Validate the rounding mode). + Increase the default BCrypt cost to 12. + Fixed bug [GH-12592](https://github.com/php/php-src/issues/12592) (strcspn() odd behaviour with NUL bytes and empty mask). + Removed the deprecated inet\_ntoa call support. + Cast large floats that are within int range to int in number\_format so the precision is not lost. + Add support for 4 new rounding modes to the round() function. + debug\_zval\_dump() now indicates whether an array is packed. + Fix [GH-12143](https://github.com/php/php-src/issues/12143) (Optimize round). + Changed return type of long2ip to string from string|false. + Fix [GH-12143](https://github.com/php/php-src/issues/12143) (Extend the maximum precision round can handle by one digit). + Added the http\_get\_last\_response\_headers() and http\_clear\_last\_response\_headers() that allows retrieving the same content as the magic $http\_response\_header variable. + Add php\_base64\_encode\_ex() API. + Implemented "Raising zero to the power of negative number" RFC. + Added array\_find(), array\_find\_key(), array\_all(), and array\_any(). + Change highlight\_string() and print\_r() return type to string|true. + Fix references in request\_parse\_body() options array. + Add RoundingMode enum. + Unserializing the uppercase 'S' tag is now deprecated. + Enables crc32 auxiliary detection on OpenBSD. + Passing a non-empty string for the $escape parameter of: - fputcsv() - fgetcsv() - str\_getcsv() is now deprecated. + The str\_getcsv() function now throws ValueErrors when the $separator and $enclosure arguments are not one byte long, or if the $escape is not one byte long or the empty string. This aligns the behaviour to be identical to that of fputcsv() and fgetcsv(). + php\_uname() now throws ValueErrors on invalid inputs. + The "allowed\_classes" option for unserialize() now throws TypeErrors and ValueErrors if it is not an array of class names. + Implemented [GH-15685](https://github.com/php/php-src/issues/15685) (improve proc\_open error reporting on Windows). + Add support for backed enums in http\_build\_query(). + Fixed bug [GH-15982](https://github.com/php/php-src/issues/15982) (Assertion failure with array\_find when references are involved). + Fixed parameter names of fpow() to be identical to pow(). * Streams: + Implemented [GH-15155](https://github.com/php/php-src/issues/15155) (Stream context is lost when custom stream wrapper is being filtered). * Tidy: + Failures in the constructor now throw exceptions rather than emitting warnings and having a broken object. + Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling(). * Windows: + Update the icon of the Windows executables, e.g. php.exe. + Fixed bug [GH-16199](https://github.com/php/php-src/issues/16199) (GREP\_HEADER() is broken). * XML: + Added XML\_OPTION\_PARSE\_HUGE parser option. + Fixed bug [#81481](http://bugs.php.net/81481) (xml\_get\_current\_byte\_index limited to 32-bit numbers on 64-bit builds). + The xml\_set\_object() function has been deprecated. + Passing non-callable strings to the xml\_set\_\*\_handler() functions is now deprecated. * XMLReader: + Declares class constant types. + Add XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(). + Fixed bug [GH-15123](https://github.com/php/php-src/issues/15123) (var\_dump doesn't actually work on XMLReader). * XMLWriter: + Add XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory(). * XSL: + Implement request #64137 (XSLTProcessor::setParameter() should allow both quotes to be used). + Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. + Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars. + Fix trampoline leak in xpath callables. * Zip: + Added ZipArchive::ER\_TRUNCATED\_ZIP added in libzip 1.11. ##### Version 8.3.20 **10 Apr 2025** * Core: + Fixed bug [GH-17961](https://github.com/php/php-src/issues/17961) (use-after-free during dl()'ed module class destruction). + Fixed bug [GH-15367](https://github.com/php/php-src/issues/15367) (dl() of module with aliased class crashes in shutdown). + Fixed bug [GH-13193](https://github.com/php/php-src/issues/13193) again (Significant performance degradation in 'foreach'). * DOM: + Fix weird unpack behaviour in DOM. + Fix xinclude destruction of live attributes. * Embed: + Fixed bug [GH-8533](https://github.com/php/php-src/issues/8533) (Unable to link dynamic libphp on Mac). * Fuzzer: + Fixed bug [GH-18081](https://github.com/php/php-src/issues/18081) (Memory leaks in error paths of fuzzer SAPI). * GD: + Fixed bug [GH-17984](https://github.com/php/php-src/issues/17984) (calls with arguments as array with references). * Intl: + Fix locale\_compose and locale\_lookup to work with their array argument with values as references. + Fix dateformat\_format when the time is an array of references. + Fix UConverter::transcode with substitutes as references. * Mbstring: + Fixed bug [GH-17989](https://github.com/php/php-src/issues/17989) (mb\_output\_handler crash with unset http\_output\_conv\_mimetypes). * Opcache: + Fixed bug [GH-18112](https://github.com/php/php-src/issues/18112) (NULL access with preloading and INI option). + Fixed bug [GH-18107](https://github.com/php/php-src/issues/18107) (Opcache CFG jmp optimization with try-finally breaks the exception table). * PDO: + Fix memory leak when destroying PDORow. * SOAP: + Fixed bug [#66049](http://bugs.php.net/66049) (Typemap can break parsing in parse\_packet\_soap leading to a segfault) . * SPL: + Fixed bug [GH-18018](https://github.com/php/php-src/issues/18018) (RC1 data returned from offsetGet causes UAF in ArrayObject). * Treewide: + Fixed bug [GH-17736](https://github.com/php/php-src/issues/17736) (Assertion failure zend\_reference\_destroy()). * Windows: + Fixed bug [GH-17836](https://github.com/php/php-src/issues/17836) (zend\_vm\_gen.php shouldn't break on Windows line endings). ##### Version 8.3.19 **13 Mar 2025** * BCMath: + Fixed bug [GH-17398](https://github.com/php/php-src/issues/17398) (bcmul memory leak). * Core: + Fixed bug [GH-17623](https://github.com/php/php-src/issues/17623) (Broken stack overflow detection for variable compilation). + Fixed bug [GH-17618](https://github.com/php/php-src/issues/17618) (UnhandledMatchError does not take zend.exception\_ignore\_args=1 into account). + Fix fallback paths in fast\_long\_{add,sub}\_function. + Fixed bug [GH-17718](https://github.com/php/php-src/issues/17718) (Calling static methods on an interface that has `\_\_callStatic` is allowed). + Fixed bug [GH-17797](https://github.com/php/php-src/issues/17797) (zend\_test\_compile\_string crash on invalid script path). + Fixed [GHSA-rwp7-7vc6-8477](https://github.com/php/php-src/security/advisories/GHSA-rwp7-7vc6-8477) (Reference counting in php\_request\_shutdown causes Use-After-Free). (CVE-2024-11235) * DOM: + Fixed bug [GH-17847](https://github.com/php/php-src/issues/17847) (xinclude destroys live node). * FFI: + Fix FFI Parsing of Pointer Declaration Lists. * FPM: + Fixed bug [GH-17643](https://github.com/php/php-src/issues/17643) (FPM with httpd ProxyPass encoded PATH\_INFO env). * GD: + Fixed bug [GH-17772](https://github.com/php/php-src/issues/17772) (imagepalettetotruecolor crash with memory\_limit=2M). * LDAP: + Fixed bug [GH-17704](https://github.com/php/php-src/issues/17704) (ldap\_search fails when $attributes contains a non-packed array with numerical keys). * LibXML: + Fixed [GHSA-wg4p-4hqh-c3g9](https://github.com/php/php-src/security/advisories/GHSA-wg4p-4hqh-c3g9) (Reocurrence of #72714). + Fixed [GHSA-p3x9-6h7p-cgfc](https://github.com/php/php-src/security/advisories/GHSA-p3x9-6h7p-cgfc) (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) * MBString: + Fixed bug [GH-17503](https://github.com/php/php-src/issues/17503) (Undefined float conversion in mb\_convert\_variables). * Opcache: + Fixed bug [GH-17654](https://github.com/php/php-src/issues/17654) (Multiple classes using same trait causes function JIT crash). + Fixed bug [GH-17577](https://github.com/php/php-src/issues/17577) (JIT packed type guard crash). + Fixed bug [GH-17899](https://github.com/php/php-src/issues/17899) (zend\_test\_compile\_string with invalid path when opcache is enabled). + Fixed bug [GH-17868](https://github.com/php/php-src/issues/17868) (Cannot allocate memory with tracing JIT). * PDO\_SQLite: + Fixed [GH-17837](https://github.com/php/php-src/issues/17837) ()::getColumnMeta() on unexecuted statement segfaults). + Fix cycle leak in sqlite3 setAuthorizer(). * Phar: + Fixed bug [GH-17808](https://github.com/php/php-src/issues/17808): PharFileInfo refcount bug. * PHPDBG: + Partially fixed bug [GH-17387](https://github.com/php/php-src/issues/17387) (Trivial crash in phpdbg lexer). + Fix memory leak in phpdbg calling registered function. * Reflection: + Fixed bug [GH-15902](https://github.com/php/php-src/issues/15902) (Core dumped in ext/reflection/php\_reflection.c). * Standard: + Fixed bug [#72666](http://bugs.php.net/72666) (stat cache clearing inconsistent between file:// paths and plain paths). * Streams: + Fixed bug [GH-17650](https://github.com/php/php-src/issues/17650) (realloc with size 0 in user\_filters.c). + Fix memory leak on overflow in \_php\_stream\_scandir(). + Fixed [GHSA-hgf5-96fm-v528](https://github.com/php/php-src/security/advisories/GHSA-hgf5-96fm-v528) (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) + Fixed [GHSA-52jp-hrpf-2jff](https://github.com/php/php-src/security/advisories/GHSA-52jp-hrpf-2jff) (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) + Fixed [GHSA-pcmh-g36c-qc44](https://github.com/php/php-src/security/advisories/GHSA-pcmh-g36c-qc44) (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) + Fixed [GHSA-v8xr-gpvj-cx9g](https://github.com/php/php-src/security/advisories/GHSA-v8xr-gpvj-cx9g) (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) * Windows: + Fixed phpize for Windows 11 (24H2). + Fixed [GH-17855](https://github.com/php/php-src/issues/17855) (CURL\_STATICLIB flag set even if linked with shared lib). * Zlib: + Fixed bug [GH-17745](https://github.com/php/php-src/issues/17745) (zlib extension incorrectly handles object arguments). + Fix memory leak when encoding check fails. + Fix zlib support for large files. ##### Version 8.3.17 **13 Feb 2025** * Core: + Fixed bug [GH-16892](https://github.com/php/php-src/issues/16892) (ini\_parse\_quantity() fails to parse inputs starting with 0x0b). + Fixed bug [GH-16886](https://github.com/php/php-src/issues/16886) (ini\_parse\_quantity() fails to emit warning for 0x+0). + Fixed bug [GH-17214](https://github.com/php/php-src/issues/17214) (Relax final+private warning for trait methods with inherited final). + Fixed NULL arithmetic during system program execution on Windows. + Fixed potential OOB when checking for trailing spaces on Windows. + Fixed bug [GH-17408](https://github.com/php/php-src/issues/17408) (Assertion failure Zend/zend\_exceptions.c). + Fix may\_have\_extra\_named\_args flag for ZEND\_AST\_UNPACK. + Fix NULL arithmetic in System V shared memory emulation for Windows. * DOM: + Fixed bug [GH-17500](https://github.com/php/php-src/issues/17500) (Segfault with requesting nodeName on nameless doctype). * Enchant: + Fix crashes in enchant when passing null bytes. * FTP: + Fixed bug [GH-16800](https://github.com/php/php-src/issues/16800) (ftp functions can abort with EINTR). * GD: + Fixed bug [GH-17349](https://github.com/php/php-src/issues/17349) (Tiled truecolor filling looses single color transparency). + Fixed bug [GH-17373](https://github.com/php/php-src/issues/17373) (imagefttext() ignores clipping rect for palette images). + Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate). * Intl: + Fixed bug [GH-11874](https://github.com/php/php-src/issues/11874) (intl causing segfault in docker images). + Fixed bug [GH-17469](https://github.com/php/php-src/issues/17469) (UConverter::transcode always emit E\_WARNING on invalid encoding). * Opcache: + Fixed bug [GH-17307](https://github.com/php/php-src/issues/17307) (Internal closure causes JIT failure). + Fixed bug [GH-17564](https://github.com/php/php-src/issues/17564) (Potential UB when reading from / writing to struct padding). * PDO: + Fixed a memory leak when the GC is used to free a PDOStatment. + Fixed a crash in the PDO Firebird Statement destructor. + Fixed UAFs when changing default fetch class ctor args. * Phar: + Fixed bug [GH-17518](https://github.com/php/php-src/issues/17518) (offset overflow phar extractTo()). * PHPDBG: + Fix crashes in function registration + test. * Session: + Fix type confusion with session SID constant. + Fixed bug [GH-17541](https://github.com/php/php-src/issues/17541) (ext/session NULL pointer dereferencement during ID reset). * SimpleXML: + Fixed bug [GH-17409](https://github.com/php/php-src/issues/17409) (Assertion failure Zend/zend\_hash.c:1730). * SNMP: + Fixed bug [GH-17330](https://github.com/php/php-src/issues/17330) (SNMP::setSecurity segfault on closed session). * SPL: + Fixed bug [GH-17463](https://github.com/php/php-src/issues/17463) (crash on SplTempFileObject::ftruncate with negative value). * Zip: + Fixed bug [GH-17139](https://github.com/php/php-src/issues/17139) (Fix zip\_entry\_name() crash on invalid entry). ##### Version 8.3.16 **16 Jan 2025** * Core: + Fixed bug [GH-17106](https://github.com/php/php-src/issues/17106) (ZEND\_MATCH\_ERROR misoptimization). + Fixed bug [GH-17162](https://github.com/php/php-src/issues/17162) (zend\_array\_try\_init() with dtor can cause engine UAF). + Fixed bug [GH-17101](https://github.com/php/php-src/issues/17101) (AST->string does not reproduce constructor property promotion correctly). + Fixed bug [GH-17211](https://github.com/php/php-src/issues/17211) (observer segfault on function loaded with dl()). + Fixed bug [GH-17216](https://github.com/php/php-src/issues/17216) (Trampoline crash on error). * Date: + Fixed bug [GH-14709](https://github.com/php/php-src/issues/14709) DatePeriod::\_\_construct() overflow on recurrences. * DBA: + Skip test if inifile is disabled. * DOM: + Fixed bug [GH-17224](https://github.com/php/php-src/issues/17224) (UAF in importNode). * Embed: + Make build command for program using embed portable. * FFI: + Fixed bug [#79075](http://bugs.php.net/79075) (FFI header parser chokes on comments). + Fix memory leak on ZEND\_FFI\_TYPE\_CHAR conversion failure. + Fixed bug [GH-16013](https://github.com/php/php-src/issues/16013) and bug #80857 (Big endian issues). * Filter: + Fixed bug [GH-16944](https://github.com/php/php-src/issues/16944) (Fix filtering special IPv4 and IPv6 ranges, by using information from RFC 6890). * FPM: + Fixed bug [GH-13437](https://github.com/php/php-src/issues/13437) (FPM: ERROR: scoreboard: failed to lock (already locked)). + Fixed bug [GH-17112](https://github.com/php/php-src/issues/17112) (Macro redefinitions). + Fixed bug [GH-17208](https://github.com/php/php-src/issues/17208) (bug64539-status-json-encoding.phpt fail on 32-bits). * GD: + Fixed bug [GH-16255](https://github.com/php/php-src/issues/16255) (Unexpected nan value in ext/gd/libgd/gd\_filter.c). + Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs). * Gettext: + Fixed bug [GH-17202](https://github.com/php/php-src/issues/17202) (Segmentation fault ext/gettext/gettext.c bindtextdomain()). * Iconv: + Fixed bug [GH-17047](https://github.com/php/php-src/issues/17047) (UAF on iconv filter failure). * LDAP: + Fixed bug [GH-17280](https://github.com/php/php-src/issues/17280) (ldap\_search() fails when $attributes array has holes). * LibXML: + Fixed bug [GH-17223](https://github.com/php/php-src/issues/17223) (Memory leak in libxml encoding handling). * MBString: + Fixed bug [GH-17112](https://github.com/php/php-src/issues/17112) (Macro redefinitions). * Opcache: + opcache\_get\_configuration() properly reports jit\_prof\_threshold. + Fixed bug [GH-17246](https://github.com/php/php-src/issues/17246) (GC during SCCP causes segfault). * PCNTL: + Fix memory leak in cleanup code of pcntl\_exec() when a non stringable value is encountered past the first entry. * PgSql: + Fixed bug [GH-17158](https://github.com/php/php-src/issues/17158) (pg\_fetch\_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument). + Fixed further ArgumentCountError for calls with flexible number of arguments. * Phar: + Fixed bug [GH-17137](https://github.com/php/php-src/issues/17137) (Segmentation fault ext/phar/phar.c). * SimpleXML: + Fixed bug [GH-17040](https://github.com/php/php-src/issues/17040) (SimpleXML's unset can break DOM objects). + Fixed bug [GH-17153](https://github.com/php/php-src/issues/17153) (SimpleXML crash when using autovivification on document). * Sockets: + Fixed bug [GH-16276](https://github.com/php/php-src/issues/16276) (socket\_strerror overflow handling with INT\_MIN). + Fixed overflow on SO\_LINGER values setting, strengthening values check on SO\_SNDTIMEO/SO\_RCVTIMEO for socket\_set\_option(). * SPL: + Fixed bug [GH-17225](https://github.com/php/php-src/issues/17225) (NULL deref in spl\_directory.c). * Streams: + Fixed bug [GH-17037](https://github.com/php/php-src/issues/17037) (UAF in user filter when adding existing filter name due to incorrect error handling). + Fixed bug [GH-16810](https://github.com/php/php-src/issues/16810) (overflow on fopen HTTP wrapper timeout value). + Fixed bug [GH-17067](https://github.com/php/php-src/issues/17067) (glob:// wrapper doesn't cater to CWD for ZTS builds). * Windows: + Hardened proc\_open() against cmd.exe hijacking. * XML: + Fixed bug [GH-1718](https://github.com/php/php-src/issues/1718) (unreachable program point in zend\_hash). ##### Version 8.3.15 **19 Dec 2024** * Calendar: + Fixed jdtogregorian overflow. + Fixed cal\_to\_jd julian\_days argument overflow. * COM: + Fixed bug [GH-16991](https://github.com/php/php-src/issues/16991) (Getting typeinfo of non DISPATCH variant segfaults). * Core: + Fail early in \*nix configuration build script. + Fixed bug [GH-16727](https://github.com/php/php-src/issues/16727) (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)). + Fixed bug [GH-16799](https://github.com/php/php-src/issues/16799) (Assertion failure at Zend/zend\_vm\_execute.h:7469). + Fixed bug [GH-16630](https://github.com/php/php-src/issues/16630) (UAF in lexer with encoding translation and heredocs). + Fix is\_zend\_ptr() huge block comparison. + Fixed potential OOB read in zend\_dirname() on Windows. * Curl: + Fixed bug [GH-16802](https://github.com/php/php-src/issues/16802) (open\_basedir bypass using curl extension). + Fix various memory leaks in curl mime handling. * DOM: + Fixed bug [GH-16777](https://github.com/php/php-src/issues/16777) (Calling the constructor again on a DOM object after it is in a document causes UAF). + Fixed bug [GH-16906](https://github.com/php/php-src/issues/16906) (Reloading document can cause UAF in iterator). * FPM: + Fixed [GH-16432](https://github.com/php/php-src/issues/16432) (PHP-FPM 8.2 SIGSEGV in fpm\_get\_status). * GD: + Fixed [GH-16776](https://github.com/php/php-src/issues/16776) (imagecreatefromstring overflow). * GMP: + Fixed bug [GH-16890](https://github.com/php/php-src/issues/16890) (array\_sum() with GMP can loose precision (LLP64)). * Hash: + Fixed [GH-16711](https://github.com/php/php-src/issues/16711): Segfault in mhash(). * Opcache: + Fixed bug [GH-16770](https://github.com/php/php-src/issues/16770) (Tracing JIT type mismatch when returning UNDEF). + Fixed bug [GH-16851](https://github.com/php/php-src/issues/16851) (JIT\_G(enabled) not set correctly on other threads). + Fixed bug [GH-16902](https://github.com/php/php-src/issues/16902) (Set of opcache tests fail zts+aarch64). * OpenSSL: + Prevent unexpected array entry conversion when reading key. + Fix various memory leaks related to openssl exports. + Fix memory leak in php\_openssl\_pkey\_from\_zval(). * PDO: + Fixed memory leak of `setFetchMode()`. * Phar: + Fixed bug [GH-16695](https://github.com/php/php-src/issues/16695) (phar:// tar parser and zero-length file header blocks). * PHPDBG: + Fixed bug [GH-15208](https://github.com/php/php-src/issues/15208) (Segfault with breakpoint map and phpdbg\_clear()). * SAPI: + Fixed bug [GH-16998](https://github.com/php/php-src/issues/16998) (UBSAN warning in rfc1867). * SimpleXML: + Fixed bug [GH-16808](https://github.com/php/php-src/issues/16808) (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input). * SOAP: + Fix make check being invoked in ext/soap. * Standard: + Fixed bug [GH-16905](https://github.com/php/php-src/issues/16905) (Internal iterator functions can't handle UNDEF properties). + Fixed bug [GH-16957](https://github.com/php/php-src/issues/16957) (Assertion failure in array\_shift with self-referencing array). * Streams: + Fixed network connect poll interuption handling. * Windows: + Fixed bug [GH-16849](https://github.com/php/php-src/issues/16849) (Error dialog causes process to hang). ##### Version 8.3.14 **21 Nov 2024** * CLI: + Fixed bug [GH-16373](https://github.com/php/php-src/issues/16373) (Shebang is not skipped for router script in cli-server started through shebang). + Fixed bug [GHSA-4w77-75f9-2c8w](https://github.com/php/php-src/security/advisories/GHSA-4w77-75f9-2c8w) (Heap-Use-After-Free in sapi\_read\_post\_data Processing in CLI SAPI Interface). * COM: + Fixed out of bound writes to SafeArray data. * Core: + Fixed bug [GH-16168](https://github.com/php/php-src/issues/16168) (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15). + Fixed bug [GH-16371](https://github.com/php/php-src/issues/16371) (Assertion failure in Zend/zend\_weakrefs.c:646). + Fixed bug [GH-16515](https://github.com/php/php-src/issues/16515) (Incorrect propagation of ZEND\_ACC\_RETURN\_REFERENCE for call trampoline). + Fixed bug [GH-16509](https://github.com/php/php-src/issues/16509) (Incorrect line number in function redeclaration error). + Fixed bug [GH-16508](https://github.com/php/php-src/issues/16508) (Incorrect line number in inheritance errors of delayed early bound classes). + Fixed bug [GH-16648](https://github.com/php/php-src/issues/16648) (Use-after-free during array sorting). * Curl: + Fixed bug [GH-16302](https://github.com/php/php-src/issues/16302) (CurlMultiHandle holds a reference to CurlHandle if curl\_multi\_add\_handle fails). * Date: + Fixed bug [GH-16454](https://github.com/php/php-src/issues/16454) (Unhandled INF in date\_sunset() with tiny $utcOffset). + Fixed bug [GH-14732](https://github.com/php/php-src/issues/14732) (date\_sun\_info() fails for non-finite values). * DBA: + Fixed bug [GH-16390](https://github.com/php/php-src/issues/16390) (dba\_open() can segfault for "pathless" streams). * DOM: + Fixed bug [GH-16316](https://github.com/php/php-src/issues/16316) (DOMXPath breaks when not initialized properly). + Add missing hierarchy checks to replaceChild. + Fixed bug [GH-16336](https://github.com/php/php-src/issues/16336) (Attribute intern document mismanagement). + Fixed bug [GH-16338](https://github.com/php/php-src/issues/16338) (Null-dereference in ext/dom/node.c). + Fixed bug [GH-16473](https://github.com/php/php-src/issues/16473) (dom\_import\_simplexml stub is wrong). + Fixed bug [GH-16533](https://github.com/php/php-src/issues/16533) (Segfault when adding attribute to parent that is not an element). + Fixed bug [GH-16535](https://github.com/php/php-src/issues/16535) (UAF when using document as a child). + Fixed bug [GH-16593](https://github.com/php/php-src/issues/16593) (Assertion failure in DOM->replaceChild). + Fixed bug [GH-16595](https://github.com/php/php-src/issues/16595) (Another UAF in DOM -> cloneNode). * EXIF: + Fixed bug [GH-16409](https://github.com/php/php-src/issues/16409) (Segfault in exif\_thumbnail when not dealing with a real file). * FFI: + Fixed bug [GH-16397](https://github.com/php/php-src/issues/16397) (Segmentation fault when comparing FFI object). * Filter: + Fixed bug [GH-16523](https://github.com/php/php-src/issues/16523) (FILTER\_FLAG\_HOSTNAME accepts ending hyphen). * FPM: + Fixed bug [GH-16628](https://github.com/php/php-src/issues/16628) (FPM logs are getting corrupted with this log statement). * GD: + Fixed bug [GH-16334](https://github.com/php/php-src/issues/16334) (imageaffine overflow on matrix elements). + Fixed bug [GH-16427](https://github.com/php/php-src/issues/16427) (Unchecked libavif return values). + Fixed bug [GH-16559](https://github.com/php/php-src/issues/16559) (UBSan abort in ext/gd/libgd/gd\_interpolation.c:1007). * GMP: + Fixed floating point exception bug with gmp\_pow when using large exposant values. (David Carlier). + Fixed bug [GH-16411](https://github.com/php/php-src/issues/16411) (gmp\_export() can cause overflow). + Fixed bug [GH-16501](https://github.com/php/php-src/issues/16501) (gmp\_random\_bits() can cause overflow). + Fixed gmp\_pow() overflow bug with large base/exponents. + Fixed segfaults and other issues related to operator overloading with GMP objects. * LDAP: + Fixed bug [GHSA-g665-fm4p-vhff](https://github.com/php/php-src/security/advisories/GHSA-g665-fm4p-vhff) (OOB access in ldap\_escape). (CVE-2024-8932) * MBstring: + Fixed bug [GH-16361](https://github.com/php/php-src/issues/16361) (mb\_substr overflow on start/length arguments). * MySQLnd: + Fixed bug [GHSA-h35g-vwh6-m678](https://github.com/php/php-src/security/advisories/GHSA-h35g-vwh6-m678) (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929) * Opcache: + Fixed bug [GH-16408](https://github.com/php/php-src/issues/16408) (Array to string conversion warning emitted in optimizer). * OpenSSL: + Fixed bug [GH-16357](https://github.com/php/php-src/issues/16357) (openssl may modify member types of certificate arrays). + Fixed bug [GH-16433](https://github.com/php/php-src/issues/16433) (Large values for openssl\_csr\_sign() $days overflow). + Fix various memory leaks on error conditions in openssl\_x509\_parse(). * PDO DBLIB: + Fixed bug [GHSA-5hqh-c84r-qjcv](https://github.com/php/php-src/security/advisories/GHSA-5hqh-c84r-qjcv) (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236) * PDO Firebird: + Fixed bug [GHSA-5hqh-c84r-qjcv](https://github.com/php/php-src/security/advisories/GHSA-5hqh-c84r-qjcv) (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236) * PDO ODBC: + Fixed bug [GH-16450](https://github.com/php/php-src/issues/16450) (PDO\_ODBC can inject garbage into field values). * Phar: + Fixed bug [GH-16406](https://github.com/php/php-src/issues/16406) (Assertion failure in ext/phar/phar.c:2808). * PHPDBG: + Fixed bug [GH-16174](https://github.com/php/php-src/issues/16174) (Empty string is an invalid expression for ev). * Reflection: + Fixed bug [GH-16601](https://github.com/php/php-src/issues/16601) (Memory leak in Reflection constructors). * Session: + Fixed bug [GH-16385](https://github.com/php/php-src/issues/16385) (Unexpected null returned by session\_set\_cookie\_params). + Fixed bug [GH-16290](https://github.com/php/php-src/issues/16290) (overflow on cookie\_lifetime ini value). * SOAP: + Fixed bug [GH-16318](https://github.com/php/php-src/issues/16318) (Recursive array segfaults soap encoding). + Fixed bug [GH-16429](https://github.com/php/php-src/issues/16429) (Segmentation fault access null pointer in SoapClient). * Sockets: + Fixed bug with overflow socket\_recvfrom $length argument. * SPL: + Fixed bug [GH-16337](https://github.com/php/php-src/issues/16337) (Use-after-free in SplHeap). + Fixed bug [GH-16464](https://github.com/php/php-src/issues/16464) (Use-after-free in SplDoublyLinkedList::offsetSet()). + Fixed bug [GH-16479](https://github.com/php/php-src/issues/16479) (Use-after-free in SplObjectStorage::setInfo()). + Fixed bug [GH-16478](https://github.com/php/php-src/issues/16478) (Use-after-free in SplFixedArray::unset()). + Fixed bug [GH-16588](https://github.com/php/php-src/issues/16588) (UAF in Observer->serialize). + Fix [GH-16477](https://github.com/php/php-src/issues/16477) (Segmentation fault when calling \_\_debugInfo() after failed SplFileObject::\_\_constructor). + Fixed bug [GH-16589](https://github.com/php/php-src/issues/16589) (UAF in SplDoublyLinked->serialize()). + Fixed bug [GH-14687](https://github.com/php/php-src/issues/14687) (segfault on SplObjectIterator instance). + Fixed bug [GH-16604](https://github.com/php/php-src/issues/16604) (Memory leaks in SPL constructors). + Fixed bug [GH-16646](https://github.com/php/php-src/issues/16646) (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()). * Standard: + Fixed bug [GH-16293](https://github.com/php/php-src/issues/16293) (Failed assertion when throwing in assert() callback with bail enabled). * Streams: + Fixed bug [GHSA-c5f2-jwm7-mmq2](https://github.com/php/php-src/security/advisories/GHSA-c5f2-jwm7-mmq2) (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234) + Fixed bug [GHSA-r977-prxv-hc43](https://github.com/php/php-src/security/advisories/GHSA-r977-prxv-hc43) (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233) * SysVMsg: + Fixed bug [GH-16592](https://github.com/php/php-src/issues/16592) (msg\_send() crashes when a type does not properly serialized). * SysVShm: + Fixed bug [GH-16591](https://github.com/php/php-src/issues/16591) (Assertion error in shm\_put\_var). * XMLReader: + Fixed bug [GH-16292](https://github.com/php/php-src/issues/16292) (Segmentation fault in ext/xmlreader/php\_xmlreader.c). * Zlib: + Fixed bug [GH-16326](https://github.com/php/php-src/issues/16326) (Memory management is broken for bad dictionaries.) (cmb) ##### Version 8.3.13 **24 Oct 2024** * Calendar: + Fixed [GH-16240](https://github.com/php/php-src/issues/16240): jdtounix overflow on argument value. + Fixed [GH-16241](https://github.com/php/php-src/issues/16241): easter\_days/easter\_date overflow on year argument. + Fixed [GH-16263](https://github.com/php/php-src/issues/16263): jddayofweek overflow. + Fixed [GH-16234](https://github.com/php/php-src/issues/16234): jewishtojd overflow. * CLI: + Fixed bug [GH-16137](https://github.com/php/php-src/issues/16137): duplicate http headers when set several times by the client. * Core: + Fixed bug [GH-16054](https://github.com/php/php-src/issues/16054) (Segmentation fault when resizing hash table iterator list while adding). + Fixed bug [GH-15905](https://github.com/php/php-src/issues/15905) (Assertion failure for TRACK\_VARS\_SERVER). + Fixed bug [GH-15907](https://github.com/php/php-src/issues/15907) (Failed assertion when promoting Serialize deprecation to exception). + Fixed bug [GH-15851](https://github.com/php/php-src/issues/15851) (Segfault when printing backtrace during cleanup of nested generator frame). + Fixed bug [GH-15866](https://github.com/php/php-src/issues/15866) (Core dumped in Zend/zend\_generators.c). + Fixed bug [GH-16188](https://github.com/php/php-src/issues/16188) (Assertion failure in Zend/zend\_exceptions.c). + Fixed bug [GH-16233](https://github.com/php/php-src/issues/16233) (Observer segfault when calling user function in internal function via trampoline). * DOM: + Fixed bug [GH-16039](https://github.com/php/php-src/issues/16039) (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c). + Fixed bug [GH-16149](https://github.com/php/php-src/issues/16149) (Null pointer dereference in DOMElement->getAttributeNames()). + Fixed bug [GH-16151](https://github.com/php/php-src/issues/16151) (Assertion failure in ext/dom/parentnode/tree.c). + Fixed bug [GH-16150](https://github.com/php/php-src/issues/16150) (Use after free in php\_dom.c). + Fixed bug [GH-16152](https://github.com/php/php-src/issues/16152) (Memory leak in DOMProcessingInstruction/DOMDocument). * JSON: + Fixed bug [GH-15168](https://github.com/php/php-src/issues/15168) (stack overflow in json\_encode()). * GD: + Fixed bug [GH-16232](https://github.com/php/php-src/issues/16232) (bitshift overflow on wbmp file content reading / fix backport from upstream). + Fixed bug [GH-12264](https://github.com/php/php-src/issues/12264) (overflow/underflow on imagerotate degrees value) (David Carlier) + Fixed bug [GH-16274](https://github.com/php/php-src/issues/16274) (imagescale underflow on RBG channels / fix backport from upstream). * LDAP: + Fixed bug [GH-16032](https://github.com/php/php-src/issues/16032) (Various NULL pointer dereferencements in ldap\_modify\_batch()). + Fixed bug [GH-16101](https://github.com/php/php-src/issues/16101) (Segfault in ldap\_list(), ldap\_read(), and ldap\_search() when LDAPs array is not a list). + Fix [GH-16132](https://github.com/php/php-src/issues/16132) (php\_ldap\_do\_modify() attempts to free pointer not allocated by ZMM.). + Fix [GH-16136](https://github.com/php/php-src/issues/16136) (Memory leak in php\_ldap\_do\_modify() when entry is not a proper dictionary). * MBString: + Fixed bug [GH-16261](https://github.com/php/php-src/issues/16261) (Reference invariant broken in mb\_convert\_variables()). * OpenSSL: + Fixed stub for openssl\_csr\_new. * PCRE: + Fixed bug [GH-16189](https://github.com/php/php-src/issues/16189) (underflow on offset argument). + Fixed bug [GH-16184](https://github.com/php/php-src/issues/16184) (UBSan address overflowed in ext/pcre/php\_pcre.c). * PHPDBG: + Fixed bug [GH-15901](https://github.com/php/php-src/issues/15901) (phpdbg: Assertion failure on i funcs). + Fixed bug [GH-16181](https://github.com/php/php-src/issues/16181) (phpdbg: exit in exception handler reports fatal error). * Reflection: + Fixed bug [GH-16187](https://github.com/php/php-src/issues/16187) (Assertion failure in ext/reflection/php\_reflection.c). * SAPI: + Fixed bug [GH-15395](https://github.com/php/php-src/issues/15395) (php-fpm: zend\_mm\_heap corrupted with cgi-fcgi request). * SimpleXML: + Fixed bug [GH-15837](https://github.com/php/php-src/issues/15837) (Segmentation fault in ext/simplexml/simplexml.c). * Sockets: + Fixed bug [GH-16267](https://github.com/php/php-src/issues/16267) (socket\_strerror overflow on errno argument). * SOAP: + Fixed bug [#73182](http://bugs.php.net/73182) (PHP SOAPClient does not support stream context HTTP headers in array form). + Fixed bug [#62900](http://bugs.php.net/62900) (Wrong namespace on xsd import error message). + Fixed bug [GH-15711](https://github.com/php/php-src/issues/15711) (SoapClient can't convert BackedEnum to scalar value). + Fixed bug [GH-16237](https://github.com/php/php-src/issues/16237) (Segmentation fault when cloning SoapServer). + Fix Soap leaking http\_msg on error. + Fixed bug [GH-16256](https://github.com/php/php-src/issues/16256) (Assertion failure in ext/soap/php\_encoding.c:460). + Fixed bug [GH-16259](https://github.com/php/php-src/issues/16259) (Soap segfault when classmap instantiation fails). * SPL: + Fixed bug [GH-15918](https://github.com/php/php-src/issues/15918) (Assertion failure in ext/spl/spl\_fixedarray.c). * Standard: + Fixed bug [GH-16053](https://github.com/php/php-src/issues/16053) (Assertion failure in Zend/zend\_hash.c). + Fixed bug [GH-15169](https://github.com/php/php-src/issues/15169) (stack overflow when var serialization in ext/standard/var). * Streams: + Fixed bugs [GH-15908](https://github.com/php/php-src/issues/15908) and [GH-15026](https://github.com/php/php-src/issues/15026) (leak / assertion failure in streams.c). + Fixed bug [GH-15980](https://github.com/php/php-src/issues/15980) (Signed integer overflow in main/streams/streams.c). * TSRM: + Prevent closing of unrelated handles. * Windows: + Fixed minimal Windows version. ##### Version 8.3.12 **26 Sep 2024** * CGI: + Fixed bug [GHSA-p99j-rfp4-xqvq](https://github.com/php/php-src/security/advisories/GHSA-p99j-rfp4-xqvq) (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926) + Fixed bug [GHSA-94p6-54jq-9mwp](https://github.com/php/php-src/security/advisories/GHSA-94p6-54jq-9mwp) (cgi.force\_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927) * Core: + Fixed bug [GH-15408](https://github.com/php/php-src/issues/15408) (MSan false-positve on zend\_max\_execution\_timer). + Fixed bug [GH-15515](https://github.com/php/php-src/issues/15515) (Configure error grep illegal option q). + Fixed bug [GH-15514](https://github.com/php/php-src/issues/15514) (Configure error: genif.sh: syntax error). + Fixed bug [GH-15565](https://github.com/php/php-src/issues/15565) (--disable-ipv6 during compilation produces error EAI\_SYSTEM not found). + Fixed bug [GH-15587](https://github.com/php/php-src/issues/15587) (CRC32 API build error on arm 32-bit). + Fixed bug [GH-15330](https://github.com/php/php-src/issues/15330) (Do not scan generator frames more than once). + Fixed uninitialized lineno in constant AST of internal enums. * Curl: + FIxed bug [GH-15547](https://github.com/php/php-src/issues/15547) (curl\_multi\_select overflow on timeout argument). * DOM: + Fixed bug [GH-15551](https://github.com/php/php-src/issues/15551) (Segmentation fault (access null pointer) in ext/dom/xml\_common.h). + Fixed bug [GH-15654](https://github.com/php/php-src/issues/15654) (Signed integer overflow in ext/dom/nodelist.c). * Fileinfo: + Fixed bug [GH-15752](https://github.com/php/php-src/issues/15752) (Incorrect error message for finfo\_file with an empty filename argument). * FPM: + Fixed bug [GHSA-865w-9rf3-2wh5](https://github.com/php/php-src/security/advisories/GHSA-865w-9rf3-2wh5) (Logs from childrens may be altered). (CVE-2024-9026) * MySQLnd: + Fixed bug [GH-15432](https://github.com/php/php-src/issues/15432) (Heap corruption when querying a vector). * Opcache: + Fixed bug [GH-15661](https://github.com/php/php-src/issues/15661) (Access null pointer in Zend/Optimizer/zend\_inference.c). + Fixed bug [GH-15658](https://github.com/php/php-src/issues/15658) (Segmentation fault in Zend/zend\_vm\_execute.h). * SAPI: + Fixed bug [GHSA-9pqp-7h25-4f32](https://github.com/php/php-src/security/advisories/GHSA-9pqp-7h25-4f32) (Erroneous parsing of multipart form data). (CVE-2024-8925) * Standard: + Fixed bug [GH-15552](https://github.com/php/php-src/issues/15552) (Signed integer overflow in ext/standard/scanf.c). * Streams: + Fixed bug [GH-15628](https://github.com/php/php-src/issues/15628) (php\_stream\_memory\_get\_buffer() not zero-terminated). ##### Version 8.3.11 **29 Aug 2024** * Core: + Fixed bug [GH-15020](https://github.com/php/php-src/issues/15020) (Memory leak in Zend/Optimizer/escape\_analysis.c). + Fixed bug [GH-15023](https://github.com/php/php-src/issues/15023) (Memory leak in Zend/zend\_ini.c). + Fixed bug [GH-13330](https://github.com/php/php-src/issues/13330) (Append -Wno-implicit-fallthrough flag conditionally). + Fix uninitialized memory in network.c. + Fixed bug [GH-15108](https://github.com/php/php-src/issues/15108) (Segfault when destroying generator during shutdown). + Fixed bug [GH-15275](https://github.com/php/php-src/issues/15275) (Crash during GC of suspended generator delegate). * Curl: + Fixed case when curl\_error returns an empty string. * DOM: + Fix UAF when removing doctype and using foreach iteration. * FFI: + Fixed bug [GH-14286](https://github.com/php/php-src/issues/14286) (ffi enum type (when enum has no name) make memory leak). * Hash: + Fix crash when converting array data for array in shm in xxh3. * Intl: + Fixed bug [GH-15087](https://github.com/php/php-src/issues/15087) (IntlChar::foldCase()'s $option is not optional). * Opcache: + Fixed bug [GH-13817](https://github.com/php/php-src/issues/13817) (Segmentation fault for enabled observers after pass 4). + Fixed bug [GH-13775](https://github.com/php/php-src/issues/13775) (Memory leak possibly related to opcache SHM placement). * Output: + Fixed bug [GH-15179](https://github.com/php/php-src/issues/15179) (Segmentation fault (null pointer dereference) in ext/standard/url\_scanner\_ex.re). * PDO\_Firebird: + Fix bogus fallthrough path in firebird\_handle\_get\_attribute(). * PHPDBG: + Fixed bug [GH-13199](https://github.com/php/php-src/issues/13199) (EOF emits redundant prompt in phpdbg local console mode with libedit/readline). + Fixed bug [GH-15268](https://github.com/php/php-src/issues/15268) (heap buffer overflow in phpdbg (zend\_hash\_num\_elements() Zend/zend\_hash.h)). + Fixed bug [GH-15210](https://github.com/php/php-src/issues/15210) use-after-free on watchpoint allocations. * Soap: + Fixed bug [#55639](http://bugs.php.net/55639) (Digest autentication dont work). + Fix SoapFault property destruction. + Fixed bug [GH-15252](https://github.com/php/php-src/issues/15252) (SOAP XML broken since PHP 8.3.9 when using classmap constructor option). * Standard: + Fix passing non-finite timeout values in stream functions. + Fixed [GH-14780](https://github.com/php/php-src/issues/14780) p(f)sockopen timeout overflow. * Streams: + Fixed bug [GH-15028](https://github.com/php/php-src/issues/15028) (Memory leak in ext/phar/stream.c). + Fixed bug [GH-15034](https://github.com/php/php-src/issues/15034) (Integer overflow on stream\_notification\_callback byte\_max parameter with files bigger than 2GB). + Reverted fix for [GH-14930](https://github.com/php/php-src/issues/14930) (Custom stream wrapper dir\_readdir output truncated to 255 characters). * Tidy: + Fix memory leaks in ext/tidy basedir restriction code. ##### Version 8.3.10 **01 Aug 2024** * Core: + Fixed bug [GH-13922](https://github.com/php/php-src/issues/13922) (Fixed support for systems with sysconf(\_SC\_GETPW\_R\_SIZE\_MAX) == -1). + Fixed bug [GH-14626](https://github.com/php/php-src/issues/14626) (Fix is\_zend\_ptr() for huge blocks). + Fixed bug [GH-14590](https://github.com/php/php-src/issues/14590) (Memory leak in FPM test gh13563-conf-bool-env.phpt. + Fixed OSS-Fuzz #69765. + Fixed bug [GH-14741](https://github.com/php/php-src/issues/14741) (Segmentation fault in Zend/zend\_types.h). + Fixed bug [GH-14969](https://github.com/php/php-src/issues/14969) (Use-after-free in property coercion with \_\_toString()). * Dom: + Fixed bug [GH-14702](https://github.com/php/php-src/issues/14702) (DOMDocument::xinclude() crash). * Fileinfo: + Fixed bug [GH-14888](https://github.com/php/php-src/issues/14888) (README.REDIST.BINS refers to non-existing LICENSE). * Gd: + ext/gd/tests/gh10614.phpt: skip if no PNG support. + restored warning instead of fata error. * LibXML: + Fixed bug [GH-14563](https://github.com/php/php-src/issues/14563) (Build failure with libxml2 v2.13.0). * Opcache: + Fixed bug [GH-14550](https://github.com/php/php-src/issues/14550) (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled). * Output: + Fixed bug [GH-14808](https://github.com/php/php-src/issues/14808) (Unexpected null pointer in Zend/zend\_string.h with empty output buffer). * PDO: + Fixed bug [GH-14712](https://github.com/php/php-src/issues/14712) (Crash with PDORow access to null property). * Phar: + Fixed bug [GH-14603](https://github.com/php/php-src/issues/14603) (null string from zip entry). * PHPDBG: + Fixed bug [GH-14596](https://github.com/php/php-src/issues/14596) (crashes with ASAN and ZEND\_RC\_DEBUG=1). + Fixed bug [GH-14553](https://github.com/php/php-src/issues/14553) (echo output trimmed at NULL byte). * Shmop: + Fixed bug [GH-14537](https://github.com/php/php-src/issues/14537) (shmop Windows 11 crashes the process). * SPL: + Fixed bug [GH-14639](https://github.com/php/php-src/issues/14639) (Member access within null pointer in ext/spl/spl\_observer.c). * Standard: + Fixed bug [GH-14775](https://github.com/php/php-src/issues/14775) (range function overflow with negative step argument). + Fix 32-bit wordwrap test failures. + Fixed bug [GH-14774](https://github.com/php/php-src/issues/14774) (time\_sleep\_until overflow). * Streams: + Fixed bug [GH-14930](https://github.com/php/php-src/issues/14930) (Custom stream wrapper dir\_readdir output truncated to 255 characters in PHP 8.3). * Tidy: + Fix memory leak in tidy\_repair\_file(). * Treewide: + Fix compatibility with libxml2 2.13.2. * XML: + Move away from to-be-deprecated libxml fields. + Fixed bug [GH-14834](https://github.com/php/php-src/issues/14834) (Error installing PHP when --with-pear is used). ##### Version 8.3.9 **04 Jul 2024** * Core: + Fixed bug [GH-14315](https://github.com/php/php-src/issues/14315) (Incompatible pointer type warnings). + Fixed bug [GH-12814](https://github.com/php/php-src/issues/12814) (max\_execution\_time reached too early on MacOS 14 when running on Apple Silicon). + Fixed bug [GH-14387](https://github.com/php/php-src/issues/14387) (Crash when stack walking in destructor of yielded from values during Generator->throw()). + Fixed bug [GH-14456](https://github.com/php/php-src/issues/14456) (Attempting to initialize class with private constructor calls destructor). + Fixed bug [GH-14510](https://github.com/php/php-src/issues/14510) (memleak due to missing pthread\_attr\_destroy()-call). + Fixed bug [GH-14549](https://github.com/php/php-src/issues/14549) (Incompatible function pointer type for fclose). * BCMatch: + Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0). * Curl: + Fixed bug [GH-14307](https://github.com/php/php-src/issues/14307) (Test curl\_basic\_024 fails with curl 8.8.0). * DOM: + Fixed bug [GH-14343](https://github.com/php/php-src/issues/14343) (Memory leak in xml and dom). * FPM: + Fixed bug [GH-14037](https://github.com/php/php-src/issues/14037) (PHP-FPM ping.path and ping.response config vars are ignored in status pool). * GD: + Fix parameter numbers for imagecolorset(). * Intl: + Fix reference handling in SpoofChecker. * MySQLnd: + Partially fix bug [GH-10599](https://github.com/php/php-src/issues/10599) (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection). * Opcache: + Fixed bug [GH-14267](https://github.com/php/php-src/issues/14267) (opcache.jit=off does not allow enabling JIT at runtime). + Fixed TLS access in JIT on FreeBSD/amd64. + Fixed bug [GH-11188](https://github.com/php/php-src/issues/11188) (Error when building TSRM in ARM64). * PDO ODBC: + Fixed bug [GH-14367](https://github.com/php/php-src/issues/14367) (incompatible SDWORD type with iODBC). * PHPDBG: + Fixed bug [GH-13681](https://github.com/php/php-src/issues/13681) (segfault on watchpoint addition failure). * Soap: + Fixed bug [#47925](http://bugs.php.net/47925) (PHPClient can't decompress response). + Fix missing error restore code. + Fix memory leak if calling SoapServer::setObject() twice. + Fix memory leak if calling SoapServer::setClass() twice. + Fix reading zlib ini settings in ext-soap. + Fix memory leaks with string function name lookups. + Fixed bug [#69280](http://bugs.php.net/69280) (SoapClient classmap doesn't support fully qualified class name). + Fixed bug [#76232](http://bugs.php.net/76232) (SoapClient Cookie Header Semicolon). + Fixed memory leaks when calling SoapFault::\_\_construct() twice. * Sodium: + Fix memory leaks in ext/sodium on failure of some functions. * SPL: + Fixed bug [GH-14290](https://github.com/php/php-src/issues/14290) (Member access within null pointer in extension spl). * Standard: + Fixed bug [GH-14483](https://github.com/php/php-src/issues/14483) (Fixed off-by-one error in checking length of abstract namespace Unix sockets). * Streams: + Fixed bug [GH-11078](https://github.com/php/php-src/issues/11078) (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors). ##### Version 8.3.8 **06 Jun 2024** * CGI: + Fixed buffer limit on Windows, replacing read call usage by \_read. + Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577) * CLI: + Fixed bug [GH-14189](https://github.com/php/php-src/issues/14189) (PHP Interactive shell input state incorrectly handles quoted heredoc literals.). * Core: + Fixed bug [GH-13970](https://github.com/php/php-src/issues/13970) (Incorrect validation of #[Attribute] flags type for non-compile-time expressions). * DOM: + Fix crashes when entity declaration is removed while still having entity references. + Fix references not handled correctly in C14N. + Fix crash when calling childNodes next() when iterator is exhausted. + Fix crash in ParentNode::append() when dealing with a fragment containing text nodes. * Filter: + Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter\_var FILTER\_VALIDATE\_URL). (CVE-2024-5458) * FPM: + Fix bug [GH-14175](https://github.com/php/php-src/issues/14175) (Show decimal number instead of scientific notation in systemd status). * Hash: + ext/hash: Swap the checking order of `\_\_has\_builtin` and `\_\_GNUC\_\_` (Saki Takamachi) * Intl: + Fixed build regression on systems without C++17 compilers. * MySQLnd: + Fix bug [GH-14255](https://github.com/php/php-src/issues/14255) (mysqli\_fetch\_assoc reports error from nested query). * Opcache: + Fixed bug [GH-14109](https://github.com/php/php-src/issues/14109) (Fix accidental persisting of internal class constant in shm). * OpenSSL: + The openssl\_private\_decrypt function in PHP, when using PKCS1 padding (OPENSSL\_PKCS1\_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa\_pkcs1\_implicit\_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable. * Standard: + Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585) * XML: + Fixed bug [GH-14124](https://github.com/php/php-src/issues/14124) (Segmentation fault with XML extension under certain memory limit). * XMLReader: + Fixed bug [GH-14183](https://github.com/php/php-src/issues/14183) (XMLReader::open() can't be overridden). ##### Version 8.3.7 **09 May 2024** * Core: + Fixed zend\_call\_stack build with Linux/uclibc-ng without thread support. + Fixed bug [GH-13772](https://github.com/php/php-src/issues/13772) (Invalid execute\_data->opline pointers in observer fcall handlers when JIT is enabled). + Fixed bug [GH-13931](https://github.com/php/php-src/issues/13931) (Applying zero offset to null pointer in Zend/zend\_opcode.c). + Fixed bug [GH-13942](https://github.com/php/php-src/issues/13942) (Align the behavior of zend-max-execution-timers with other timeout implementations). + Fixed bug [GH-14003](https://github.com/php/php-src/issues/14003) (Broken cleanup of unfinished calls with callable convert parameters). + Fixed bug [GH-14013](https://github.com/php/php-src/issues/14013) (Erroneous dnl appended in configure). + Fixed bug [GH-10232](https://github.com/php/php-src/issues/10232) (If autoloading occurs during constant resolution filename and lineno are identified incorrectly). + Fixed bug [GH-13727](https://github.com/php/php-src/issues/13727) (Missing void keyword). * Fibers: + Fixed bug [GH-13903](https://github.com/php/php-src/issues/13903) (ASAN false positive underflow when executing copy()). * Fileinfo: + Fixed bug [GH-13795](https://github.com/php/php-src/issues/13795) (Test failing in ext/fileinfo/tests/bug78987.phpt on big-endian PPC). * FPM: + Fixed bug [GH-13563](https://github.com/php/php-src/issues/13563) (Setting bool values via env in FPM config fails). * Intl: + Fixed build for icu 74 and onwards. * MySQLnd: + Fix shift out of bounds on 32-bit non-fast-path platforms. * Opcache: + Fixed bug [GH-13433](https://github.com/php/php-src/issues/13433) (Segmentation Fault in zend\_class\_init\_statics when using opcache.preload). + Fixed incorrect assumptions across compilation units for static calls. * OpenSSL: + Fixed bug [GH-10495](https://github.com/php/php-src/issues/10495) (feof on OpenSSL stream hangs indefinitely). * PDO SQLite: + Fix [GH-13984](https://github.com/php/php-src/issues/13984) (Buffer size is now checked before memcmp). + Fix [GH-13998](https://github.com/php/php-src/issues/13998) (Manage refcount of agg\_context->val correctly). * Phar: + Fixed bug [GH-13836](https://github.com/php/php-src/issues/13836) (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference). + Fixed bug [GH-13833](https://github.com/php/php-src/issues/13833) (Applying zero offset to null pointer in zend\_hash.c). + Fix potential NULL pointer dereference before calling EVP\_SignInit. * PHPDBG: + Fixed bug [GH-13827](https://github.com/php/php-src/issues/13827) (Null pointer access of type 'zval' in phpdbg\_frame). * Posix: + Fix usage of reentrant functions in ext/posix. * Session: + Fixed bug [GH-13856](https://github.com/php/php-src/issues/13856) (Member access within null pointer of type 'ps\_files' in ext/session/mod\_files.c). + Fixed bug [GH-13891](https://github.com/php/php-src/issues/13891) (memleak and segfault when using ini\_set with session.trans\_sid\_hosts). + Fixed buffer \_read/\_write size limit on windows for the file mode. * Streams: + Fixed file\_get\_contents() on Windows fails with "errno=22 Invalid argument". + Fixed bug [GH-13264](https://github.com/php/php-src/issues/13264) (Part 1 - Memory leak on stream filter failure). + Fixed bug [GH-13860](https://github.com/php/php-src/issues/13860) (Incorrect PHP\_STREAM\_OPTION\_CHECK\_LIVENESS case in ext/openssl/xp\_ssl.c - causing use of dead socket). + Fixed bug [GH-11678](https://github.com/php/php-src/issues/11678) (Build fails on musl 1.2.4 - lfs64). * Treewide: + Fix gcc-14 Wcalloc-transposed-args warnings. ##### Version 8.3.6 **11 Apr 2024** * Core: + Fixed [GH-13569](https://github.com/php/php-src/issues/13569) (GC buffer unnecessarily grows up to GC\_MAX\_BUF\_SIZE when scanning WeakMaps). + Fixed bug [GH-13612](https://github.com/php/php-src/issues/13612) (Corrupted memory in destructor with weak references). + Fixed bug [GH-13446](https://github.com/php/php-src/issues/13446) (Restore exception handler after it finishes). + Fixed bug [GH-13784](https://github.com/php/php-src/issues/13784) (AX\_GCC\_FUNC\_ATTRIBUTE failure). + Fixed bug [GH-13670](https://github.com/php/php-src/issues/13670) (GC does not scale well with a lot of objects created in destructor). * DOM: + Add some missing ZPP checks. + Fix potential memory leak in XPath evaluation results. * FPM: + Fixed [GH-11086](https://github.com/php/php-src/issues/11086) (FPM: config test runs twice in daemonised mode). + Fix incorrect check in fpm\_shm\_free(). * GD: + Fixed bug [GH-12019](https://github.com/php/php-src/issues/12019) (add GDLIB\_CFLAGS in feature tests). * Gettext: + Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC\_ALL. * MySQLnd: + Fix [GH-13452](https://github.com/php/php-src/issues/13452) (Fixed handshake response [mysqlnd]). + Fix incorrect charset length in check\_mb\_eucjpms(). * Opcache: + Fixed [GH-13508](https://github.com/php/php-src/issues/13508) (JITed QM\_ASSIGN may be optimized out when op1 is null). + Fixed [GH-13712](https://github.com/php/php-src/issues/13712) (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded). * Random: + Fixed bug [GH-13544](https://github.com/php/php-src/issues/13544) (Pre-PHP 8.2 compatibility for mt\_srand with unknown modes). + Fixed bug [GH-13690](https://github.com/php/php-src/issues/13690) (Global Mt19937 is not properly reset in-between requests when MT\_RAND\_PHP is used). * Session: + Fixed bug [GH-13680](https://github.com/php/php-src/issues/13680) (Segfault with session\_decode and compilation error). * SPL: + Fixed bug [GH-13685](https://github.com/php/php-src/issues/13685) (Unexpected null pointer in zend\_string.h). * Standard: + Fixed bug [GH-11808](https://github.com/php/php-src/issues/11808) (Live filesystem modified by tests). + Fixed [GH-13402](https://github.com/php/php-src/issues/13402) (Added validation of `\n` in $additional\_headers of mail()). + Fixed bug [GH-13203](https://github.com/php/php-src/issues/13203) (file\_put\_contents fail on strings over 4GB on Windows). + Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc\_open). (CVE-2024-1874) + Fixed bug GHSA-wpj3-hf5j-x4v4 (\_\_Host-/\_\_Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756) + Fixed bug GHSA-h746-cjrr-wfmr (password\_verify can erroneously return true, opening ATO risk). (CVE-2024-3096) + Fixed bug GHSA-fjp9-9hwx-59fq (mb\_encode\_mimeheader runs endlessly for some inputs). (CVE-2024-2757) + Fix bug [GH-13932](https://github.com/php/php-src/issues/13932) (Attempt to fix mbstring on windows build) (msvc). ##### Version 8.3.4 **14 Mar 2024** * Core: + Fix ZTS persistent resource crashes on shutdown. * Curl: + Fix failing tests due to string changes in libcurl 8.6.0. * DOM: + Fix unlikely memory leak in case of namespace removal with extremely deep trees. + Fix reference access in dimensions for DOMNodeList and DOMNodeMap. * Fileinfo: + Fixed bug [GH-13344](https://github.com/php/php-src/issues/13344) (finfo::buffer(): Failed identify data 0:(null), backport). * FPM: + Fixed bug [#75712](http://bugs.php.net/75712) (getenv in php-fpm should not read $\_ENV, $\_SERVER). * GD: + Fixed bug [GH-12019](https://github.com/php/php-src/issues/12019) (detection of image formats in system gd library). * MySQLnd: + Fixed bug [GH-11950](https://github.com/php/php-src/issues/11950) ([mysqlnd] Fixed not to set CR\_MALFORMED\_PACKET to error if CR\_SERVER\_GONE\_ERROR is already set). * PDO: + Fix various PDORow bugs. * PGSQL: + Fixed bug [GH-13354](https://github.com/php/php-src/issues/13354) (pg\_execute/pg\_send\_query\_params/pg\_send\_execute with null value passed by reference). * SPL: + Fixed bug [GH-13531](https://github.com/php/php-src/issues/13531) (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15). * Standard: + Fixed bug [GH-13279](https://github.com/php/php-src/issues/13279) (Instable array during in-place modification in uksort). + Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now). * XML: + Fixed bug [GH-13517](https://github.com/php/php-src/issues/13517) (Multiple test failures when building with --with-expat). ##### Version 8.3.3 **15 Feb 2024** * Core: + Fixed timer leak in zend-max-execution-timers builds. + Fixed bug [GH-12349](https://github.com/php/php-src/issues/12349) (linking failure on ARM with mold). + Fixed bug [GH-13097](https://github.com/php/php-src/issues/13097) (Anonymous class reference in trigger\_error / thrown Exception). + Fixed bug [GH-13177](https://github.com/php/php-src/issues/13177) (PHP 8.3.2: final private constructor not allowed when used in trait). + Fixed bug [GH-13215](https://github.com/php/php-src/issues/13215) (GCC 14 build failure). * Curl: + Fix missing error check in curl\_multi\_init(). * FPM: + Fixed bug [GH-12996](https://github.com/php/php-src/issues/12996) (Incorrect SCRIPT\_NAME with Apache ProxyPassMatch when plus in path). * GD: + Fixed bug [GH-10344](https://github.com/php/php-src/issues/10344) (imagettfbbox(): Could not find/open font UNC path). + Fixed bug [GH-10614](https://github.com/php/php-src/issues/10614) (imagerotate will turn the picture all black, when rotated 90). * LibXML: + Fix crashes with entity references and predefined entities. * MySQLnd: + Fixed bug [GH-12107](https://github.com/php/php-src/issues/12107) (When running a stored procedure (that returns a result set) twice, PHP crashes). * Opcache: + Fixed bug [GH-13145](https://github.com/php/php-src/issues/13145) (strtok() is not comptime). + Fixed type inference of range(). + Fixed bug [GH-13232](https://github.com/php/php-src/issues/13232) (Segmentation fault will be reported when JIT is off but JIT\_debug is still on). * OpenSSL: + Fixed LibreSSL undefined reference when OPENSSL\_NO\_ENGINE not set. (David Carlier). * PDO\_Firebird: + Fix [GH-13119](https://github.com/php/php-src/issues/13119) (Changed to convert float and double values โ€‹โ€‹into strings using `H` format). * Phar: + Fixed bug [#71465](http://bugs.php.net/71465) (PHAR doesn't know about litespeed). + Fixed bug [GH-13037](https://github.com/php/php-src/issues/13037) (PharData incorrectly extracts zip file). * Random: + Fixed bug [GH-13138](https://github.com/php/php-src/issues/13138) (Randomizer::pickArrayKeys() does not detect broken engines). * Session: + Fixed bug [GH-12504](https://github.com/php/php-src/issues/12504) (Corrupted session written when there's a fatal error in autoloader). * Standard: + Fixed bug [GH-13094](https://github.com/php/php-src/issues/13094) (range(9.9, '0') causes segmentation fault). * Streams: + Fixed bug [GH-13071](https://github.com/php/php-src/issues/13071) (Copying large files using mmap-able source streams may exhaust available memory and fail). ##### Version 8.3.2 **18 Jan 2024** * Core: + Fixed bug [GH-12953](https://github.com/php/php-src/issues/12953) (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements). + Fixed bug [GH-12999](https://github.com/php/php-src/issues/12999) (zend\_strnlen build when strnlen is unsupported). + Fixed bug [GH-12966](https://github.com/php/php-src/issues/12966) (missing cross-compiling 3rd argument so Autoconf doesn't emit warnings). + Fixed bug [GH-12854](https://github.com/php/php-src/issues/12854) (8.3 - as final trait-used method does not correctly report visibility in Reflection). * Cli: + Fix incorrect timeout in built-in web server when using router script and max\_input\_time. * DOM: + Fixed bug [GH-12870](https://github.com/php/php-src/issues/12870) (Creating an xmlns attribute results in a DOMException). + Fix crash when toggleAttribute() is used without a document. + Fix crash in adoptNode with attribute references. + Fixed bug [GH-13012](https://github.com/php/php-src/issues/13012) (DOMNode::isEqualNode() is incorrect when attribute order is different). * FFI: + Fixed bug [GH-9698](https://github.com/php/php-src/issues/9698) (stream\_wrapper\_register crashes with FFI\CData). + Fixed bug [GH-12905](https://github.com/php/php-src/issues/12905) (FFI::new interacts badly with observers). * Intl: + Fixed [GH-12943](https://github.com/php/php-src/issues/12943) (IntlDateFormatter::\_\_construct accepts 'C' as valid locale). * Hash: + Fixed bug [GH-12936](https://github.com/php/php-src/issues/12936) (hash() function hangs endlessly if using sha512 on strings >= 4GiB). * ODBC: + Fix crash on Apache shutdown with persistent connections. * Opcache: + Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result). + Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show\_bug.cgi?id=218258. * OpenSSL: + Fixed bug [GH-12987](https://github.com/php/php-src/issues/12987) (openssl\_csr\_sign might leak new cert on error). * PDO: + Fix [GH-12969](https://github.com/php/php-src/issues/12969) (Fixed PDO::getAttribute() to get PDO::ATTR\_STRINGIFY\_FETCHES). * PDO\_ODBC: + Fixed bug [GH-12767](https://github.com/php/php-src/issues/12767) (Unable to turn on autocommit mode with setAttribute()). * PGSQL: + Fixed auto\_reset\_persistent handling and allow\_persistent type. + Fixed bug [GH-12974](https://github.com/php/php-src/issues/12974) (Apache crashes on shutdown when using pg\_pconnect()). * Phar: + Fixed bug [#77432](http://bugs.php.net/77432) (Segmentation fault on including phar file). * PHPDBG: + Fixed bug [GH-12962](https://github.com/php/php-src/issues/12962) (Double free of init\_file in phpdbg\_prompt.c). * SimpleXML: + Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash. + Fixed bug [GH-12929](https://github.com/php/php-src/issues/12929) (SimpleXMLElement with stream\_wrapper\_register can segfault). * Tidy: + Fixed bug [GH-12980](https://github.com/php/php-src/issues/12980) (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes). ##### Version 8.3.1 **21 Dec 2023** * Core: + Fixed bug [GH-12758](https://github.com/php/php-src/issues/12758) / [GH-12768](https://github.com/php/php-src/issues/12768) (Invalid opline in OOM handlers within ZEND\_FUNC\_GET\_ARGS and ZEND\_BIND\_STATIC). + Fix various missing NULL checks. + Fixed bug [GH-12835](https://github.com/php/php-src/issues/12835) (Leak of call->extra\_named\_params on internal \_\_call). + Fixed bug [GH-12826](https://github.com/php/php-src/issues/12826) (Weird pointers issue in nested loops). * FPM: + Fixed bug [GH-12705](https://github.com/php/php-src/issues/12705) (Segmentation fault in fpm\_status\_export\_to\_zval). * FTP: + Fixed bug [GH-9348](https://github.com/php/php-src/issues/9348) (FTP & SSL session reuse). * LibXML: + Fixed test failures for libxml2 2.12.0. * MySQLnd: + Avoid using uninitialised struct. + Fixed bug [GH-12791](https://github.com/php/php-src/issues/12791) (Possible dereference of NULL in MySQLnd debug code). * Opcache: + Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error). + Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown). * PDO PGSQL: + Fixed the default value of $fetchMode in PDO::pgsqlGetNotify() (kocsismate) * SOAP: + Fixed bug [GH-12838](https://github.com/php/php-src/issues/12838) ([SOAP] Temporary WSDL cache files not being deleted). * Standard: + Fixed [GH-12745](https://github.com/php/php-src/issues/12745) (http\_build\_query() default null argument for $arg\_separator is implicitly coerced to string). ##### Version 8.3.0 **23 Nov 2023** * Bcmath: + Fixed [GH-11761](https://github.com/php/php-src/issues/11761) (removing trailing zeros from numbers) (jorgsowa) * CLI: + Added pdeathsig to builtin server to terminate workers when the master process is killed. + Fixed bug [GH-11104](https://github.com/php/php-src/issues/11104) (STDIN/STDOUT/STDERR is not available for CLI without a script). + Implement [GH-10024](https://github.com/php/php-src/issues/10024) (support linting multiple files at once using php -l). * Core: + Fix [GH-11388](https://github.com/php/php-src/issues/11388) (Allow "final" modifier when importing a method from a trait). + Fixed bug [GH-11406](https://github.com/php/php-src/issues/11406) (segfault with unpacking and magic method closure). + Fixed bug [GH-9388](https://github.com/php/php-src/issues/9388) (Improve unset property and \_\_get type incompatibility error message). + SA\_ONSTACK is now set for signal handlers to be friendlier to other in-process code such as Go's cgo. + SA\_ONSTACK is now set when signals are disabled. + Fix [GH-9649](https://github.com/php/php-src/issues/9649): Signal handlers now do a no-op instead of crashing when executed on threads not managed by TSRM. + Added shadow stack support for fibers. + Fix bug [GH-9965](https://github.com/php/php-src/issues/9965) (Fix accidental caching of default arguments with side effects). + Implement [GH-10217](https://github.com/php/php-src/issues/10217) (Use strlen() for determining the class\_name length). + Fix bug [GH-8821](https://github.com/php/php-src/issues/8821) (Improve line numbers for errors in constant expressions). + Fix bug [GH-10083](https://github.com/php/php-src/issues/10083) (Allow comments between & and parameter). + Zend Max Execution Timers is now enabled by default for ZTS builds on Linux. + Fix bug [GH-10469](https://github.com/php/php-src/issues/10469) (Disallow .. in open\_basedir paths set at runtime). + Fix bug [GH-10168](https://github.com/php/php-src/issues/10168), [GH-10582](https://github.com/php/php-src/issues/10582) (Various segfaults with destructors and VM return values). + Fix bug [GH-10935](https://github.com/php/php-src/issues/10935) (Use of trait doesn't redeclare static property if class has inherited it from its parent). + Fix bug [GH-11154](https://github.com/php/php-src/issues/11154) (Negative indices on empty array don't affect next chosen index). + Fix bug [GH-8846](https://github.com/php/php-src/issues/8846) (Implement delayed early binding for classes without parents). + Fix bug #79836 (Segfault in concat\_function). + Fix bug #81705 (type confusion/UAF on set\_error\_handler with concat operation). + Fix [GH-11348](https://github.com/php/php-src/issues/11348) (Closure created from magic method does not accept named arguments). + Fix [GH-11388](https://github.com/php/php-src/issues/11388) (Allow "final" modifier when importing a method from a trait). + Fixed bug [GH-11406](https://github.com/php/php-src/issues/11406) (segfault with unpacking and magic method closure). + Fixed bug [GH-11507](https://github.com/php/php-src/issues/11507) (String concatenation performance regression in 8.3). + Fixed [GH-11488](https://github.com/php/php-src/issues/11488) (Missing "Optional parameter before required" deprecation on union null type). + Implement the #[\Override] attribute RFC. + Fixed bug [GH-11601](https://github.com/php/php-src/issues/11601) (Incorrect handling of unwind and graceful exit exceptions). + Added zend\_call\_stack\_get implementation for OpenBSD. + Add stack limit check in zend\_eval\_const\_expr(). + Expose time spent collecting cycles in gc\_status(). + Remove WeakMap entries whose key is only reachable through the entry value. + Resolve open\_basedir paths on INI update. + Fixed oss-fuzz #60741 (Leak in open\_basedir). + Fixed segfault during freeing of some incompletely initialized objects due to OOM error (PDO, SPL, XSL). + Introduced Zend guard recursion protection to fix \_\_debugInfo issue. + Fixed oss-fuzz #61712 (assertion failure with error handler during binary op). + Fixed [GH-11847](https://github.com/php/php-src/issues/11847) (DTrace enabled build is broken). + Fixed OSS Fuzz #61865 (Undef variable in ++/-- for declared property that is unset in error handler). + Fixed warning emitted when checking if a user stream is castable. + Fixed bug [GH-12123](https://github.com/php/php-src/issues/12123) (Compile error on MacOS with C++ extension when using ZEND\_BEGIN\_ARG\_WITH\_RETURN\_TYPE\_INFO\_EX). + Fixed bug [GH-12189](https://github.com/php/php-src/issues/12189) (#[Override] attribute in trait does not check for parent class implementations). + Fixed OSS Fuzz #62294 (Unsetting variable after ++/-- on string variable warning). + Fixed buffer underflow when compiling memoized expression. + Fixed oss-fuzz #63802 (OP1 leak in error path of post inc/dec). * Curl: + Added Curl options and constants up to (including) version 7.87. * Date: + Implement More Appropriate Date/Time Exceptions RFC. * DOM: + Fix bug [GH-8388](https://github.com/php/php-src/issues/8388) (DOMAttr unescapes character reference). + Fix bug [GH-11308](https://github.com/php/php-src/issues/11308) (getElementsByTagName() is O(N^2)). + Fix #79700 (wrong use of libxml oldNs leads to performance problem). + Fix #77894 (DOMNode::C14N() very slow on generated DOMDocuments even after normalisation). + Revert changes to DOMAttr::$value and DOMAttr::$nodeValue expansion. + Fixed bug [GH-11500](https://github.com/php/php-src/issues/11500) (Namespace reuse in createElementNS() generates wrong output). + Implemented DOMDocument::adoptNode(). Previously this always threw a "not yet implemented" exception. + Fixed bug [GH-9628](https://github.com/php/php-src/issues/9628) (Implicitly removing nodes from \DOMDocument breaks existing references). + Added DOMNode::contains() and DOMNameSpaceNode::contains(). + Added DOMElement::getAttributeNames(). + Added DOMNode::getRootNode(). + Added DOMElement::className and DOMElement::id. + Added DOMParentNode::replaceChildren(). + Added DOMNode::isConnected and DOMNameSpaceNode::isConnected. + Added DOMNode::parentElement and DOMNameSpaceNode::parentElement. + Added DOMNode::isEqualNode(). + Added DOMElement::insertAdjacentElement() and DOMElement::insertAdjacentText(). + Added DOMElement::toggleAttribute(). + Fixed bug [GH-11792](https://github.com/php/php-src/issues/11792) (LIBXML\_NOXMLDECL is not implemented or broken). + adoptNode now respects the strict error checking property. + Align DOMChildNode parent checks with spec. + Fixed bug [#80927](http://bugs.php.net/80927) (Removing documentElement after creating attribute node: possible use-after-free). + Fix various namespace prefix conflict resolution bugs. + Fix calling createAttributeNS() without prefix causing the default namespace of the element to change. + Fixed [GH-11952](https://github.com/php/php-src/issues/11952) (Confusing warning when blocking entity loading via libxml\_set\_external\_entity\_loader). + Fix broken cache invalidation with deallocated and reallocated document node. + Fix compile error when php\_libxml.h header is included in C++. + Fixed bug [#47531](http://bugs.php.net/47531) (No way of removing redundant xmlns: declarations). * Exif: + Removed unneeded codepaths in exif\_process\_TIFF\_in\_JPEG(). * FFI: + Implement [GH-11934](https://github.com/php/php-src/issues/11934) (Allow to pass CData into struct and/or union fields). * Fileinfo: + Upgrade bundled libmagic to 5.43. + Fix [GH-11408](https://github.com/php/php-src/issues/11408) (Unable to build PHP 8.3.0 alpha 1 / fileinfo extension). * FPM: + The status.listen shared pool now uses the same php\_values (including expose\_php) and php\_admin\_value as the pool it is shared with. + Added warning to log when fpm socket was not registered on the expected path. + Fixed bug [#76067](http://bugs.php.net/76067) (system() function call leaks php-fpm listening sockets). + Fixed [GH-12077](https://github.com/php/php-src/issues/12077) (PHP 8.3.0RC1 borked socket-close-on-exec.phpt). * GD: + Removed imagerotate "ignore\_transparent" argument since it has no effect. * Intl: + Added pattern format error infos for numfmt\_set\_pattern. + Added MIXED\_NUMBERS and HIDDEN\_OVERLAY constants for the Spoofchecker's class. + Updated datefmt\_set\_timezone/IntlDateformatter::setTimezone returns type. (David Carlier). + Updated IntlBreakInterator::setText return type. + Updated IntlChar::enumCharNames return type. + Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale. * JSON: + Added json\_validate(). * LDAP: + Deprecate calling ldap\_connect() with separate hostname and port. * LibXML: + Fix compile error with -Werror=incompatible-function-pointer-types and old libxml2. * MBString: + mb\_detect\_encoding is better able to identify the correct encoding for Turkish text. + mb\_detect\_encoding's "non-strict" mode now behaves as described in the documentation. Previously, it would return false if the same byte (for example, the first byte) of the input string was invalid in all candidate encodings. More generally, it would eliminate candidate encodings from consideration when an invalid byte was seen, and if the same input byte eliminated all remaining encodings still under consideration, it would return false. On the other hand, if all candidate encodings but one were eliminated from consideration, it would return the last remaining one without regard for how many encoding errors might be encountered later in the string. This is different from the behavior described in the documentation, which says: "If strict is set to false, the closest matching encoding will be returned." (Alex Dowad) + mb\_strtolower, mb\_strtotitle, and mb\_convert\_case implement conditional casing rules for the Greek letter sigma. For mb\_convert\_case, conditional casing only applies to MB\_CASE\_LOWER and MB\_CASE\_TITLE modes, not to MB\_CASE\_LOWER\_SIMPLE and MB\_CASE\_TITLE\_SIMPLE. + mb\_detect\_encoding is better able to identify UTF-8 and UTF-16 strings with a byte-order mark. + mb\_decode\_mimeheader interprets underscores in QPrint-encoded MIME encoded words as required by RFC 2047; they are converted to spaces. Underscores must be encoded as "=5F" in such MIME encoded words. + mb\_encode\_mimeheader no longer drops NUL (zero) bytes when QPrint-encoding the input string. This previously caused strings in certain text encodings, especially UTF-16 and UTF-32, to be corrupted by mb\_encode\_mimeheader. + Implement mb\_str\_pad() RFC. + Fixed bug [GH-11514](https://github.com/php/php-src/issues/11514) (PHP 8.3 build fails with --enable-mbstring enabled). + Fix use-after-free of mb\_list\_encodings() return value. + Fixed bug [GH-11992](https://github.com/php/php-src/issues/11992) (utf\_encodings.phpt fails on Windows 32-bit). * mysqli: + mysqli\_fetch\_object raises a ValueError instead of an Exception. * Opcache: + Added start, restart and force restart time to opcache's phpinfo section. + Fix [GH-9139](https://github.com/php/php-src/issues/9139): Allow FFI in opcache.preload when opcache.preload\_user=root. + Made opcache.preload\_user always optional in the cli and phpdbg SAPIs. + Allows W/X bits on page creation on FreeBSD despite system settings. + Added memfd api usage, on Linux, for zend\_shared\_alloc\_create\_lock() to create an abstract anonymous file for the opcache's lock. + Avoid resetting JIT counter handlers from multiple processes/threads. + Fixed COPY\_TMP type inference for references. * OpenSSL: + Added OPENSSL\_CMS\_OLDMIMETYPE and PKCS7\_NOOLDMIMETYPE contants to switch between mime content types. + Fixed [GH-11054](https://github.com/php/php-src/issues/11054): Reset OpenSSL errors when using a PEM public key. + Added support for additional EC parameters in openssl\_pkey\_new. * PCNTL: + SA\_ONSTACK is now set for pcntl\_signal. + Added SIGINFO constant. * PCRE: + Update bundled libpcre2 to 10.42. * PGSQL: + pg\_fetch\_object raises a ValueError instead of an Exception. + pg\_cancel use thread safe PQcancel api instead. + pg\_trace new PGSQL\_TRACE\_SUPPRESS\_TIMESTAMPS/PGSQL\_TRACE\_REGRESS\_MODE contants support. + pg\_set\_error\_verbosity adding PGSQL\_ERRORS\_STATE constant. + pg\_convert/pg\_insert E\_WARNING on type errors had been converted to ValueError/TypeError exceptions. + Added pg\_set\_error\_context\_visibility to set the context's visibility within the error messages. * Phar: + Fix memory leak in phar\_rename\_archive(). * POSIX: + Added posix\_sysconf. + Added posix\_pathconf. + Added posix\_fpathconf. + Fixed zend\_parse\_arg\_long's bool pointer argument assignment. + Added posix\_eaccess. * Random: + Added Randomizer::getBytesFromString(). + Added Randomizer::nextFloat(), ::getFloat(), and IntervalBoundary. + Enable getrandom() for NetBSD (from 10.x). + Deprecate MT\_RAND\_PHP. + Fix Randomizer::getFloat() returning incorrect results under certain circumstances. * Reflection: + Fix [GH-9470](https://github.com/php/php-src/issues/9470) (ReflectionMethod constructor should not find private parent method). + Fix [GH-10259](https://github.com/php/php-src/issues/10259) (ReflectionClass::getStaticProperties doesn't need null return type). * SAPI: + Fixed [GH-11141](https://github.com/php/php-src/issues/11141) (Could not open input file: should be sent to stderr). * Session: + Fixed bug [GH-11529](https://github.com/php/php-src/issues/11529) (Crash after dealing with an Apache request). * SimpleXML: + Fixed bug [GH-12192](https://github.com/php/php-src/issues/12192) (SimpleXML infinite loop when getName() is called within foreach). + Fixed bug [GH-12208](https://github.com/php/php-src/issues/12208) (SimpleXML infinite loop when a cast is used inside a foreach). + Fixed bug [#55098](http://bugs.php.net/55098) (SimpleXML iteration produces infinite loop). * Sockets: + Added SO\_ATTACH\_REUSEPORT\_CBPF socket option, to give tighter control over socket binding for a cpu core. + Added SKF\_AD\_QUEUE for cbpf filters. + Added socket\_atmark if send/recv needs using MSG\_OOB. + Added TCP\_QUICKACK constant, to give tigher control over ACK delays. + Added DONTFRAGMENT support for path MTU discovery purpose. + Added AF\_DIVERT for raw socket for divert ports. + Added SOL\_UPDLITE, UDPLITE\_RECV\_CSCOV and UDPLITE\_SEND\_CSCOV for updlite protocol support. + Added SO\_RERROR, SO\_ZEROIZE and SO\_SPLICE netbsd and openbsd constants. + Added TCP\_REPAIR for quietly close a connection. + Added SO\_REUSEPORT\_LB freebsd constant. + Added IP\_BIND\_ADDRESS\_NO\_PORT. * SPL: + Fixed [GH-11573](https://github.com/php/php-src/issues/11573) (RecursiveDirectoryIterator::hasChildren is slow). * Standard: + E\_NOTICEs emitted by unserialize() have been promoted to E\_WARNING. + unserialize() now emits a new E\_WARNING if the input contains unconsumed bytes. + Make array\_pad's $length warning less confusing. + E\_WARNING emitted by strtok in the caase both arguments are not provided when starting tokenisation. + password\_hash() will now chain the original RandomException to the ValueError on salt generation failure. + Fix [GH-10239](https://github.com/php/php-src/issues/10239) (proc\_close after proc\_get\_status always returns -1). + Improve the warning message for unpack() in case not enough values were provided. + Fix [GH-11010](https://github.com/php/php-src/issues/11010) (parse\_ini\_string() now preserves formatting of unquoted strings starting with numbers when the INI\_SCANNER\_TYPED flag is specified). + Fix [GH-10742](https://github.com/php/php-src/issues/10742) (http\_response\_code emits no error when headers were already sent). + Added support for rounding negative places in number\_format(). + Prevent precision loss on formatting decimal integers in number\_format(). + Added usage of posix\_spawn for proc\_open when supported by OS. + Added $before\_needle argument to strrchr(). + Fixed [GH-11982](https://github.com/php/php-src/issues/11982) (str\_getcsv returns null byte for unterminated enclosure). + Fixed str\_decrement() on "1". * Streams: + Fixed bug [#51056](http://bugs.php.net/51056): blocking fread() will block even if data is available. + Added storing of the original path used to open xport stream. + Implement [GH-8641](https://github.com/php/php-src/issues/8641) (STREAM\_NOTIFY\_COMPLETED over HTTP never emitted). + Fix bug [GH-10406](https://github.com/php/php-src/issues/10406) (fgets on a redis socket connection fails on PHP 8.3). + Implemented [GH-11242](https://github.com/php/php-src/issues/11242) (\_php\_stream\_copy\_to\_mem: Allow specifying a maximum length without allocating a buffer of that size). + Fixed bug [#52335](http://bugs.php.net/52335) (fseek() on memory stream behavior different than file). + Fixed bug [#76857](http://bugs.php.net/76857) (Can read "non-existant" files). * XSLTProcessor: + Fixed bug [#69168](http://bugs.php.net/69168) (DomNode::getNodePath() returns invalid path). * ZIP: + zip extension version 1.22.0 for libzip 1.10.0. + add new error macros (ER\_DATA\_LENGTH and ER\_NOT\_ALLOWED). + add new archive global flags (ER\_AFL\_\*). + add ZipArchive::setArchiveFlag and ZipArchive::getArchiveFlag methods. ##### Version 8.2.28 **13 Mar 2025** * Core: + Fixed bug [GH-17211](https://github.com/php/php-src/issues/17211) (observer segfault on function loaded with dl()). * LibXML: + Fixed [GHSA-wg4p-4hqh-c3g9](https://github.com/php/php-src/security/advisories/GHSA-wg4p-4hqh-c3g9) (Reocurrence of #72714). + Fixed [GHSA-p3x9-6h7p-cgfc](https://github.com/php/php-src/security/advisories/GHSA-p3x9-6h7p-cgfc) (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) * Streams: + Fixed [GHSA-hgf5-96fm-v528](https://github.com/php/php-src/security/advisories/GHSA-hgf5-96fm-v528) (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) + Fixed [GHSA-52jp-hrpf-2jff](https://github.com/php/php-src/security/advisories/GHSA-52jp-hrpf-2jff) (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) + Fixed [GHSA-pcmh-g36c-qc44](https://github.com/php/php-src/security/advisories/GHSA-pcmh-g36c-qc44) (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) + Fixed [GHSA-v8xr-gpvj-cx9g](https://github.com/php/php-src/security/advisories/GHSA-v8xr-gpvj-cx9g) (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) * Windows: + Fixed phpize for Windows 11 (24H2). ##### Version 8.2.27 **19 Dec 2024** * Calendar: + Fixed jdtogregorian overflow. + Fixed cal\_to\_jd julian\_days argument overflow. * COM: + Fixed bug [GH-16991](https://github.com/php/php-src/issues/16991) (Getting typeinfo of non DISPATCH variant segfaults). * Core: + Fail early in \*nix configuration build script. + Fixed bug [GH-16727](https://github.com/php/php-src/issues/16727) (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)). + Fixed bug [GH-16799](https://github.com/php/php-src/issues/16799) (Assertion failure at Zend/zend\_vm\_execute.h:7469). + Fixed bug [GH-16630](https://github.com/php/php-src/issues/16630) (UAF in lexer with encoding translation and heredocs). + Fix is\_zend\_ptr() huge block comparison. + Fixed potential OOB read in zend\_dirname() on Windows. * Curl: + Fix various memory leaks in curl mime handling. * FPM: + Fixed [GH-16432](https://github.com/php/php-src/issues/16432) (PHP-FPM 8.2 SIGSEGV in fpm\_get\_status). * GD: + Fixed [GH-16776](https://github.com/php/php-src/issues/16776) (imagecreatefromstring overflow). * GMP: + Revert gmp\_pow() overly restrictive overflow checks. * Hash: + Fixed [GH-16711](https://github.com/php/php-src/issues/16711): Segfault in mhash(). * Opcache: + Fixed bug [GH-16770](https://github.com/php/php-src/issues/16770) (Tracing JIT type mismatch when returning UNDEF). + Fixed bug [GH-16851](https://github.com/php/php-src/issues/16851) (JIT\_G(enabled) not set correctly on other threads). + Fixed bug [GH-16902](https://github.com/php/php-src/issues/16902) (Set of opcache tests fail zts+aarch64). * OpenSSL: + Prevent unexpected array entry conversion when reading key. + Fix various memory leaks related to openssl exports. + Fix memory leak in php\_openssl\_pkey\_from\_zval(). * PDO: + Fixed memory leak of `setFetchMode()`. * Phar: + Fixed bug [GH-16695](https://github.com/php/php-src/issues/16695) (phar:// tar parser and zero-length file header blocks). * PHPDBG: + Fixed bug [GH-15208](https://github.com/php/php-src/issues/15208) (Segfault with breakpoint map and phpdbg\_clear()). * SAPI: + Fixed bug [GH-16998](https://github.com/php/php-src/issues/16998) (UBSAN warning in rfc1867). * SimpleXML: + Fixed bug [GH-16808](https://github.com/php/php-src/issues/16808) (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input). * SNMP: + Fixed bug [GH-16959](https://github.com/php/php-src/issues/16959) (snmget modifies the object\_id array). * Standard: + Fixed bug [GH-16905](https://github.com/php/php-src/issues/16905) (Internal iterator functions can't handle UNDEF properties). * Streams: + Fixed network connect poll interuption handling. * Windows: + Fixed bug [GH-16849](https://github.com/php/php-src/issues/16849) (Error dialog causes process to hang). ##### Version 8.2.26 **21 Nov 2024** * CLI: + Fixed bug [GH-16373](https://github.com/php/php-src/issues/16373) (Shebang is not skipped for router script in cli-server started through shebang). + Fixed bug [GHSA-4w77-75f9-2c8w](https://github.com/php/php-src/security/advisories/GHSA-4w77-75f9-2c8w) (Heap-Use-After-Free in sapi\_read\_post\_data Processing in CLI SAPI Interface). * COM: + Fixed out of bound writes to SafeArray data. * Core: + Fixed bug [GH-16168](https://github.com/php/php-src/issues/16168) (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15). + Fixed bug [GH-16371](https://github.com/php/php-src/issues/16371) (Assertion failure in Zend/zend\_weakrefs.c:646). + Fixed bug [GH-16515](https://github.com/php/php-src/issues/16515) (Incorrect propagation of ZEND\_ACC\_RETURN\_REFERENCE for call trampoline). + Fixed bug [GH-16509](https://github.com/php/php-src/issues/16509) (Incorrect line number in function redeclaration error). + Fixed bug [GH-16508](https://github.com/php/php-src/issues/16508) (Incorrect line number in inheritance errors of delayed early bound classes). + Fixed bug [GH-16648](https://github.com/php/php-src/issues/16648) (Use-after-free during array sorting). * Curl: + Fixed bug [GH-16302](https://github.com/php/php-src/issues/16302) (CurlMultiHandle holds a reference to CurlHandle if curl\_multi\_add\_handle fails). * Date: + Fixed bug [GH-16454](https://github.com/php/php-src/issues/16454) (Unhandled INF in date\_sunset() with tiny $utcOffset). + Fixed bug [GH-16037](https://github.com/php/php-src/issues/16037) (Assertion failure in ext/date/php\_date.c). + Fixed bug [GH-14732](https://github.com/php/php-src/issues/14732) (date\_sun\_info() fails for non-finite values). * DBA: + Fixed bug [GH-16390](https://github.com/php/php-src/issues/16390) (dba\_open() can segfault for "pathless" streams). * DOM: + Fixed bug [GH-16316](https://github.com/php/php-src/issues/16316) (DOMXPath breaks when not initialized properly). + Fixed bug [GH-16473](https://github.com/php/php-src/issues/16473) (dom\_import\_simplexml stub is wrong). + Fixed bug [GH-16533](https://github.com/php/php-src/issues/16533) (Segfault when adding attribute to parent that is not an element). + Fixed bug [GH-16535](https://github.com/php/php-src/issues/16535) (UAF when using document as a child). + Fixed bug [GH-16593](https://github.com/php/php-src/issues/16593) (Assertion failure in DOM->replaceChild). + Fixed bug [GH-16595](https://github.com/php/php-src/issues/16595) (Another UAF in DOM -> cloneNode). * EXIF: + Fixed bug [GH-16409](https://github.com/php/php-src/issues/16409) (Segfault in exif\_thumbnail when not dealing with a real file). * FFI: + Fixed bug [GH-16397](https://github.com/php/php-src/issues/16397) (Segmentation fault when comparing FFI object). * Filter: + Fixed bug [GH-16523](https://github.com/php/php-src/issues/16523) (FILTER\_FLAG\_HOSTNAME accepts ending hyphen). * FPM: + Fixed bug [GH-16628](https://github.com/php/php-src/issues/16628) (FPM logs are getting corrupted with this log statement). * GD: + Fixed bug [GH-16334](https://github.com/php/php-src/issues/16334) (imageaffine overflow on matrix elements). + Fixed bug [GH-16427](https://github.com/php/php-src/issues/16427) (Unchecked libavif return values). + Fixed bug [GH-16559](https://github.com/php/php-src/issues/16559) (UBSan abort in ext/gd/libgd/gd\_interpolation.c:1007). * GMP: + Fixed floating point exception bug with gmp\_pow when using large exposant values. (David Carlier). + Fixed bug [GH-16411](https://github.com/php/php-src/issues/16411) (gmp\_export() can cause overflow). + Fixed bug [GH-16501](https://github.com/php/php-src/issues/16501) (gmp\_random\_bits() can cause overflow). + Fixed gmp\_pow() overflow bug with large base/exponents. + Fixed segfaults and other issues related to operator overloading with GMP objects. * LDAP: + Fixed bug [GHSA-g665-fm4p-vhff](https://github.com/php/php-src/security/advisories/GHSA-g665-fm4p-vhff) (OOB access in ldap\_escape). (CVE-2024-8932) * MBstring: + Fixed bug [GH-16361](https://github.com/php/php-src/issues/16361) (mb\_substr overflow on start/length arguments). * MySQLnd: + Fixed bug [GHSA-h35g-vwh6-m678](https://github.com/php/php-src/security/advisories/GHSA-h35g-vwh6-m678) (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929) * OpenSSL: + Fixed bug [GH-16357](https://github.com/php/php-src/issues/16357) (openssl may modify member types of certificate arrays). + Fixed bug [GH-16433](https://github.com/php/php-src/issues/16433) (Large values for openssl\_csr\_sign() $days overflow). + Fix various memory leaks on error conditions in openssl\_x509\_parse(). * PDO DBLIB: + Fixed bug [GHSA-5hqh-c84r-qjcv](https://github.com/php/php-src/security/advisories/GHSA-5hqh-c84r-qjcv) (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236) * PDO Firebird: + Fixed bug [GHSA-5hqh-c84r-qjcv](https://github.com/php/php-src/security/advisories/GHSA-5hqh-c84r-qjcv) (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236) * PDO ODBC: + Fixed bug [GH-16450](https://github.com/php/php-src/issues/16450) (PDO\_ODBC can inject garbage into field values). * Phar: + Fixed bug [GH-16406](https://github.com/php/php-src/issues/16406) (Assertion failure in ext/phar/phar.c:2808). * PHPDBG: + Fixed bug [GH-16174](https://github.com/php/php-src/issues/16174) (Empty string is an invalid expression for ev). * Reflection: + Fixed bug [GH-16601](https://github.com/php/php-src/issues/16601) (Memory leak in Reflection constructors). * Session: + Fixed bug [GH-16385](https://github.com/php/php-src/issues/16385) (Unexpected null returned by session\_set\_cookie\_params). + Fixed bug [GH-16290](https://github.com/php/php-src/issues/16290) (overflow on cookie\_lifetime ini value). * SOAP: + Fixed bug [GH-16429](https://github.com/php/php-src/issues/16429) (Segmentation fault access null pointer in SoapClient). * Sockets: + Fixed bug with overflow socket\_recvfrom $length argument. * SPL: + Fixed bug [GH-16337](https://github.com/php/php-src/issues/16337) (Use-after-free in SplHeap). + Fixed bug [GH-16464](https://github.com/php/php-src/issues/16464) (Use-after-free in SplDoublyLinkedList::offsetSet()). + Fixed bug [GH-16479](https://github.com/php/php-src/issues/16479) (Use-after-free in SplObjectStorage::setInfo()). + Fixed bug [GH-16478](https://github.com/php/php-src/issues/16478) (Use-after-free in SplFixedArray::unset()). + Fixed bug [GH-16588](https://github.com/php/php-src/issues/16588) (UAF in Observer->serialize). + Fix [GH-16477](https://github.com/php/php-src/issues/16477) (Segmentation fault when calling \_\_debugInfo() after failed SplFileObject::\_\_constructor). + Fixed bug [GH-16589](https://github.com/php/php-src/issues/16589) (UAF in SplDoublyLinked->serialize()). + Fixed bug [GH-14687](https://github.com/php/php-src/issues/14687) (segfault on SplObjectIterator instance). + Fixed bug [GH-16604](https://github.com/php/php-src/issues/16604) (Memory leaks in SPL constructors). + Fixed bug [GH-16646](https://github.com/php/php-src/issues/16646) (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()). * Standard: + Fixed bug [GH-16293](https://github.com/php/php-src/issues/16293) (Failed assertion when throwing in assert() callback with bail enabled). * Streams: + Fixed bug [GHSA-c5f2-jwm7-mmq2](https://github.com/php/php-src/security/advisories/GHSA-c5f2-jwm7-mmq2) (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234) + Fixed bug [GHSA-r977-prxv-hc43](https://github.com/php/php-src/security/advisories/GHSA-r977-prxv-hc43) (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233) * SysVMsg: + Fixed bug [GH-16592](https://github.com/php/php-src/issues/16592) (msg\_send() crashes when a type does not properly serialized). * SysVShm: + Fixed bug [GH-16591](https://github.com/php/php-src/issues/16591) (Assertion error in shm\_put\_var). * XMLReader: + Fixed bug [GH-16292](https://github.com/php/php-src/issues/16292) (Segmentation fault in ext/xmlreader/php\_xmlreader.c). * Zlib: + Fixed bug [GH-16326](https://github.com/php/php-src/issues/16326) (Memory management is broken for bad dictionaries.) (cmb) ##### Version 8.2.25 **24 Oct 2024** * Calendar: + Fixed [GH-16240](https://github.com/php/php-src/issues/16240): jdtounix overflow on argument value. + Fixed [GH-16241](https://github.com/php/php-src/issues/16241): easter\_days/easter\_date overflow on year argument. + Fixed [GH-16263](https://github.com/php/php-src/issues/16263): jddayofweek overflow. + Fixed [GH-16234](https://github.com/php/php-src/issues/16234): jewishtojd overflow. * CLI: + Fixed bug [GH-16137](https://github.com/php/php-src/issues/16137): duplicate http headers when set several times by the client. * Core: + Fixed bug [GH-15712](https://github.com/php/php-src/issues/15712): zend\_strtod overflow with precision INI set on large value. + Fixed bug [GH-15905](https://github.com/php/php-src/issues/15905) (Assertion failure for TRACK\_VARS\_SERVER). + Fixed bug [GH-15907](https://github.com/php/php-src/issues/15907) (Failed assertion when promoting Serialize deprecation to exception). + Fixed bug [GH-15851](https://github.com/php/php-src/issues/15851) (Segfault when printing backtrace during cleanup of nested generator frame). + Fixed bug [GH-15866](https://github.com/php/php-src/issues/15866) (Core dumped in Zend/zend\_generators.c). + Fixed bug [GH-16188](https://github.com/php/php-src/issues/16188) (Assertion failure in Zend/zend\_exceptions.c). + Fixed bug [GH-16233](https://github.com/php/php-src/issues/16233) (Observer segfault when calling user function in internal function via trampoline). * Date: + Fixed bug [GH-15582](https://github.com/php/php-src/issues/15582): Crash when not calling parent constructor of DateTimeZone. + Fixed regression where signs after the first one were ignored while parsing a signed integer, with the DateTimeInterface::modify() function. * DOM: + Fixed bug [GH-16039](https://github.com/php/php-src/issues/16039) (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c). + Fixed bug [GH-16151](https://github.com/php/php-src/issues/16151) (Assertion failure in ext/dom/parentnode/tree.c). * GD: + Fixed bug [GH-16232](https://github.com/php/php-src/issues/16232) (bitshift overflow on wbmp file content reading / fix backport from upstream). + Fixed bug [GH-12264](https://github.com/php/php-src/issues/12264) (overflow/underflow on imagerotate degrees value) (David Carlier) + Fixed bug [GH-16274](https://github.com/php/php-src/issues/16274) (imagescale underflow on RBG channels / fix backport from upstream). * LDAP: + Fixed bug [GH-16032](https://github.com/php/php-src/issues/16032) (Various NULL pointer dereferencements in ldap\_modify\_batch()). + Fixed bug [GH-16101](https://github.com/php/php-src/issues/16101) (Segfault in ldap\_list(), ldap\_read(), and ldap\_search() when LDAPs array is not a list). + Fix [GH-16132](https://github.com/php/php-src/issues/16132) (php\_ldap\_do\_modify() attempts to free pointer not allocated by ZMM.). + Fix [GH-16136](https://github.com/php/php-src/issues/16136) (Memory leak in php\_ldap\_do\_modify() when entry is not a proper dictionary). * MBString: + Fixed bug [GH-16261](https://github.com/php/php-src/issues/16261) (Reference invariant broken in mb\_convert\_variables()). * OpenSSL: + Fixed stub for openssl\_csr\_new. * PCRE: + Fixed bug [GH-16189](https://github.com/php/php-src/issues/16189) (underflow on offset argument). + Fixed bug [GH-16184](https://github.com/php/php-src/issues/16184) (UBSan address overflowed in ext/pcre/php\_pcre.c). * PHPDBG: + Fixed bug [GH-15901](https://github.com/php/php-src/issues/15901) (phpdbg: Assertion failure on i funcs). + Fixed bug [GH-16181](https://github.com/php/php-src/issues/16181) (phpdbg: exit in exception handler reports fatal error). * Reflection: + Fixed bug [GH-16187](https://github.com/php/php-src/issues/16187) (Assertion failure in ext/reflection/php\_reflection.c). * SAPI: + Fixed bug [GH-15395](https://github.com/php/php-src/issues/15395) (php-fpm: zend\_mm\_heap corrupted with cgi-fcgi request). * SimpleXML: + Fixed bug [GH-15837](https://github.com/php/php-src/issues/15837) (Segmentation fault in ext/simplexml/simplexml.c). * Sockets: + Fixed bug [GH-16267](https://github.com/php/php-src/issues/16267) (socket\_strerror overflow on errno argument). * SOAP: + Fixed bug [#62900](http://bugs.php.net/62900) (Wrong namespace on xsd import error message). + Fixed bug [GH-16237](https://github.com/php/php-src/issues/16237) (Segmentation fault when cloning SoapServer). + Fix Soap leaking http\_msg on error. + Fixed bug [GH-16256](https://github.com/php/php-src/issues/16256) (Assertion failure in ext/soap/php\_encoding.c:460). + Fixed bug [GH-16259](https://github.com/php/php-src/issues/16259) (Soap segfault when classmap instantiation fails). * Standard: + Fixed bug [GH-15613](https://github.com/php/php-src/issues/15613) (overflow on unpack call hex string repeater). + Fixed bug [GH-15937](https://github.com/php/php-src/issues/15937) (overflow on stream timeout option value). + Fixed bug [GH-16053](https://github.com/php/php-src/issues/16053) (Assertion failure in Zend/zend\_hash.c). * Streams: + Fixed bugs [GH-15908](https://github.com/php/php-src/issues/15908) and [GH-15026](https://github.com/php/php-src/issues/15026) (leak / assertion failure in streams.c). + Fixed bug [GH-15980](https://github.com/php/php-src/issues/15980) (Signed integer overflow in main/streams/streams.c). * TSRM: + Prevent closing of unrelated handles. * XML: + Fixed bug [GH-15868](https://github.com/php/php-src/issues/15868) (Assertion failure in xml\_parse\_into\_struct after exception). ##### Version 8.2.24 **26 Sep 2024** * CGI: + Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926) + Fixed bug GHSA-94p6-54jq-9mwp (cgi.force\_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927) * Core: + Fixed bug [GH-15408](https://github.com/php/php-src/issues/15408) (MSan false-positve on zend\_max\_execution\_timer). + Fixed bug [GH-15515](https://github.com/php/php-src/issues/15515) (Configure error grep illegal option q). + Fixed bug [GH-15514](https://github.com/php/php-src/issues/15514) (Configure error: genif.sh: syntax error). + Fixed bug [GH-15565](https://github.com/php/php-src/issues/15565) (--disable-ipv6 during compilation produces error EAI\_SYSTEM not found). + Fixed bug [GH-15587](https://github.com/php/php-src/issues/15587) (CRC32 API build error on arm 32-bit). + Fixed bug [GH-15330](https://github.com/php/php-src/issues/15330) (Do not scan generator frames more than once). + Fixed uninitialized lineno in constant AST of internal enums. * Curl: + FIxed bug [GH-15547](https://github.com/php/php-src/issues/15547) (curl\_multi\_select overflow on timeout argument). * DOM: + Fixed bug [GH-15551](https://github.com/php/php-src/issues/15551) (Segmentation fault (access null pointer) in ext/dom/xml\_common.h). * Fileinfo: + Fixed bug [GH-15752](https://github.com/php/php-src/issues/15752) (Incorrect error message for finfo\_file with an empty filename argument). * FPM: + Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026) * MySQLnd: + Fixed bug [GH-15432](https://github.com/php/php-src/issues/15432) (Heap corruption when querying a vector). * Opcache: + Fixed bug [GH-15661](https://github.com/php/php-src/issues/15661) (Access null pointer in Zend/Optimizer/zend\_inference.c). + Fixed bug [GH-15658](https://github.com/php/php-src/issues/15658) (Segmentation fault in Zend/zend\_vm\_execute.h). * SAPI: + Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925) * SOAP: + Fixed bug [#73182](http://bugs.php.net/73182) (PHP SOAPClient does not support stream context HTTP headers in array form). * Standard: + Fixed bug [GH-15552](https://github.com/php/php-src/issues/15552) (Signed integer overflow in ext/standard/scanf.c). * Streams: + Fixed bug [GH-15628](https://github.com/php/php-src/issues/15628) (php\_stream\_memory\_get\_buffer() not zero-terminated). ##### Version 8.2.23 **29 Aug 2024** * Core: + Fixed bug [GH-15020](https://github.com/php/php-src/issues/15020) (Memory leak in Zend/Optimizer/escape\_analysis.c). + Fixed bug [GH-15023](https://github.com/php/php-src/issues/15023) (Memory leak in Zend/zend\_ini.c). + Fixed bug [GH-13330](https://github.com/php/php-src/issues/13330) (Append -Wno-implicit-fallthrough flag conditionally). + Fix uninitialized memory in network.c. + Fixed bug [GH-15108](https://github.com/php/php-src/issues/15108) (Segfault when destroying generator during shutdown). + Fixed bug [GH-15275](https://github.com/php/php-src/issues/15275) (Crash during GC of suspended generator delegate). * Curl: + Fixed case when curl\_error returns an empty string. * DOM: + Fix UAF when removing doctype and using foreach iteration. * FFI: + Fixed bug [GH-14286](https://github.com/php/php-src/issues/14286) (ffi enum type (when enum has no name) make memory leak). * Hash: + Fix crash when converting array data for array in shm in xxh3. * Intl: + Fixed bug [GH-15087](https://github.com/php/php-src/issues/15087) (IntlChar::foldCase()'s $option is not optional). * Opcache: + Fixed bug [GH-13817](https://github.com/php/php-src/issues/13817) (Segmentation fault for enabled observers after pass 4). + Fixed bug [GH-13775](https://github.com/php/php-src/issues/13775) (Memory leak possibly related to opcache SHM placement). * Output: + Fixed bug [GH-15179](https://github.com/php/php-src/issues/15179) (Segmentation fault (null pointer dereference) in ext/standard/url\_scanner\_ex.re). * PDO\_Firebird: + Fix bogus fallthrough path in firebird\_handle\_get\_attribute(). * PHPDBG: + Fixed bug [GH-13199](https://github.com/php/php-src/issues/13199) (EOF emits redundant prompt in phpdbg local console mode with libedit/readline). + Fixed bug [GH-15268](https://github.com/php/php-src/issues/15268) (heap buffer overflow in phpdbg (zend\_hash\_num\_elements() Zend/zend\_hash.h)). + Fixed bug [GH-15210](https://github.com/php/php-src/issues/15210) use-after-free on watchpoint allocations. * Soap: + Fixed bug [#55639](http://bugs.php.net/55639) (Digest autentication dont work). + Fix SoapFault property destruction. + Fixed bug [GH-15252](https://github.com/php/php-src/issues/15252) (SOAP XML broken since PHP 8.3.9 when using classmap constructor option). * Standard: + Fix passing non-finite timeout values in stream functions. + Fixed [GH-14780](https://github.com/php/php-src/issues/14780) p(f)sockopen timeout overflow. * Streams: + Fixed bug [GH-15028](https://github.com/php/php-src/issues/15028) (Memory leak in ext/phar/stream.c). + Fixed bug [GH-15034](https://github.com/php/php-src/issues/15034) (Integer overflow on stream\_notification\_callback byte\_max parameter with files bigger than 2GB). * Tidy: + Fix memory leaks in ext/tidy basedir restriction code. ##### Version 8.2.22 **01 Aug 2024** * Core: + Fixed bug [GH-13922](https://github.com/php/php-src/issues/13922) (Fixed support for systems with sysconf(\_SC\_GETPW\_R\_SIZE\_MAX) == -1). + Fixed bug [GH-14626](https://github.com/php/php-src/issues/14626) (Fix is\_zend\_ptr() for huge blocks). + Fixed bug [GH-14590](https://github.com/php/php-src/issues/14590) (Memory leak in FPM test gh13563-conf-bool-env.phpt. + Fixed OSS-Fuzz #69765. + Fixed bug [GH-14741](https://github.com/php/php-src/issues/14741) (Segmentation fault in Zend/zend\_types.h). + Fixed bug [GH-14969](https://github.com/php/php-src/issues/14969) (Use-after-free in property coercion with \_\_toString()). * Dom: + Fixed bug [GH-14702](https://github.com/php/php-src/issues/14702) (DOMDocument::xinclude() crash). * Gd: + ext/gd/tests/gh10614.phpt: skip if no PNG support. + restored warning instead of fata error. * LibXML: + Fixed bug [GH-14563](https://github.com/php/php-src/issues/14563) (Build failure with libxml2 v2.13.0). * Opcache: + Fixed bug [GH-14550](https://github.com/php/php-src/issues/14550) (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled). * Output: + Fixed bug [GH-14808](https://github.com/php/php-src/issues/14808) (Unexpected null pointer in Zend/zend\_string.h with empty output buffer). * PDO: + Fixed bug [GH-14712](https://github.com/php/php-src/issues/14712) (Crash with PDORow access to null property). * Phar: + Fixed bug [GH-14603](https://github.com/php/php-src/issues/14603) (null string from zip entry). * PHPDBG: + Fixed bug [GH-14596](https://github.com/php/php-src/issues/14596) (crashes with ASAN and ZEND\_RC\_DEBUG=1). + Fixed bug [GH-14553](https://github.com/php/php-src/issues/14553) (echo output trimmed at NULL byte). * Shmop: + Fixed bug [GH-14537](https://github.com/php/php-src/issues/14537) (shmop Windows 11 crashes the process). * SimpleXML: + Fixed bug [GH-14638](https://github.com/php/php-src/issues/14638) (null dereference after XML parsing failure). * SPL: + Fixed bug [GH-14639](https://github.com/php/php-src/issues/14639) (Member access within null pointer in ext/spl/spl\_observer.c). * Standard: + Fix 32-bit wordwrap test failures. + Fixed bug [GH-14774](https://github.com/php/php-src/issues/14774) (time\_sleep\_until overflow). * Tidy: + Fix memory leak in tidy\_repair\_file(). * Treewide: + Fix compatibility with libxml2 2.13.2. * XML: + Move away from to-be-deprecated libxml fields. + Fixed bug [GH-14834](https://github.com/php/php-src/issues/14834) (Error installing PHP when --with-pear is used). ##### Version 8.2.21 **04 Jul 2024** * Core: + Fixed bug [GH-14315](https://github.com/php/php-src/issues/14315) (Incompatible pointer type warnings). + Fixed bug [GH-12814](https://github.com/php/php-src/issues/12814) (max\_execution\_time reached too early on MacOS 14 when running on Apple Silicon). + Fixed bug [GH-14387](https://github.com/php/php-src/issues/14387) (Crash when stack walking in destructor of yielded from values during Generator->throw()). + Fixed bug [GH-14456](https://github.com/php/php-src/issues/14456) (Attempting to initialize class with private constructor calls destructor). + Fixed bug [GH-14549](https://github.com/php/php-src/issues/14549) (Incompatible function pointer type for fclose). * BCMatch: + Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0). * Curl: + Fixed bug [GH-14307](https://github.com/php/php-src/issues/14307) (Test curl\_basic\_024 fails with curl 8.8.0). * DOM: + Fixed bug [GH-14343](https://github.com/php/php-src/issues/14343) (Memory leak in xml and dom). * FPM: + Fixed bug [GH-14037](https://github.com/php/php-src/issues/14037) (PHP-FPM ping.path and ping.response config vars are ignored in status pool). * GD: + Fix parameter numbers for imagecolorset(). * Intl: + Fix reference handling in SpoofChecker. * MySQLnd: + Partially fix bug [GH-10599](https://github.com/php/php-src/issues/10599) (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection). * Opcache: + Fixed bug [GH-14267](https://github.com/php/php-src/issues/14267) (opcache.jit=off does not allow enabling JIT at runtime). + Fixed TLS access in JIT on FreeBSD/amd64. + Fixed bug [GH-11188](https://github.com/php/php-src/issues/11188) (Error when building TSRM in ARM64). * PDO ODBC: + Fixed bug [GH-14367](https://github.com/php/php-src/issues/14367) (incompatible SDWORD type with iODBC). * PHPDBG: + Fixed bug [GH-13681](https://github.com/php/php-src/issues/13681) (segfault on watchpoint addition failure). * Soap: + Fixed bug [#47925](http://bugs.php.net/47925) (PHPClient can't decompress response). + Fix missing error restore code. + Fix memory leak if calling SoapServer::setObject() twice. + Fix memory leak if calling SoapServer::setClass() twice. + Fix reading zlib ini settings in ext-soap. + Fix memory leaks with string function name lookups. + Fixed bug [#69280](http://bugs.php.net/69280) (SoapClient classmap doesn't support fully qualified class name). + Fixed bug [#76232](http://bugs.php.net/76232) (SoapClient Cookie Header Semicolon). + Fixed memory leaks when calling SoapFault::\_\_construct() twice. * Sodium: + Fix memory leaks in ext/sodium on failure of some functions. * SPL: + Fixed bug [GH-14290](https://github.com/php/php-src/issues/14290) (Member access within null pointer in extension spl). * Standard: + Fixed bug [GH-14483](https://github.com/php/php-src/issues/14483) (Fixed off-by-one error in checking length of abstract namespace Unix sockets). * Streams: + Fixed bug [GH-11078](https://github.com/php/php-src/issues/11078) (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors). ##### Version 8.2.20 **06 Jun 2024** * CGI: + Fixed buffer limit on Windows, replacing read call usage by \_read. + Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577) * CLI: + Fixed bug [GH-14189](https://github.com/php/php-src/issues/14189) (PHP Interactive shell input state incorrectly handles quoted heredoc literals.). * Core: + Fixed bug [GH-13970](https://github.com/php/php-src/issues/13970) (Incorrect validation of #[Attribute] flags type for non-compile-time expressions). + Fixed bug [GH-14140](https://github.com/php/php-src/issues/14140) (Floating point bug in range operation on Apple Silicon hardware). * DOM: + Fix crashes when entity declaration is removed while still having entity references. + Fix references not handled correctly in C14N. + Fix crash when calling childNodes next() when iterator is exhausted. + Fix crash in ParentNode::append() when dealing with a fragment containing text nodes. * FFI: + Fixed bug [GH-14215](https://github.com/php/php-src/issues/14215) (Cannot use FFI::load on CRLF header file with apache2handler). * Filter: + Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter\_var FILTER\_VALIDATE\_URL). (CVE-2024-5458) * FPM: + Fix bug [GH-14175](https://github.com/php/php-src/issues/14175) (Show decimal number instead of scientific notation in systemd status). * Hash: + ext/hash: Swap the checking order of `\_\_has\_builtin` and `\_\_GNUC\_\_` (Saki Takamachi) * Intl: + Fixed build regression on systems without C++17 compilers. * Ini: + Fixed bug [GH-14100](https://github.com/php/php-src/issues/14100) (Corrected spelling mistake in php.ini files). * MySQLnd: + Fix bug [GH-14255](https://github.com/php/php-src/issues/14255) (mysqli\_fetch\_assoc reports error from nested query). * Opcache: + Fixed bug [GH-14109](https://github.com/php/php-src/issues/14109) (Fix accidental persisting of internal class constant in shm). * OpenSSL: + The openssl\_private\_decrypt function in PHP, when using PKCS1 padding (OPENSSL\_PKCS1\_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa\_pkcs1\_implicit\_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable. * Standard: + Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585) * XML: + Fixed bug [GH-14124](https://github.com/php/php-src/issues/14124) (Segmentation fault with XML extension under certain memory limit). * XMLReader: + Fixed bug [GH-14183](https://github.com/php/php-src/issues/14183) (XMLReader::open() can't be overridden). ##### Version 8.2.19 **09 May 2024** * Core: + Fixed bug [GH-13772](https://github.com/php/php-src/issues/13772) (Invalid execute\_data->opline pointers in observer fcall handlers when JIT is enabled). + Fixed bug [GH-13931](https://github.com/php/php-src/issues/13931) (Applying zero offset to null pointer in Zend/zend\_opcode.c). + Fixed bug [GH-13942](https://github.com/php/php-src/issues/13942) (Align the behavior of zend-max-execution-timers with other timeout implementations). + Fixed bug [GH-14003](https://github.com/php/php-src/issues/14003) (Broken cleanup of unfinished calls with callable convert parameters). + Fixed bug [GH-14013](https://github.com/php/php-src/issues/14013) (Erroneous dnl appended in configure). + Fixed bug [GH-10232](https://github.com/php/php-src/issues/10232) (If autoloading occurs during constant resolution filename and lineno are identified incorrectly). + Fixed bug [GH-13727](https://github.com/php/php-src/issues/13727) (Missing void keyword). * Fibers: + Fixed bug [GH-13903](https://github.com/php/php-src/issues/13903) (ASAN false positive underflow when executing copy()). * FPM: + Fixed bug [GH-13563](https://github.com/php/php-src/issues/13563) (Setting bool values via env in FPM config fails). * Intl: + Fixed build for icu 74 and onwards. * MySQLnd: + Fix shift out of bounds on 32-bit non-fast-path platforms. * Opcache: + Fixed incorrect assumptions across compilation units for static calls. * OpenSSL: + Fixed bug [GH-10495](https://github.com/php/php-src/issues/10495) (feof on OpenSSL stream hangs indefinitely). * PDO SQLite: + Fix [GH-13984](https://github.com/php/php-src/issues/13984) (Buffer size is now checked before memcmp). + Fix [GH-13998](https://github.com/php/php-src/issues/13998) (Manage refcount of agg\_context->val correctly). * Phar: + Fixed bug [GH-13836](https://github.com/php/php-src/issues/13836) (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference). + Fixed bug [GH-13833](https://github.com/php/php-src/issues/13833) (Applying zero offset to null pointer in zend\_hash.c). + Fix potential NULL pointer dereference before calling EVP\_SignInit. * PHPDBG: + Fixed bug [GH-13827](https://github.com/php/php-src/issues/13827) (Null pointer access of type 'zval' in phpdbg\_frame). * Posix: + Fix usage of reentrant functions in ext/posix. * Session: + Fixed bug [GH-13856](https://github.com/php/php-src/issues/13856) (Member access within null pointer of type 'ps\_files' in ext/session/mod\_files.c). + Fixed bug [GH-13891](https://github.com/php/php-src/issues/13891) (memleak and segfault when using ini\_set with session.trans\_sid\_hosts). + Fixed buffer \_read/\_write size limit on windows for the file mode. * Streams: + Fixed file\_get\_contents() on Windows fails with "errno=22 Invalid argument". + Fixed bug [GH-13264](https://github.com/php/php-src/issues/13264) (Part 1 - Memory leak on stream filter failure). + Fixed bug [GH-13860](https://github.com/php/php-src/issues/13860) (Incorrect PHP\_STREAM\_OPTION\_CHECK\_LIVENESS case in ext/openssl/xp\_ssl.c - causing use of dead socket). + Fixed bug [GH-11678](https://github.com/php/php-src/issues/11678) (Build fails on musl 1.2.4 - lfs64). * Treewide: + Fix gcc-14 Wcalloc-transposed-args warnings. ##### Version 8.2.18 **11 Apr 2024** * Core: + Fixed bug [GH-13612](https://github.com/php/php-src/issues/13612) (Corrupted memory in destructor with weak references). + Fixed bug [GH-13784](https://github.com/php/php-src/issues/13784) (AX\_GCC\_FUNC\_ATTRIBUTE failure). + Fixed bug [GH-13670](https://github.com/php/php-src/issues/13670) (GC does not scale well with a lot of objects created in destructor). * DOM: + Add some missing ZPP checks. + Fix potential memory leak in XPath evaluation results. + Fix phpdoc for DOMDocument load methods. * FPM: + Fix incorrect check in fpm\_shm\_free(). * GD: + Fixed bug [GH-12019](https://github.com/php/php-src/issues/12019) (add GDLIB\_CFLAGS in feature tests). * Gettext: + Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC\_ALL. * MySQLnd: + Fix [GH-13452](https://github.com/php/php-src/issues/13452) (Fixed handshake response [mysqlnd]). + Fix incorrect charset length in check\_mb\_eucjpms(). * Opcache: + Fixed [GH-13508](https://github.com/php/php-src/issues/13508) (JITed QM\_ASSIGN may be optimized out when op1 is null). + Fixed [GH-13712](https://github.com/php/php-src/issues/13712) (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded). * PDO: + Fix various PDORow bugs. * Random: + Fixed bug [GH-13544](https://github.com/php/php-src/issues/13544) (Pre-PHP 8.2 compatibility for mt\_srand with unknown modes). + Fixed bug [GH-13690](https://github.com/php/php-src/issues/13690) (Global Mt19937 is not properly reset in-between requests when MT\_RAND\_PHP is used). * Session: + Fixed bug [GH-13680](https://github.com/php/php-src/issues/13680) (Segfault with session\_decode and compilation error). * Sockets: + Fixed bug [GH-13604](https://github.com/php/php-src/issues/13604) (socket\_getsockname returns random characters in the end of the socket name). * SPL: + Fixed bug [GH-13531](https://github.com/php/php-src/issues/13531) (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15). + Fixed bug [GH-13685](https://github.com/php/php-src/issues/13685) (Unexpected null pointer in zend\_string.h). * Standard: + Fixed bug [GH-11808](https://github.com/php/php-src/issues/11808) (Live filesystem modified by tests). + Fixed [GH-13402](https://github.com/php/php-src/issues/13402) (Added validation of `\n` in $additional\_headers of mail()). + Fixed bug [GH-13203](https://github.com/php/php-src/issues/13203) (file\_put\_contents fail on strings over 4GB on Windows). + Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc\_open). (CVE-2024-1874) + Fixed bug GHSA-wpj3-hf5j-x4v4 (\_\_Host-/\_\_Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756) + Fixed bug GHSA-h746-cjrr-wfmr (password\_verify can erroneously return true, opening ATO risk). (CVE-2024-3096) * XML: + Fixed bug [GH-13517](https://github.com/php/php-src/issues/13517) (Multiple test failures when building with --with-expat). ##### Version 8.2.17 **14 Mar 2024** * Core: + Fix ZTS persistent resource crashes on shutdown. * Curl: + Fix failing tests due to string changes in libcurl 8.6.0. * DOM: + Fix reference access in dimensions for DOMNodeList and DOMNodeMap. * Fileinfo: + Fixed bug [GH-13344](https://github.com/php/php-src/issues/13344) (finfo::buffer(): Failed identify data 0:(null), backport). * FPM: + Fixed bug [#75712](http://bugs.php.net/75712) (getenv in php-fpm should not read $\_ENV, $\_SERVER). * GD: + Fixed bug [GH-12019](https://github.com/php/php-src/issues/12019) (detection of image formats in system gd library). * MySQLnd: + Fixed bug [GH-11950](https://github.com/php/php-src/issues/11950) ([mysqlnd] Fixed not to set CR\_MALFORMED\_PACKET to error if CR\_SERVER\_GONE\_ERROR is already set). * PGSQL: + Fixed bug [GH-13354](https://github.com/php/php-src/issues/13354) (pg\_execute/pg\_send\_query\_params/pg\_send\_execute with null value passed by reference). * Standard: + Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now). ##### Version 8.2.16 **15 Feb 2024** * Core: + Fixed timer leak in zend-max-execution-timers builds. + Fixed bug [GH-12349](https://github.com/php/php-src/issues/12349) (linking failure on ARM with mold). + Fixed bug [GH-13097](https://github.com/php/php-src/issues/13097) (Anonymous class reference in trigger\_error / thrown Exception). + Fixed bug [GH-13215](https://github.com/php/php-src/issues/13215) (GCC 14 build failure). * Curl: + Fix missing error check in curl\_multi\_init(). * FPM: + Fixed bug [GH-12996](https://github.com/php/php-src/issues/12996) (Incorrect SCRIPT\_NAME with Apache ProxyPassMatch when plus in path). * GD: + Fixed bug [GH-10344](https://github.com/php/php-src/issues/10344) (imagettfbbox(): Could not find/open font UNC path). + Fixed bug [GH-10614](https://github.com/php/php-src/issues/10614) (imagerotate will turn the picture all black, when rotated 90). * MySQLnd: + Fixed bug [GH-12107](https://github.com/php/php-src/issues/12107) (When running a stored procedure (that returns a result set) twice, PHP crashes). * Opcache: + Fixed bug [GH-13232](https://github.com/php/php-src/issues/13232) (Segmentation fault will be reported when JIT is off but JIT\_debug is still on). * OpenSSL: + Fixed LibreSSL undefined reference when OPENSSL\_NO\_ENGINE not set. (David Carlier). * PDO\_Firebird: + Fix [GH-13119](https://github.com/php/php-src/issues/13119) (Changed to convert float and double values โ€‹โ€‹into strings using `H` format). * Phar: + Fixed bug [#71465](http://bugs.php.net/71465) (PHAR doesn't know about litespeed). + Fixed bug [GH-13037](https://github.com/php/php-src/issues/13037) (PharData incorrectly extracts zip file). * Random: + Fixed bug [GH-13138](https://github.com/php/php-src/issues/13138) (Randomizer::pickArrayKeys() does not detect broken engines). * Session: + Fixed bug [GH-12504](https://github.com/php/php-src/issues/12504) (Corrupted session written when there's a fatal error in autoloader). * Streams: + Fixed bug [GH-13071](https://github.com/php/php-src/issues/13071) (Copying large files using mmap-able source streams may exhaust available memory and fail). ##### Version 8.2.15 **18 Jan 2024** * Core: + Fixed bug [GH-12953](https://github.com/php/php-src/issues/12953) (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements). + Fixed bug [GH-12966](https://github.com/php/php-src/issues/12966) (missing cross-compiling 3rd argument so Autoconf doesn't emit warnings). * Cli: + Fix incorrect timeout in built-in web server when using router script and max\_input\_time. * FFI: + Fixed bug [GH-9698](https://github.com/php/php-src/issues/9698) (stream\_wrapper\_register crashes with FFI\CData). + Fixed bug [GH-12905](https://github.com/php/php-src/issues/12905) (FFI::new interacts badly with observers). * Intl: + Fixed [GH-12943](https://github.com/php/php-src/issues/12943) (IntlDateFormatter::\_\_construct accepts 'C' as valid locale). * Hash: + Fixed bug [GH-12936](https://github.com/php/php-src/issues/12936) (hash() function hangs endlessly if using sha512 on strings >= 4GiB). * ODBC: + Fix crash on Apache shutdown with persistent connections. * Opcache: + Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result). + Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show\_bug.cgi?id=218258. * OpenSSL: + Fixed bug [GH-12987](https://github.com/php/php-src/issues/12987) (openssl\_csr\_sign might leak new cert on error). * PDO: + Fix [GH-12969](https://github.com/php/php-src/issues/12969) (Fixed PDO::getAttribute() to get PDO::ATTR\_STRINGIFY\_FETCHES). * PDO\_ODBC: + Fixed bug [GH-12767](https://github.com/php/php-src/issues/12767) (Unable to turn on autocommit mode with setAttribute()). * PGSQL: + Fixed auto\_reset\_persistent handling and allow\_persistent type. + Fixed bug [GH-12974](https://github.com/php/php-src/issues/12974) (Apache crashes on shutdown when using pg\_pconnect()). * Phar: + Fixed bug [#77432](http://bugs.php.net/77432) (Segmentation fault on including phar file). * PHPDBG: + Fixed bug [GH-12962](https://github.com/php/php-src/issues/12962) (Double free of init\_file in phpdbg\_prompt.c). * SimpleXML: + Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash. * Tidy: + Fixed bug [GH-12980](https://github.com/php/php-src/issues/12980) (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes). ##### Version 8.2.14 **21 Dec 2023** * Core: + Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious error handler). + Fixed oss-fuzz #64209 (In-place modification of filename in php\_message\_handler\_for\_zend). + Fixed bug [GH-12758](https://github.com/php/php-src/issues/12758) / [GH-12768](https://github.com/php/php-src/issues/12768) (Invalid opline in OOM handlers within ZEND\_FUNC\_GET\_ARGS and ZEND\_BIND\_STATIC). + Fix various missing NULL checks. + Fixed bug [GH-12835](https://github.com/php/php-src/issues/12835) (Leak of call->extra\_named\_params on internal \_\_call). * Date: + Fixed improbably integer overflow while parsing really large (or small) Unix timestamps. * DOM: + Fixed bug [GH-12616](https://github.com/php/php-src/issues/12616) (DOM: Removing XMLNS namespace node results in invalid default: prefix). * FPM: + Fixed bug [GH-12705](https://github.com/php/php-src/issues/12705) (Segmentation fault in fpm\_status\_export\_to\_zval). * FTP: + Fixed bug [GH-9348](https://github.com/php/php-src/issues/9348) (FTP & SSL session reuse). * Intl: + Fixed bug [GH-12635](https://github.com/php/php-src/issues/12635) (Test bug69398.phpt fails with ICU 74.1). * LibXML: + Fixed bug [GH-12702](https://github.com/php/php-src/issues/12702) (libxml2 2.12.0 issue building from src). + Fixed test failures for libxml2 2.12.0. * MySQLnd: + Avoid using uninitialised struct. + Fixed bug [GH-12791](https://github.com/php/php-src/issues/12791) (Possible dereference of NULL in MySQLnd debug code). * Opcache: + Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error). + Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown). * OpenSSL: + Fixed bug [#50713](http://bugs.php.net/50713) (openssl\_pkcs7\_verify() may ignore untrusted CAs). * PCRE: + Fixed bug [GH-12628](https://github.com/php/php-src/issues/12628) (The gh11374 test fails on Alpinelinux). * PDO PGSQL: + Fixed the default value of $fetchMode in PDO::pgsqlGetNotify() (kocsismate) * PGSQL: + Fixed bug [GH-12763](https://github.com/php/php-src/issues/12763) wrong argument type for pg\_untrace. * PHPDBG: + Fixed bug [GH-12675](https://github.com/php/php-src/issues/12675) (MEMORY\_LEAK in phpdbg\_prompt.c). * SOAP: + Fixed bug [GH-12838](https://github.com/php/php-src/issues/12838) ([SOAP] Temporary WSDL cache files not being deleted). * SPL: + Fixed bug [GH-12721](https://github.com/php/php-src/issues/12721) (SplFileInfo::getFilename() segfault in combination with GlobIterator and no directory separator). * SQLite3: + Fixed bug [GH-12633](https://github.com/php/php-src/issues/12633) (sqlite3\_defensive.phpt fails with sqlite 3.44.0). * Standard: + Fix memory leak in syslog device handling. + Fixed bug [GH-12621](https://github.com/php/php-src/issues/12621) (browscap segmentation fault when configured in the vhost). + Fixed bug [GH-12655](https://github.com/php/php-src/issues/12655) (proc\_open() does not take into account references in the descriptor array). * Streams: + Fixed bug [#79945](http://bugs.php.net/79945) (Stream wrappers in imagecreatefrompng causes segfault). * Zip: + Fixed bug [GH-12661](https://github.com/php/php-src/issues/12661) (Inconsistency in ZipArchive::addGlob remove\_path Option Behavior). ##### Version 8.2.13 **23 Nov 2023** * Core: + Fixed double-free of non-interned enum case name. + Fixed bug [GH-12457](https://github.com/php/php-src/issues/12457) (Incorrect result of stripos with single character needle). + Fixed bug [GH-12468](https://github.com/php/php-src/issues/12468) (Double-free of doc\_comment when overriding static property via trait). + Fixed segfault caused by weak references to FFI objects. + Fixed max\_execution\_time: don't delete an unitialized timer. + Fixed bug [GH-12558](https://github.com/php/php-src/issues/12558) (Arginfo soft-breaks with namespaced class return type if the class name starts with N). * DOM: + Fix registerNodeClass with abstract class crashing. + Add missing NULL pointer error check. + Fix validation logic of php:function() callbacks. * Fiber: + Fixed bug [GH-11121](https://github.com/php/php-src/issues/11121) (ReflectionFiber segfault). * FPM: + Fixed bug [GH-9921](https://github.com/php/php-src/issues/9921) (Loading ext in FPM config does not register module handlers). + Fixed bug [GH-12232](https://github.com/php/php-src/issues/12232) (FPM: segfault dynamically loading extension without opcache). + Fixed bug [#76922](http://bugs.php.net/76922) (FastCGI terminates conn after FCGI\_GET\_VALUES). * Intl: + Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale. * Opcache: + Added warning when JIT cannot be enabled. + Fixed bug [GH-8143](https://github.com/php/php-src/issues/8143) (Crashes in zend\_accel\_inheritance\_cache\_find since upgrading to 8.1.3 due to corrupt on-disk file cache). * OpenSSL: + Fixed bug [GH-12489](https://github.com/php/php-src/issues/12489) (Missing sigbio creation checking in openssl\_cms\_verify). * PCRE: + Fixed bug [GH-11374](https://github.com/php/php-src/issues/11374) (Backport upstream fix, Different preg\_match result with -d pcre.jit=0). * SOAP: + Fixed bug [GH-12392](https://github.com/php/php-src/issues/12392) (Segmentation fault on SoapClient::\_\_getTypes). + Fixed bug [#66150](http://bugs.php.net/66150) (SOAP WSDL cache race condition causes Segmentation Fault). + Fixed bug [#67617](http://bugs.php.net/67617) (SOAP leaves incomplete cache file on ENOSPC). + Fix incorrect uri check in SOAP caching. + Fix segfault and assertion failure with refcounted props and arrays. + Fix potential crash with an edge case of persistent encoders. + Fixed bug [#75306](http://bugs.php.net/75306) (Memleak in SoapClient). * Streams: + Fixed bug [#75708](http://bugs.php.net/75708) (getimagesize with "&$imageinfo" fails on StreamWrappers). * XMLReader: + Add missing NULL pointer error check. * XMLWriter: + Add missing NULL pointer error check. * XSL: + Add missing module dependency. + Fix validation logic of php:function() callbacks. ##### Version 8.2.12 **26 Oct 2023** * Core: + Fixed bug [GH-12207](https://github.com/php/php-src/issues/12207) (memory leak when class using trait with doc block). + Fixed bug [GH-12215](https://github.com/php/php-src/issues/12215) (Module entry being overwritten causes type errors in ext/dom). + Fixed bug [GH-12273](https://github.com/php/php-src/issues/12273) (\_\_builtin\_cpu\_init check). + Fixed bug [#80092](http://bugs.php.net/80092) (ZTS + preload = segfault on shutdown). * CLI: + Ensure a single Date header is present. * CType: + Fixed bug [GH-11997](https://github.com/php/php-src/issues/11997) (ctype\_alnum 5 times slower in PHP 8.1 or greater). * DOM: + Restore old namespace reconciliation behaviour. + Fixed bug [GH-8996](https://github.com/php/php-src/issues/8996) (DOMNode serialization on PHP ^8.1). * Fileinfo: + Fixed bug [GH-11891](https://github.com/php/php-src/issues/11891) (fileinfo returns text/xml for some svg files). * Filter: + Fix explicit FILTER\_REQUIRE\_SCALAR with FILTER\_CALLBACK (ilutov) * Hash: + Fixed bug [GH-12186](https://github.com/php/php-src/issues/12186) (segfault copying/cloning a finalized HashContext). * Intl: + Fixed bug [GH-12243](https://github.com/php/php-src/issues/12243) (segfault on IntlDateFormatter::construct). + Fixed bug [GH-12282](https://github.com/php/php-src/issues/12282) (IntlDateFormatter::construct should throw an exception on an invalid locale). * MySQLnd: + Fixed bug [GH-12297](https://github.com/php/php-src/issues/12297) (PHP Startup: Invalid library (maybe not a PHP library) 'mysqlnd.so' in Unknown on line). * Opcache: + Fixed opcache\_invalidate() on deleted file. + Fixed bug [GH-12380](https://github.com/php/php-src/issues/12380) (JIT+private array property access inside closure accesses private property in child class). * PCRE: + Fixed bug [GH-11956](https://github.com/php/php-src/issues/11956) (Backport upstream fix, PCRE regular expressions with JIT enabled gives different result). * SimpleXML: + Fixed bug [GH-12170](https://github.com/php/php-src/issues/12170) (Can't use xpath with comments in SimpleXML). + Fixed bug [GH-12223](https://github.com/php/php-src/issues/12223) (Entity reference produces infinite loop in var\_dump/print\_r). + Fixed bug [GH-12167](https://github.com/php/php-src/issues/12167) (Unable to get processing instruction contents in SimpleXML). + Fixed bug [GH-12169](https://github.com/php/php-src/issues/12169) (Unable to get comment contents in SimpleXML). * Streams: + Fixed bug [GH-12190](https://github.com/php/php-src/issues/12190) (binding ipv4 address with both address and port at 0). * XML: + Fix return type of stub of xml\_parse\_into\_struct(). + Fix memory leak when calling xml\_parse\_into\_struct() twice. * XSL: + Fix type error on XSLTProcessor::transformToDoc return value with SimpleXML. ##### Version 8.2.11 **28 Sep 2023** * Core: + Fixed bug [GH-11937](https://github.com/php/php-src/issues/11937) (Constant ASTs containing objects). + Fixed bug [GH-11790](https://github.com/php/php-src/issues/11790) (On riscv64 require libatomic if actually needed). + Fixed bug [GH-11876](https://github.com/php/php-src/issues/11876): ini\_parse\_quantity() accepts invalid quantities. + Fixed bug [GH-12073](https://github.com/php/php-src/issues/12073) (Segfault when freeing incompletely initialized closures). + Fixed bug [GH-12060](https://github.com/php/php-src/issues/12060) (Internal iterator rewind handler is called twice). + Fixed bug [GH-12102](https://github.com/php/php-src/issues/12102) (Incorrect compile error when using array access on TMP value in function call). * DOM: + Fix memory leak when setting an invalid DOMDocument encoding. * Iconv: + Fixed build for NetBSD which still uses the old iconv signature. * Intl: + Fixed bug [GH-12020](https://github.com/php/php-src/issues/12020) (intl\_get\_error\_message() broken after MessageFormatter::formatMessage() fails). * MySQLnd: + Fixed bug [GH-10270](https://github.com/php/php-src/issues/10270) (Invalid error message when connection via SSL fails: "trying to connect via (null)"). * ODBC: + Fixed memory leak with failed SQLPrepare. + Fixed persistent procedural ODBC connections not getting closed. * SimpleXML: + Fixed bug [#52751](http://bugs.php.net/52751) (XPath processing-instruction() function is not supported). * SPL: + Fixed bug [GH-11972](https://github.com/php/php-src/issues/11972) (RecursiveCallbackFilterIterator regression in 8.1.18). * SQLite3: + Fixed bug [GH-11878](https://github.com/php/php-src/issues/11878) (SQLite3 callback functions cause a memory leak with a callable array). ##### Version 8.2.10 **31 Aug 2023** * CLI: + Fixed bug [GH-11716](https://github.com/php/php-src/issues/11716) (cli server crashes on SIGINT when compiled with ZEND\_RC\_DEBUG=1). + Fixed bug [GH-10964](https://github.com/php/php-src/issues/10964) (Improve man page about the built-in server). * Date: + Fixed bug [GH-11416](https://github.com/php/php-src/issues/11416) (Crash with DatePeriod when uninitialised objects are passed in). * Core: + Fixed strerror\_r detection at configuration time. + Fixed trait typed properties using a DNF type not being correctly bound. + Fixed trait property types not being arena allocated if copied from an internal trait. + Fixed deep copy of property DNF type during lazy class load. + Fixed memory freeing of DNF types for non arena allocated types. * DOM: + Fix DOMEntity field getter bugs. + Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS. + Fix DOMCharacterData::replaceWith() with itself. + Fix empty argument cases for DOMParentNode methods. + Fixed bug [GH-11791](https://github.com/php/php-src/issues/11791) (Wrong default value of DOMDocument::xmlStandalone). + Fix json\_encode result on DOMDocument. + Fix manually calling \_\_construct() on DOM classes. + Fixed bug [GH-11830](https://github.com/php/php-src/issues/11830) (ParentNode methods should perform their checks upfront). + Fix viable next sibling search for replaceWith. + Fix segfault when DOMParentNode::prepend() is called when the child disappears. * FFI: + Fix leaking definitions when using FFI::cdef()->new(...). * Hash: + Fix use-of-uninitialized-value in hash\_pbkdf2(), fix missing $options parameter in signature. * MySQLnd: + Fixed bug [GH-11440](https://github.com/php/php-src/issues/11440) (authentication to a sha256\_password account fails over SSL). + Fixed bug [GH-11438](https://github.com/php/php-src/issues/11438) (mysqlnd fails to authenticate with sha256\_password accounts using passwords longer than 19 characters). + Fixed bug [GH-11550](https://github.com/php/php-src/issues/11550) (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault). + Fixed invalid error message "Malformed packet" when connection is dropped. * Opcache: + Fixed bug [GH-11715](https://github.com/php/php-src/issues/11715) (opcache.interned\_strings\_buffer either has no effect or opcache\_get\_status() / phpinfo() is wrong). + Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress. * PCNTL: + Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22. * SPL: + Fixed bug [#81992](http://bugs.php.net/81992) (SplFixedArray::setSize() causes use-after-free). * Standard: + Prevent int overflow on $decimals in number\_format. + Fixed bug [GH-11870](https://github.com/php/php-src/issues/11870) (Fix off-by-one bug when truncating tempnam prefix) (athos-ribeiro) ##### Version 8.2.9 **03 Aug 2023** * Build: + Fixed bug [GH-11522](https://github.com/php/php-src/issues/11522) (PHP version check fails with '-' separator). * CLI: + Fix interrupted CLI output causing the process to exit. * Core: + Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator). + Fixed line number of JMP instruction over else block. + Fixed use-of-uninitialized-value with ??= on assert. + Fixed oss-fuzz #60411 (Fix double-compilation of arrow-functions). + Fixed build for FreeBSD before the 11.0 releases. * Curl: + Fix crash when an invalid callback function is passed to CURLMOPT\_PUSHFUNCTION. * Date: + Fixed bug [GH-11368](https://github.com/php/php-src/issues/11368) (Date modify returns invalid datetime). + Fixed bug [GH-11600](https://github.com/php/php-src/issues/11600) (Can't parse time strings which include (narrow) non-breaking space characters). + Fixed bug [GH-11854](https://github.com/php/php-src/issues/11854) (DateTime:createFromFormat stopped parsing datetime with extra space). * DOM: + Fixed bug [GH-11625](https://github.com/php/php-src/issues/11625) (DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version). * Fileinfo: + Fixed bug [GH-11298](https://github.com/php/php-src/issues/11298) (finfo returns wrong mime type for xz files). * FTP: + Fix context option check for "overwrite". + Fixed bug [GH-10562](https://github.com/php/php-src/issues/10562) (Memory leak and invalid state with consecutive ftp\_nb\_fget). * GD: + Fix most of the external libgd test failures. * Intl: + Fix memory leak in MessageFormatter::format() on failure. * Libxml: + Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823) * MBString: + Fix [GH-11300](https://github.com/php/php-src/issues/11300) (license issue: restricted unicode license headers). * Opcache: + Fixed bug [GH-10914](https://github.com/php/php-src/issues/10914) (OPCache with Enum and Callback functions results in segmentation fault). + Prevent potential deadlock if accelerated globals cannot be allocated. * PCNTL: + Fixed bug [GH-11498](https://github.com/php/php-src/issues/11498) (SIGCHLD is not always returned from proc\_open). * PDO: + Fix [GH-11587](https://github.com/php/php-src/issues/11587) (After php8.1, when PDO::ATTR\_EMULATE\_PREPARES is true and PDO::ATTR\_STRINGIFY\_FETCHES is true, decimal zeros are no longer filled). * PDO SQLite: + Fix [GH-11492](https://github.com/php/php-src/issues/11492) (Make test failure: ext/pdo\_sqlite/tests/bug\_42589.phpt). * Phar: + Add missing check on EVP\_VerifyUpdate() in phar util. + Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar\_dir\_read()). (CVE-2023-3824) * PHPDBG: + Fixed bug [GH-9669](https://github.com/php/php-src/issues/9669) (phpdbg -h options doesn't list the -z option). * Session: + Removed broken url support for transferring session ID. * Standard: + Fix serialization of RC1 objects appearing in object graph twice. * Streams: + Fixed bug [GH-11735](https://github.com/php/php-src/issues/11735) (Use-after-free when unregistering user stream wrapper from itself). * SQLite3: + Fix replaced error handling in SQLite3Stmt::\_\_construct. * XMLReader: + Fix [GH-11548](https://github.com/php/php-src/issues/11548) (Argument corruption when calling XMLReader::open or XMLReader::XML non-statically with observer active). ##### Version 8.2.8 **06 Jul 2023** * CLI: + Fixed bug [GH-11246](https://github.com/php/php-src/issues/11246) (cli/get\_set\_process\_title fails on MacOS). * Core: + Fixed build for the riscv64 architecture/GCC 12. * Curl: + Fixed bug [GH-11433](https://github.com/php/php-src/issues/11433) (Unable to set CURLOPT\_ACCEPT\_ENCODING to NULL). * Date: + Fixed bug [GH-11455](https://github.com/php/php-src/issues/11455) (Segmentation fault with custom object date properties). * DOM: + Fixed bugs [GH-11288](https://github.com/php/php-src/issues/11288) and [GH-11289](https://github.com/php/php-src/issues/11289) and [GH-11290](https://github.com/php/php-src/issues/11290) and [GH-9142](https://github.com/php/php-src/issues/9142) (DOMExceptions and segfaults with replaceWith). + Fixed bug [GH-10234](https://github.com/php/php-src/issues/10234) (Setting DOMAttr::textContent results in an empty attribute value). + Fix return value in stub file for DOMNodeList::item. + Fix spec compliance error with '\*' namespace for DOMDocument::getElementsByTagNameNS. + Fix DOMElement::append() and DOMElement::prepend() hierarchy checks. + Fixed bug [GH-11347](https://github.com/php/php-src/issues/11347) (Memory leak when calling a static method inside an xpath query). + Fixed bug [#67440](http://bugs.php.net/67440) (append\_node of a DOMDocumentFragment does not reconcile namespaces). + Fixed bug [#81642](http://bugs.php.net/81642) (DOMChildNode::replaceWith() bug when replacing a node with itself). + Fixed bug [#77686](http://bugs.php.net/77686) (Removed elements are still returned by getElementById). + Fixed bug [#70359](http://bugs.php.net/70359) (print\_r() on DOMAttr causes Segfault in php\_libxml\_node\_free\_list()). + Fixed bug [#78577](http://bugs.php.net/78577) (Crash in DOMNameSpace debug info handlers). + Fix lifetime issue with getAttributeNodeNS(). + Fix "invalid state error" with cloned namespace declarations. + Fixed bug [#55294](http://bugs.php.net/55294) and #47530 and #47847 (various namespace reconciliation issues). + Fixed bug [#80332](http://bugs.php.net/80332) (Completely broken array access functionality with DOMNamedNodeMap). * Opcache: + Fix allocation loop in zend\_shared\_alloc\_startup(). + Access violation on smm\_shared\_globals with ALLOC\_FALLBACK. + Fixed bug [GH-11336](https://github.com/php/php-src/issues/11336) (php still tries to unlock the shared memory ZendSem with opcache.file\_cache\_only=1 but it was never locked). * OpenSSL: + Fixed bug [GH-9356](https://github.com/php/php-src/issues/9356) Incomplete validation of IPv6 Address fields in subjectAltNames (James Lucas, Jakub Zelenka). * PCRE: + Fix preg\_replace\_callback\_array() pattern validation. * PGSQL: + Fixed intermittent segfault with pg\_trace. * Phar: + Fix cross-compilation check in phar generation for FreeBSD. * SPL: + Fixed bug [GH-11338](https://github.com/php/php-src/issues/11338) (SplFileInfo empty getBasename with more than one slash). * Standard: + Fix access on NULL pointer in array\_merge\_recursive(). + Fix exception handling in array\_multisort(). * SQLite3: + Fixed bug [GH-11451](https://github.com/php/php-src/issues/11451) (Invalid associative array containing duplicate keys). ##### Version 8.2.7 **08 Jun 2023** * Core: + Fixed bug [GH-11152](https://github.com/php/php-src/issues/11152) (Unable to alias namespaces containing reserved class names). + Fixed bug [GH-9068](https://github.com/php/php-src/issues/9068) (Conditional jump or move depends on uninitialised value(s)). + Fixed bug [GH-11189](https://github.com/php/php-src/issues/11189) (Exceeding memory limit in zend\_hash\_do\_resize leaves the array in an invalid state). + Fixed bug [GH-11063](https://github.com/php/php-src/issues/11063) (Compilation error on old GCC versions). + Fixed bug [GH-11222](https://github.com/php/php-src/issues/11222) (foreach by-ref may jump over keys during a rehash). * Date: + Fixed bug [GH-11281](https://github.com/php/php-src/issues/11281) (DateTimeZone::getName() does not include seconds in offset). * Exif: + Fixed bug [GH-10834](https://github.com/php/php-src/issues/10834) (exif\_read\_data() cannot read smaller stream wrapper chunk sizes). * FPM: + Fixed bug [GH-10461](https://github.com/php/php-src/issues/10461) (PHP-FPM segfault due to after free usage of child->ev\_std(out|err)). + Fixed bug [#64539](http://bugs.php.net/64539) (FPM status page: query\_string not properly JSON encoded). + Fixed memory leak for invalid primary script file handle. * Hash: + Fixed bug [GH-11180](https://github.com/php/php-src/issues/11180) (hash\_file() appears to be restricted to 3 arguments). * LibXML: + Fixed bug [GH-11160](https://github.com/php/php-src/issues/11160) (Few tests failed building with new libxml 2.11.0). * MBString: + Fix bug [GH-11217](https://github.com/php/php-src/issues/11217) (Segfault in mb\_strrpos / mb\_strripos when using negative offset and ASCII encoding). * Opcache: + Fixed bug [GH-11134](https://github.com/php/php-src/issues/11134) (Incorrect match default branch optimization). + Fixed too wide OR and AND range inference. + Fixed missing class redeclaration error with OPcache enabled. + Fixed bug [GH-11245](https://github.com/php/php-src/issues/11245) (In some specific cases SWITCH with one default statement will cause segfault). * PCNTL: + Fixed maximum argument count of pcntl\_forkx(). * PGSQL: + Fixed parameter parsing of pg\_lo\_export(). * Phar: + Fixed bug [GH-11099](https://github.com/php/php-src/issues/11099) (Generating phar.php during cross-compile can't be done). * Soap: + Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247) + Fixed bug [GH-8426](https://github.com/php/php-src/issues/8426) (make test fail while soap extension build). * SPL: + Fixed bug [GH-11178](https://github.com/php/php-src/issues/11178) (Segmentation fault in spl\_array\_it\_get\_current\_data (PHP 8.1.18)). * Standard: + Fixed bug [GH-11138](https://github.com/php/php-src/issues/11138) (move\_uploaded\_file() emits open\_basedir warning for source file). + Fixed bug [GH-11274](https://github.com/php/php-src/issues/11274) (POST/PATCH request switches to GET after a HTTP 308 redirect). * Streams: + Fixed bug [GH-10031](https://github.com/php/php-src/issues/10031) ([Stream] STREAM\_NOTIFY\_PROGRESS over HTTP emitted irregularly for last chunk of data). + Fixed bug [GH-11175](https://github.com/php/php-src/issues/11175) (Stream Socket Timeout). + Fixed bug [GH-11177](https://github.com/php/php-src/issues/11177) (ASAN UndefinedBehaviorSanitizer when timeout = -1 passed to stream\_socket\_accept/stream\_socket\_client). ##### Version 8.2.6 **11 May 2023** * Core: + Fix inconsistent float negation in constant expressions. + Fixed bug [GH-8841](https://github.com/php/php-src/issues/8841) (php-cli core dump calling a badly formed function). + Fixed bug [GH-10737](https://github.com/php/php-src/issues/10737) (PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi\_apache2.c). + Fixed bug [GH-11028](https://github.com/php/php-src/issues/11028) (Heap Buffer Overflow in zval\_undefined\_cv.). + Fixed bug [GH-11108](https://github.com/php/php-src/issues/11108) (Incorrect CG(memoize\_mode) state after bailout in ??=). * Date: + Fixed bug where the diff() method would not return the right result around DST changeover for date/times associated with a timezone identifier. + Fixed out-of-range bug when converting to/from around the LONG\_MIN unix timestamp. * DOM: + Fixed bug [#80602](http://bugs.php.net/80602) (Segfault when using DOMChildNode::before()). + Fixed incorrect error handling in dom\_zvals\_to\_fragment(). * Exif: + Fixed bug [GH-9397](https://github.com/php/php-src/issues/9397) (exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index). * Intl: + Fixed bug [GH-11071](https://github.com/php/php-src/issues/11071) (TZData version not displayed anymore). * PCRE: + Fixed bug [GH-10968](https://github.com/php/php-src/issues/10968) (Segfault in preg\_replace\_callback\_array()). * Reflection: + Fixed bug [GH-10983](https://github.com/php/php-src/issues/10983) (State-dependant segfault in ReflectionObject::getProperties). * SPL: + Handle indirect zvals and use up-to-date properties in SplFixedArray::\_\_serialize. * Standard: + Fixed bug [GH-10990](https://github.com/php/php-src/issues/10990) (mail() throws TypeError after iterating over $additional\_headers array by reference). + Fixed bug [GH-9775](https://github.com/php/php-src/issues/9775) (Duplicates returned by array\_unique when using enums). * Streams: + Fixed bug [GH-10406](https://github.com/php/php-src/issues/10406) (feof() behavior change for UNIX based socket resources). ##### Version 8.2.5 **13 Apr 2023** * Core: + Added optional support for max\_execution\_time in ZTS/Linux builds (Kรฉvin Dunglas) + Fixed use-after-free in recursive AST evaluation. + Fixed bug [GH-8646](https://github.com/php/php-src/issues/8646) (Memory leak PHP FPM 8.1). + Re-add some CTE functions that were removed from being CTE by a mistake. + Remove CTE flag from array\_diff\_ukey(), which was added by mistake. + Fixed bug [GH-10801](https://github.com/php/php-src/issues/10801) (Named arguments in CTE functions cause a segfault). + Fixed bug [GH-8789](https://github.com/php/php-src/issues/8789) (PHP 8.0.20 (ZTS) zend\_signal\_handler\_defer crashes on apache). + Fixed bug [GH-10015](https://github.com/php/php-src/issues/10015) (zend\_signal\_handler\_defer crashes on apache shutdown). + Fixed bug [GH-10810](https://github.com/php/php-src/issues/10810) (Fix NUL byte terminating Exception::\_\_toString()). + Fix potential memory corruption when mixing \_\_callStatic() and FFI. * Date: + Fixed bug [GH-10747](https://github.com/php/php-src/issues/10747) (Private and protected properties in serialized Date\* objects throw). * FPM: + Fixed bug [GH-10611](https://github.com/php/php-src/issues/10611) (fpm\_env\_init\_main leaks environ). + Destroy file\_handle in fpm\_main. + Fixed bug [#74129](http://bugs.php.net/74129) (Incorrect SCRIPT\_NAME with apache ProxyPassMatch when spaces are in path). * FTP: + Propagate success status of ftp\_close(). + Fixed bug [GH-10521](https://github.com/php/php-src/issues/10521) (ftp\_get/ftp\_nb\_get resumepos offset is maximum 10GB). * IMAP: + Fix build failure with Clang 16. * MySQLnd: + Fixed bug [GH-8979](https://github.com/php/php-src/issues/8979) (Possible Memory Leak with SSL-enabled MySQL connections). * Opcache: + Fixed build for macOS to cater with pkg-config settings. + Fixed bug [GH-8065](https://github.com/php/php-src/issues/8065) (opcache.consistency\_checks > 0 causes segfaults in PHP >= 8.1.5 in fpm context). * OpenSSL: + Add missing error checks on file writing functions. * PDO Firebird: + Fixed bug [GH-10908](https://github.com/php/php-src/issues/10908) (Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland). * Phar: + Fixed bug [GH-10766](https://github.com/php/php-src/issues/10766) (PharData archive created with Phar::Zip format does not keep files metadata (datetime)). + Add missing error checks on EVP\_MD\_CTX\_create() and EVP\_VerifyInit(). * PDO ODBC: + Fixed missing and inconsistent error checks on SQLAllocHandle. * PGSQL: + Fixed typo in the array returned from pg\_meta\_data (extended mode). * SPL: + Fixed bug [GH-10519](https://github.com/php/php-src/issues/10519) (Array Data Address Reference Issue). + Fixed bug [GH-10907](https://github.com/php/php-src/issues/10907) (Unable to serialize processed SplFixedArrays in PHP 8.2.4). + Fixed bug [GH-10844](https://github.com/php/php-src/issues/10844) (ArrayIterator allows modification of readonly props). * Standard: + Fixed bug [GH-10885](https://github.com/php/php-src/issues/10885) (stream\_socket\_server context leaks). + Fixed bug [GH-10052](https://github.com/php/php-src/issues/10052) (Browscap crashes PHP 8.1.12 on request shutdown (apache2)). + Fixed oss-fuzz #57392 (Buffer-overflow in php\_fgetcsv() with \0 delimiter and enclosure). + Fixed undefined behaviour in unpack(). ##### Version 8.2.4 **16 Mar 2023** * Core: + Fixed incorrect check condition in ZEND\_YIELD. + Fixed incorrect check condition in type inference. + Fix incorrect check in zend\_internal\_call\_should\_throw(). + Fixed overflow check in OnUpdateMemoryConsumption. + Fixed bug [GH-9916](https://github.com/php/php-src/issues/9916) (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes). + Fixed bug [GH-10437](https://github.com/php/php-src/issues/10437) (Segfault/assertion when using fibers in shutdown function after bailout). + Fixed SSA object type update for compound assignment opcodes. + Fixed language scanner generation build. + Fixed zend\_update\_static\_property() calling zend\_update\_static\_property\_ex() misleadingly with the wrong return type. + Fix bug [GH-10570](https://github.com/php/php-src/issues/10570) (Fixed unknown string hash on property fetch with integer constant name). + Fixed php\_fopen\_primary\_script() call resulted on zend\_destroy\_file\_handle() freeing dangling pointers on the handle as it was uninitialized. * Curl: + Fixed deprecation warning at compile time. + Fixed bug [GH-10270](https://github.com/php/php-src/issues/10270) (Unable to return CURL\_READFUNC\_PAUSE in readfunc callback). * Date: + Fix [GH-10447](https://github.com/php/php-src/issues/10447) ('p' format specifier does not yield 'Z' for 00:00). + Fix [GH-10152](https://github.com/php/php-src/issues/10152) (Custom properties of Date's child classes are not serialised). + Fixed bug [GH-10747](https://github.com/php/php-src/issues/10747) (Private and protected properties in serialized Date\* objects throw). * FFI: + Fixed incorrect bitshifting and masking in ffi bitfield. * Fiber: + Fixed assembly on alpine x86. + Fixed bug [GH-10496](https://github.com/php/php-src/issues/10496) (segfault when garbage collector is invoked inside of fiber). * FPM: + Fixed bug [GH-10315](https://github.com/php/php-src/issues/10315) (FPM unknown child alert not valid). + Fixed bug [GH-10385](https://github.com/php/php-src/issues/10385) (FPM successful config test early exit). * GMP: + Properly implement GMP::\_\_construct(). * Intl: + Fixed bug [GH-10647](https://github.com/php/php-src/issues/10647) (Spoolchecker isSuspicious/areConfusable methods error code's argument always returning NULL0. * JSON: + Fixed JSON scanner and parser generation build. * MBString: + ext/mbstring: fix new\_value length check. + Fix bug [GH-10627](https://github.com/php/php-src/issues/10627) (mb\_convert\_encoding crashes PHP on Windows). * Opcache: + Fix incorrect page\_size check. * OpenSSL: + Fixed php\_openssl\_set\_server\_dh\_param() DH params errors handling. * PDO OCI: + Fixed bug [#60994](http://bugs.php.net/60994) (Reading a multibyte CLOB caps at 8192 chars). * PHPDBG: + Fixed bug [GH-10715](https://github.com/php/php-src/issues/10715) (heap buffer overflow on --run option misuse). * PGSQL: + Fix [GH-10672](https://github.com/php/php-src/issues/10672) (pg\_lo\_open segfaults in the strict\_types mode). * Phar: + Fix incorrect check in phar tar parsing. * Random: + Fix [GH-10390](https://github.com/php/php-src/issues/10390) (Do not trust arc4random\_buf() on glibc). + Fix [GH-10292](https://github.com/php/php-src/issues/10292) (Made the default value of the first param of srand() and mt\_srand() unknown). * Reflection: + Fixed bug [GH-10623](https://github.com/php/php-src/issues/10623) (Reflection::getClosureUsedVariables opcode fix with variadic arguments). + Fix Segfault when using ReflectionFiber suspended by an internal function. * Session: + Fixed ps\_files\_cleanup\_dir() on failure code paths with -1 instead of 0 as the latter was considered success by callers. (nielsdos). * Standard: + Fixed bug [GH-8086](https://github.com/php/php-src/issues/8086) (Introduce mail.mixed\_lf\_and\_crlf INI). + Fixed bug [GH-10292](https://github.com/php/php-src/issues/10292) (Made the default value of the first param of srand() and mt\_srand() unknown). + Fix incorrect check in cs\_8559\_5 in map\_from\_unicode(). + Fix bug [GH-9697](https://github.com/php/php-src/issues/9697) for reset/end/next/prev() attempting to move pointer of properties table for certain internal classes such as FFI classes + Fix incorrect error check in browsecap for pcre2\_match(). * Streams: + Fixed bug [GH-10370](https://github.com/php/php-src/issues/10370) (File corruption in \_php\_stream\_copy\_to\_stream\_ex when using copy\_file\_range). + Fixed bug [GH-10548](https://github.com/php/php-src/issues/10548) (copy() fails on cifs mounts because of incorrect copy\_file\_range() len). * Tidy: + Fix memory leaks when attempting to open a non-existing file or a file over 4GB. + Add missing error check on tidyLoadConfig. * Zlib: + Fixed output\_handler directive value's length which counted the string terminator. ##### Version 8.2.3 **14 Feb 2023** * Core: + Fixed bug [#81744](http://bugs.php.net/81744) (Password\_verify() always return true with some hash). (CVE-2023-0567) + Fixed bug [#81746](http://bugs.php.net/81746) (1-byte array overrun in common path resolve code). (CVE-2023-0568) * SAPI: + Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662) ##### Version 8.2.2 **02 Feb 2023** * Core: + Fixed bug [GH-10200](https://github.com/php/php-src/issues/10200) (zif\_get\_object\_vars: Assertion `!(((\_\_ht)->u.flags & (1<<2)) != 0)' failed). + Fix [GH-10251](https://github.com/php/php-src/issues/10251) (Assertion `(flag & (1<<3)) == 0' failed). + Fix [GH-10240](https://github.com/php/php-src/issues/10240) (Assertion failure when adding more than 2\*\*30 elements to an unpacked array). + Fix [GH-9735](https://github.com/php/php-src/issues/9735) (Fiber stack variables do not participate in cycle collector). + Fix [GH-9675](https://github.com/php/php-src/issues/9675) (Broken run\_time\_cache init for internal enum methods). * FPM: + Fixed bug [#77106](http://bugs.php.net/77106) (Missing separator in FPM FastCGI errors). + Fixed bug [GH-9981](https://github.com/php/php-src/issues/9981) (FPM does not reset fastcgi.error\_header). + Fixed bug [#68591](http://bugs.php.net/68591) (Configuration test does not perform UID lookups). + Fixed memory leak when running FPM config test. + Fixed bug [#67244](http://bugs.php.net/67244) (Wrong owner:group for listening unix socket). * Hash: + Handle exceptions from \_\_toString in XXH3's initialization (nielsdos) * LDAP: + Fixed bug [GH-10112](https://github.com/php/php-src/issues/10112) (LDAP\Connection::\_\_construct() refers to ldap\_create()). * Opcache: + Fix inverted bailout value in zend\_runtime\_jit() (Max Kellermann). + Fix access to uninitialized variable in accel\_preload(). + Fix zend\_jit\_find\_trace() crashes. + Added missing lock for EXIT\_INVALIDATE in zend\_jit\_trace\_exit. * Phar: + Fix wrong flags check for compression method in phar\_object.c (nielsdos) * PHPDBG: + Fix undefined behaviour in phpdbg\_load\_module\_or\_extension(). + Fix NULL pointer dereference in phpdbg\_create\_conditional\_breal(). + Fix [GH-9710](https://github.com/php/php-src/issues/9710): phpdbg memory leaks by option "-h" (nielsdos) + Fix phpdbg segmentation fault in case of malformed input (nielsdos) * Posix: + Fix memory leak in posix\_ttyname() (girgias) * Random: + Fixed bug [GH-10247](https://github.com/php/php-src/issues/10247) (Theoretical file descriptor leak for /dev/urandom). * Standard: + Fix [GH-10187](https://github.com/php/php-src/issues/10187) (Segfault in stripslashes() with arm64). + Fixed bug [GH-10214](https://github.com/php/php-src/issues/10214) (Incomplete validation of object syntax during unserialize()). + Fix substr\_replace with slots in repl\_ht being UNDEF. * XMLWriter: + Fix missing check for xmlTextWriterEndElement (nielsdos) ##### Version 8.2.1 **05 Jan 2023** * Core: + Fixed bug [GH-9905](https://github.com/php/php-src/issues/9905) (constant() behaves inconsistent when class is undefined). + Fixed bug [GH-9918](https://github.com/php/php-src/issues/9918) (License information for xxHash is not included in README.REDIST.BINS file). + Fixed bug [GH-9890](https://github.com/php/php-src/issues/9890) (OpenSSL legacy providers not available on Windows). + Fixed bug [GH-9650](https://github.com/php/php-src/issues/9650) (Can't initialize heap: [0x000001e7]). + Fixed potentially undefined behavior in Windows ftok(3) emulation. + Fixed [GH-9769](https://github.com/php/php-src/issues/9769) (Misleading error message for unpacking of objects). * Apache: + Fixed bug [GH-9949](https://github.com/php/php-src/issues/9949) (Partial content on incomplete POST request). * FPM: + Fixed bug [GH-9959](https://github.com/php/php-src/issues/9959) (Solaris port event mechanism is still broken after bug #66694). + Fixed bug [#68207](http://bugs.php.net/68207) (Setting fastcgi.error\_header can result in a WARNING). + Fixed bug [#80669](http://bugs.php.net/80669) (FPM numeric user fails to set groups). + Fixed bug [GH-8517](https://github.com/php/php-src/issues/8517) (Random crash of FPM master process in fpm\_stdio\_child\_said). * Imap: + Fixed bug [GH-10051](https://github.com/php/php-src/issues/10051) (IMAP: there's no way to check if a IMAP\Connection is still open). * MBString: + Fixed bug [GH-9535](https://github.com/php/php-src/issues/9535) (The behavior of mb\_strcut in mbstring has been changed in PHP8.1). * Opcache: + Fixed bug [GH-9968](https://github.com/php/php-src/issues/9968) (Segmentation Fault during OPCache Preload). * OpenSSL: + Fixed bug [GH-9997](https://github.com/php/php-src/issues/9997) (OpenSSL engine clean up segfault). + Fixed bug [GH-9064](https://github.com/php/php-src/issues/9064) (PHP fails to build if openssl was built with --no-ec). + Fixed bug [GH-10000](https://github.com/php/php-src/issues/10000) (OpenSSL test failures when OpenSSL compiled with no-dsa). * Pcntl: + Fixed bug [GH-9298](https://github.com/php/php-src/issues/9298) (Signal handler called after rshutdown leads to crash). * PDO\_Firebird: + Fixed bug [GH-9971](https://github.com/php/php-src/issues/9971) (Incorrect NUMERIC value returned from PDO\_Firebird). * PDO/SQLite: + Fixed bug [#81740](http://bugs.php.net/81740) (PDO::quote() may return unquoted string). (CVE-2022-31631) * Session: + Fixed [GH-9932](https://github.com/php/php-src/issues/9932) (session name silently fails with . and [). * SPL: + Fixed [GH-9883](https://github.com/php/php-src/issues/9883) (SplFileObject::\_\_toString() reads next line). + Fixed [GH-10011](https://github.com/php/php-src/issues/10011) (Trampoline autoloader will get reregistered and cannot be unregistered). * SQLite3: + Fixed bug [#81742](http://bugs.php.net/81742) (open\_basedir bypass in SQLite3 by using file URI). * TSRM: + Fixed Windows shmget() wrt. IPC\_PRIVATE. ##### Version 8.2.0 **08 Dec 2022** * CLI: + Fixed bug [#81496](http://bugs.php.net/81496) (Server logs incorrect request method). + Updated the mime-type table for the builtin-server. + Fixed potential overflow for the builtin server via the PHP\_CLI\_SERVER\_WORKERS environment variable. + Fixed [GH-8575](https://github.com/php/php-src/issues/8575) by changing STDOUT, STDERR and STDIN to not close on resource destruction. + Implement built-in web server responding without body to HEAD request on a static resource. + Implement built-in web server responding with HTTP status 405 to DELETE/PUT/PATCH request on a static resource. + Fixed bug [GH-9709](https://github.com/php/php-src/issues/9709) (Null pointer dereference with -w/-s options). * COM: + Fixed bug [GH-8750](https://github.com/php/php-src/issues/8750) (Can not create VT\_ERROR variant type). * Core: + Fixed bug [#81380](http://bugs.php.net/81380) (Observer may not be initialized properly). + Fixed bug [GH-7771](https://github.com/php/php-src/issues/7771) (Fix filename/lineno of constant expressions). + Fixed bug [GH-7792](https://github.com/php/php-src/issues/7792) (Improve class type in error messages). + Support huge pages on MacOS. + Fixed bug [GH-8655](https://github.com/php/php-src/issues/8655) (Casting an object to array does not unwrap refcount=1 references). + Fixed bug [GH-8661](https://github.com/php/php-src/issues/8661) (Nullsafe in coalesce triggers undefined variable warning). + Fixed bug [GH-7821](https://github.com/php/php-src/issues/7821) and [GH-8418](https://github.com/php/php-src/issues/8418) (Allow arbitrary const expressions in backed enums). + Fixed bug [GH-8810](https://github.com/php/php-src/issues/8810) (Incorrect lineno in backtrace of multi-line function calls). + Optimised code path for newly created file with the stream plain wrapper. + Uses safe\_perealloc instead of perealloc for the ZEND\_PTR\_STACK\_RESIZE\_IF\_NEEDED to avoid possible overflows. + Reduced the memory footprint of strings returned by var\_export(), json\_encode(), serialize(), iconv\_\*(), mb\_ereg\*(), session\_create\_id(), http\_build\_query(), strstr(), Reflection\*::\_\_toString(). + Fixed bug [GH-8995](https://github.com/php/php-src/issues/8995) (WeakMap object reference offset causing TypeError). + Added error\_log\_mode ini setting. + Updated request startup messages. + Fixed bug [GH-7900](https://github.com/php/php-src/issues/7900) (Arrow function with never return type compile-time errors). + Fixed incorrect double to long casting in latest clang. + Added support for defining constants in traits. + Stop incorrectly emitting false positive deprecation notice alongside unsupported syntax fatal error for `"{$g{'h'}}"`. + Fix unexpected deprecated dynamic property warning, which occurred when exit() in finally block after an exception was thrown without catching. + Fixed bug [GH-9323](https://github.com/php/php-src/issues/9323) (Crash in ZEND\_RETURN/GC/zend\_call\_function) (Tim Starling) + Fixed bug [GH-9227](https://github.com/php/php-src/issues/9227) (Trailing dots and spaces in filenames are ignored). + Fixed bug [GH-9285](https://github.com/php/php-src/issues/9285) (Traits cannot be used in readonly classes). + Fixed bug [GH-9186](https://github.com/php/php-src/issues/9186) (@strict-properties can be bypassed using unserialization). + Fixed bug [GH-9500](https://github.com/php/php-src/issues/9500) (Using dnf type with parentheses after readonly keyword results in a parse error). + Fixed bug [GH-9516](https://github.com/php/php-src/issues/9516) ((A&B)|D as a param should allow AB or D. Not just A). + Fixed observer class notify with Opcache file\_cache\_only=1. + Fixes segfault with Fiber on FreeBSD i386 architecture. + Fixed bug [GH-9655](https://github.com/php/php-src/issues/9655) (Pure intersection types cannot be implicitly nullable) (Girgias) + Fixed bug [GH-9589](https://github.com/php/php-src/issues/9589) (dl() segfaults when module is already loaded). + Fixed bug [GH-9752](https://github.com/php/php-src/issues/9752) (Generator crashes when interrupted during argument evaluation with extra named params). + Fixed bug [GH-9801](https://github.com/php/php-src/issues/9801) (Generator crashes when memory limit is exceeded during initialization). + Fixed a bug with preloaded enums possibly segfaulting. + Fixed bug [GH-9823](https://github.com/php/php-src/issues/9823) (Donโ€™t reset func in zend\_closure\_internal\_handler). + Fixed potential NULL pointer dereference Windows shm\*() functions. + Fix target validation for internal attributes with constructor property promotion. + Fixed bug [GH-9750](https://github.com/php/php-src/issues/9750) (Generator memory leak when interrupted during argument evaluation. + Move observer\_declared\_function\_notify until after pass\_two(). + Do not report MINIT stage internal class aliases in extensions. * Curl: + Added support for CURLOPT\_XFERINFOFUNCTION. + Added support for CURLOPT\_MAXFILESIZE\_LARGE. + Added new constants from cURL 7.62 to 7.80. + New function curl\_upkeep(). * Date: + Fixed [GH-8458](https://github.com/php/php-src/issues/8458) (DateInterval::createFromDateString does not throw if non-relative items are present). + Fixed bug [#52015](http://bugs.php.net/52015) (Allow including end date in DatePeriod iterations) (Daniel Egeberg, Derick) + idate() now accepts format specifiers "N" (ISO Day-of-Week) and "o" (ISO Year). + Fixed bug [GH-8730](https://github.com/php/php-src/issues/8730) (DateTime::diff miscalculation is same time zone of different type). + Fixed bug [GH-8964](https://github.com/php/php-src/issues/8964) (DateTime object comparison after applying delta less than 1 second). + Fixed bug [GH-9106](https://github.com/php/php-src/issues/9106) (DateInterval 1.5s added to DateTimeInterface is rounded down since PHP 8.1.0). + Fixed bug [#75035](http://bugs.php.net/75035) (Datetime fails to unserialize "extreme" dates). + Fixed bug [#80483](http://bugs.php.net/80483) (DateTime Object with 5-digit year can't unserialized). + Fixed bug [#81263](http://bugs.php.net/81263) (Wrong result from DateTimeImmutable::diff). + Fixed bug [GH-9431](https://github.com/php/php-src/issues/9431) (DateTime::getLastErrors() not returning false when no errors/warnings). + Fixed bug with parsing large negative numbers with the @ notation. * DBA: + Fixed LMDB driver hanging when attempting to delete a non-existing key (Girgias) + Fixed LMDB driver memory leak on DB creation failure (Girgias) + Fixed [GH-8856](https://github.com/php/php-src/issues/8856) (dba: lmdb: allow to override the MDB\_NOSUBDIR flag). * FFI: + Fixed bug [GH-9090](https://github.com/php/php-src/issues/9090) (Support assigning function pointers in FFI). * Fileinfo: + Fixed bug [GH-8805](https://github.com/php/php-src/issues/8805) (finfo returns wrong mime type for woff/woff2 files). * Filter: + Added FILTER\_FLAG\_GLOBAL\_RANGE to filter Global IPs. * FPM: + Emit error for invalid port setting. + Added extra check for FPM proc dumpable on SELinux based systems. + Added support for listening queue on macOS. + Changed default for listen.backlog on Linux to -1. + Added listen.setfib pool option to set route FIB on FreeBSD. + Added access.suppress\_path pool option to filter access log entries. + Fixed on fpm scoreboard occasional warning on acquisition failure. + Fixed bug [GH-9754](https://github.com/php/php-src/issues/9754) (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11). * FTP: + Fix datetime format string to follow POSIX spec in ftp\_mdtm(). * GD: + Fixed bug [#81739](http://bugs.php.net/81739): OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630) * GMP: + Fixed bug [GH-9308](https://github.com/php/php-src/issues/9308) (GMP throws the wrong error when a GMP object is passed to gmp\_init()). * Hash: + Fixed bug [#81738](http://bugs.php.net/81738): buffer overflow in hash\_update() on long parameter. (CVE-2022-37454) * Intl: + Update all grandfathered language tags with preferred values + Fixed [GH-7939](https://github.com/php/php-src/issues/7939) (Cannot unserialize IntlTimeZone objects). + Fixed build for ICU 69.x and onwards. + Declared Transliterator::$id as readonly to unlock subclassing it. + Fixed bug [GH-9421](https://github.com/php/php-src/issues/9421) (Incorrect argument number for ValueError in NumberFormatter). * MBString: + Fixed bug [GH-9248](https://github.com/php/php-src/issues/9248) (Segmentation fault in mb\_strimwidth()). * mysqli: + Fixed bug [GH-9841](https://github.com/php/php-src/issues/9841) (mysqli\_query throws warning despite using silenced error mode). * MySQLnd: + Fixed potential heap corruption due to alignment mismatch. * OCI8: + Added oci8.prefetch\_lob\_size directive to tune LOB query performance + Support for building against Oracle Client libraries 10.1 and 10.2 has been dropped. Oracle Client libraries 11.2 or newer are now required. * ODBC: + Fixed bug [GH-8300](https://github.com/php/php-src/issues/8300) (User input not escaped when building connection string). + Fixed bug [GH-9347](https://github.com/php/php-src/issues/9347) (Current ODBC liveness checks may be inadequate). * Opcache: + Allocate JIT buffer close to PHP .text segemnt to allow using direct IP-relative calls and jumps. + Added initial support for JIT performance profiling generation for macOs Instrument. + Fixed bug [GH-8030](https://github.com/php/php-src/issues/8030) (Segfault with JIT and large match/switch statements). + Added JIT support improvement for macOs for segments and executable permission bit handling. + Added JIT buffer allocation near the .text section on FreeNSD. + Fixed bug [GH-9371](https://github.com/php/php-src/issues/9371) (Crash with JIT on mac arm64) (jdp1024/David Carlier) + Fixed bug [GH-9259](https://github.com/php/php-src/issues/9259) (opcache.interned\_strings\_buffer setting integer overflow). + Added indirect call reduction for jit on x86 architectures. + Fixed bug [GH-9164](https://github.com/php/php-src/issues/9164) (Segfault in zend\_accel\_class\_hash\_copy). + Fix opcache preload with observers enabled. * OpenSSL: + Discard poll calls on socket when no timeout/non blocking/MSG\_DONTWAIT. + Fixed bug [GH-9310](https://github.com/php/php-src/issues/9310) (SSL local\_cert and local\_pk do not respect open\_basedir). + Implement FR #76935 ("chacha20-poly1305" is an AEAD but does not work like AEAD). + Added openssl\_cipher\_key\_length function. + Fixed bug [GH-9517](https://github.com/php/php-src/issues/9517) (Compilation error openssl extension related to PR [GH-9366](https://github.com/php/php-src/issues/9366)). + Fixed missing clean up of OpenSSL engine list - attempt to fix [GH-8620](https://github.com/php/php-src/issues/8620). + Fixed bug [GH-8430](https://github.com/php/php-src/issues/8430) (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build). * PCNTL: + Fixed pcntl\_(get|set)priority error handling for MacOS. * PCRE: + Implemented FR [#77726](http://bugs.php.net/77726) (Allow null character in regex patterns). + Updated bundled libpcre to 10.40. * PDO: + Fixed bug [GH-9818](https://github.com/php/php-src/issues/9818) (Initialize run time cache in PDO methods). * PDO\_Firebird: + Fixed bug [GH-8576](https://github.com/php/php-src/issues/8576) (Bad interpretation of length when char is UTF-8). * PDO\_ODBC: + Fixed bug [#80909](http://bugs.php.net/80909) (crash with persistent connections in PDO\_ODBC). + Fixed bug [GH-8300](https://github.com/php/php-src/issues/8300) (User input not escaped when building connection string). + Fixed bug [GH-9347](https://github.com/php/php-src/issues/9347) (Current ODBC liveness checks may be inadequate). + Fixed bug [GH-9372](https://github.com/php/php-src/issues/9372) (HY010 when binding overlong parameter). * PDO\_PGSQL: + Fixed bug [GH-9411](https://github.com/php/php-src/issues/9411) (PgSQL large object resource is incorrectly closed). * Random: + Added new random extension. + Fixed bug [GH-9067](https://github.com/php/php-src/issues/9067) (random extension is not thread safe). + Fixed bug [GH-9055](https://github.com/php/php-src/issues/9055) (segmentation fault if user engine throws). + Fixed bug [GH-9066](https://github.com/php/php-src/issues/9066) (signed integer overflow). + Fixed bug [GH-9083](https://github.com/php/php-src/issues/9083) (undefined behavior during shifting). + Fixed bug [GH-9088](https://github.com/php/php-src/issues/9088), [GH-9056](https://github.com/php/php-src/issues/9056) (incorrect expansion of bytes when generating uniform integers within a given range). + Fixed bug [GH-9089](https://github.com/php/php-src/issues/9089) (Fix memory leak on Randomizer::\_\_construct() call twice). + Fixed bug [GH-9212](https://github.com/php/php-src/issues/9212) (PcgOneseq128XslRr64::jump() should not allow negative $advance). + Changed Mt19937 to throw a ValueError instead of InvalidArgumentException for invalid $mode. + Splitted Random\Randomizer::getInt() (without arguments) to Random\Randomizer::nextInt(). + Fixed bug [GH-9235](https://github.com/php/php-src/issues/9235) (non-existant $sequence parameter in stub for PcgOneseq128XslRr64::\_\_construct()). + Fixed bug [GH-9190](https://github.com/php/php-src/issues/9190), [GH-9191](https://github.com/php/php-src/issues/9191) (undefined behavior for MT\_RAND\_PHP when handling large ranges). + Fixed bug [GH-9249](https://github.com/php/php-src/issues/9249) (Xoshiro256StarStar does not reject the invalid all-zero state). + Removed redundant RuntimeExceptions from Randomizer methods. The exceptions thrown by the engines will be exposed directly. + Added extension specific Exceptions/Errors (RandomException, RandomError, BrokenRandomEngineError). + Fixed bug [GH-9415](https://github.com/php/php-src/issues/9415) (Randomizer::getInt(0, 2\*\*32 - 1) with Mt19937 always returns 1). + Fixed Randomizer::getInt() consistency for 32-bit engines. + Fixed bug [GH-9464](https://github.com/php/php-src/issues/9464) (build on older macOs releases). + Fixed bug [GH-9839](https://github.com/php/php-src/issues/9839) (Pre-PHP 8.2 output compatibility for non-mt\_rand() functions for MT\_RAND\_PHP). * Reflection: + Added ReflectionFunction::isAnonymous(). + Added ReflectionMethod::hasPrototype(). + Narrow ReflectionEnum::getBackingType() return type to ReflectionNamedType. + Fixed bug [GH-8932](https://github.com/php/php-src/issues/8932) (ReflectionFunction provides no way to get the called class of a Closure). * Session: + Fixed bug [GH-7787](https://github.com/php/php-src/issues/7787) (Improve session write failure message for user error handlers). + Fixed [GH-9200](https://github.com/php/php-src/issues/9200) (setcookie has an obsolete expires date format). + Fixed [GH-9584](https://github.com/php/php-src/issues/9584) (Avoid memory corruption when not unregistering custom session handler). + Fixed bug [GH-9583](https://github.com/php/php-src/issues/9583) (session\_create\_id() fails with user defined save handler that doesn't have a validateId() method). * SOAP: + Fixed bug [GH-9720](https://github.com/php/php-src/issues/9720) (Null pointer dereference while serializing the response). * Sockets: + Added TCP\_NOTSENT\_LOWAT socket option. + Added SO\_MEMINFO socket option. + Added SO\_RTABLE socket option (OpenBSD), equivalent of SO\_MARK (Linux). + Added TCP\_KEEPALIVE, TCP\_KEEPIDLE, TCP\_KEEPINTVL, TCP\_KEEPCNT socket options. + Added ancillary data support for FreeBSD. + Added ancillary data support for NetBSD. + Added SO\_BPF\_EXTENSIONS socket option. + Added SO\_SETFIB socket option. + Added TCP\_CONGESTION socket option. + Added SO\_ZEROCOPY/MSG\_ZEROCOPY options. + Added SOL\_FILTER socket option for Solaris. + Fixed socket constants regression as of PHP 8.2.0beta3. * Sodium: + Added sodium\_crypto\_stream\_xchacha20\_xor\_ic(). * SPL: + Uses safe\_erealloc instead of erealloc to handle heap growth for the SplHeap::insert method to avoid possible overflows. + Widen iterator\_to\_array() and iterator\_count()'s $iterator parameter to iterable. + Fixed bug [#69181](http://bugs.php.net/69181) (READ\_CSV|DROP\_NEW\_LINE drops newlines within fields). + Fixed bug [#65069](http://bugs.php.net/65069) (GlobIterator incorrect handling of open\_basedir check). * SQLite3: + Changed sqlite3.defensive from PHP\_INI\_SYSTEM to PHP\_INI\_USER. * Standard: + net\_get\_interfaces() also reports wireless network interfaces on Windows. + Finished AVIF support in getimagesize(). + Fixed bug [GH-7847](https://github.com/php/php-src/issues/7847) (stripos with large haystack has bad performance). + New function memory\_reset\_peak\_usage(). + Fixed parse\_url(): can not recognize port without scheme. + Deprecated utf8\_encode() and utf8\_decode(). + Fixed the crypt\_sha256/512 api build with clang > 12. + Uses safe\_erealloc instead of erealloc to handle options in getopt to avoid possible overflows. + Implemented FR [GH-8924](https://github.com/php/php-src/issues/8924) (str\_split should return empty array for empty string). + Added ini\_parse\_quantity function to convert ini quantities shorthand notation to int. + Enable arc4random\_buf for Linux glibc 2.36 and onwards for the random\_bytes. + Uses CCRandomGenerateBytes instead of arc4random\_buf on macOs. (David Carlier). + Fixed bug [#65489](http://bugs.php.net/65489) (glob() basedir check is inconsistent). + Fixed [GH-9200](https://github.com/php/php-src/issues/9200) (setcookie has an obsolete expires date format). + Fixed [GH-9244](https://github.com/php/php-src/issues/9244) (Segfault with array\_multisort + array\_shift). + Fixed bug [GH-9296](https://github.com/php/php-src/issues/9296) (`ksort` behaves incorrectly on arrays with mixed keys). + Marked crypt()'s $string parameter as #[\SensitiveParameter]. + Fixed bug [GH-9464](https://github.com/php/php-src/issues/9464) (build on older macOs releases). + Fixed bug [GH-9518](https://github.com/php/php-src/issues/9518) (Disabling IPv6 support disables unrelated constants). + Revert "Fixed parse\_url(): can not recognize port without scheme." (andypost) + Fix crash reading module\_entry after DL\_UNLOAD() when module already loaded. * Streams: + Set IP\_BIND\_ADDRESS\_NO\_PORT if available when connecting to remote host. + Fixed bug [GH-8548](https://github.com/php/php-src/issues/8548) (stream\_wrapper\_unregister() leaks memory). + Discard poll calls on socket when no timeout/non blocking/MSG\_DONTWAIT. + Fixed bug [GH-9316](https://github.com/php/php-src/issues/9316) ($http\_response\_header is wrong for long status line). + Fixed bug [GH-9590](https://github.com/php/php-src/issues/9590) (stream\_select does not abort upon exception or empty valid fd set). + Fixed bug [GH-9653](https://github.com/php/php-src/issues/9653) (file copy between different filesystems). + Fixed bug [GH-9779](https://github.com/php/php-src/issues/9779) (stream\_copy\_to\_stream fails if dest in append mode). * Windows: + Added preliminary support for (cross-)building for ARM64. * XML: + Added libxml\_get\_external\_entity\_loader() function. * Zip: + add ZipArchive::clearError() method + add ZipArchive::getStreamName() method + add ZipArchive::getStreamIndex() method + On Windows, the Zip extension is now built as shared library (DLL) by default. + Implement fseek for zip stream when possible with libzip 1.9.1. ##### Version 8.1.32 **13 Mar 2025** * LibXML: + Fixed [GHSA-wg4p-4hqh-c3g9](https://github.com/php/php-src/security/advisories/GHSA-wg4p-4hqh-c3g9) (Reocurrence of #72714). + Fixed [GHSA-p3x9-6h7p-cgfc](https://github.com/php/php-src/security/advisories/GHSA-p3x9-6h7p-cgfc) (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) * Streams: + Fixed [GHSA-hgf5-96fm-v528](https://github.com/php/php-src/security/advisories/GHSA-hgf5-96fm-v528) (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) + Fixed [GHSA-52jp-hrpf-2jff](https://github.com/php/php-src/security/advisories/GHSA-52jp-hrpf-2jff) (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) + Fixed [GHSA-pcmh-g36c-qc44](https://github.com/php/php-src/security/advisories/GHSA-pcmh-g36c-qc44) (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) + Fixed [GHSA-v8xr-gpvj-cx9g](https://github.com/php/php-src/security/advisories/GHSA-v8xr-gpvj-cx9g) (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) * Windows: + Fixed phpize for Windows 11 (24H2). ##### Version 8.1.31 **21 Nov 2024** * CLI: + Fixed bug [GHSA-4w77-75f9-2c8w](https://github.com/php/php-src/security/advisories/GHSA-4w77-75f9-2c8w) (Heap-Use-After-Free in sapi\_read\_post\_data Processing in CLI SAPI Interface). * LDAP: + Fixed bug [GHSA-g665-fm4p-vhff](https://github.com/php/php-src/security/advisories/GHSA-g665-fm4p-vhff) (OOB access in ldap\_escape). (CVE-2024-8932) * MySQLnd: + Fixed bug [GHSA-h35g-vwh6-m678](https://github.com/php/php-src/security/advisories/GHSA-h35g-vwh6-m678) (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929) * PDO DBLIB: + Fixed bug [GHSA-5hqh-c84r-qjcv](https://github.com/php/php-src/security/advisories/GHSA-5hqh-c84r-qjcv) (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236) * PDO Firebird: + Fixed bug [GHSA-5hqh-c84r-qjcv](https://github.com/php/php-src/security/advisories/GHSA-5hqh-c84r-qjcv) (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236) * Streams: + Fixed bug [GHSA-c5f2-jwm7-mmq2](https://github.com/php/php-src/security/advisories/GHSA-c5f2-jwm7-mmq2) (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234) + Fixed bug [GHSA-r977-prxv-hc43](https://github.com/php/php-src/security/advisories/GHSA-r977-prxv-hc43) (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233) ##### Version 8.1.30 **26 Sep 2024** * CGI: + Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926) + Fixed bug GHSA-94p6-54jq-9mwp (cgi.force\_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927) * FPM: + Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026) * SAPI: + Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925) ##### Version 8.1.29 **06 Jun 2024** * CGI: + Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577) * Filter: + Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter\_var FILTER\_VALIDATE\_URL). (CVE-2024-5458) * OpenSSL: + The openssl\_private\_decrypt function in PHP, when using PKCS1 padding (OPENSSL\_PKCS1\_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa\_pkcs1\_implicit\_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable. * Standard: + Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585) ##### Version 8.1.28 **11 Apr 2024** * Standard: + Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc\_open). (CVE-2024-1874) + Fixed bug GHSA-wpj3-hf5j-x4v4 (\_\_Host-/\_\_Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756) + Fixed bug GHSA-h746-cjrr-wfmr (password\_verify can erroneously return true, opening ATO risk). (CVE-2024-3096) ##### Version 8.1.27 **21 Dec 2023** * Core: + Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious error handler). + Fixed oss-fuzz #64209 (In-place modification of filename in php\_message\_handler\_for\_zend). + Fixed bug [GH-12758](https://github.com/php/php-src/issues/12758) / [GH-12768](https://github.com/php/php-src/issues/12768) (Invalid opline in OOM handlers within ZEND\_FUNC\_GET\_ARGS and ZEND\_BIND\_STATIC). * DOM: + Fixed bug [GH-12616](https://github.com/php/php-src/issues/12616) (DOM: Removing XMLNS namespace node results in invalid default: prefix). * FPM: + Fixed bug [GH-12705](https://github.com/php/php-src/issues/12705) (Segmentation fault in fpm\_status\_export\_to\_zval). * Intl: + Fixed bug [GH-12635](https://github.com/php/php-src/issues/12635) (Test bug69398.phpt fails with ICU 74.1). * LibXML: + Fixed bug [GH-12702](https://github.com/php/php-src/issues/12702) (libxml2 2.12.0 issue building from src). * MySQLnd: + Avoid using uninitialised struct. * OpenSSL: + Fixed bug [#50713](http://bugs.php.net/50713) (openssl\_pkcs7\_verify() may ignore untrusted CAs). * PCRE: + Fixed bug [GH-12628](https://github.com/php/php-src/issues/12628) (The gh11374 test fails on Alpinelinux). * PGSQL: + Fixed bug [GH-12763](https://github.com/php/php-src/issues/12763) wrong argument type for pg\_untrace. * PHPDBG: + Fixed bug [GH-12675](https://github.com/php/php-src/issues/12675) (MEMORY\_LEAK in phpdbg\_prompt.c). * SQLite3: + Fixed bug [GH-12633](https://github.com/php/php-src/issues/12633) (sqlite3\_defensive.phpt fails with sqlite 3.44.0). * Standard: + Fix memory leak in syslog device handling. + Fixed bug [GH-12621](https://github.com/php/php-src/issues/12621) (browscap segmentation fault when configured in the vhost). + Fixed bug [GH-12655](https://github.com/php/php-src/issues/12655) (proc\_open() does not take into account references in the descriptor array). * Streams: + Fixed bug [#79945](http://bugs.php.net/79945) (Stream wrappers in imagecreatefrompng causes segfault). * Zip: + Fixed bug [GH-12661](https://github.com/php/php-src/issues/12661) (Inconsistency in ZipArchive::addGlob remove\_path Option Behavior). ##### Version 8.1.26 **23 Nov 2023** * Core: + Fixed bug [GH-12468](https://github.com/php/php-src/issues/12468) (Double-free of doc\_comment when overriding static property via trait). + Fixed segfault caused by weak references to FFI objects. + Fixed max\_execution\_time: don't delete an unitialized timer. * DOM: + Fix registerNodeClass with abstract class crashing. + Add missing NULL pointer error check. + Fix validation logic of php:function() callbacks. * Fiber: + Fixed bug [GH-11121](https://github.com/php/php-src/issues/11121) (ReflectionFiber segfault). * FPM: + Fixed bug [GH-9921](https://github.com/php/php-src/issues/9921) (Loading ext in FPM config does not register module handlers). + Fixed bug [GH-12232](https://github.com/php/php-src/issues/12232) (FPM: segfault dynamically loading extension without opcache). * Intl: + Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale. * Opcache: + Added warning when JIT cannot be enabled. + Fixed bug [GH-8143](https://github.com/php/php-src/issues/8143) (Crashes in zend\_accel\_inheritance\_cache\_find since upgrading to 8.1.3 due to corrupt on-disk file cache). * OpenSSL: + Fixed bug [GH-12489](https://github.com/php/php-src/issues/12489) (Missing sigbio creation checking in openssl\_cms\_verify). * PCRE: + Fixed bug [GH-11374](https://github.com/php/php-src/issues/11374) (Backport upstream fix, Different preg\_match result with -d pcre.jit=0). * SOAP: + Fixed bug [GH-12392](https://github.com/php/php-src/issues/12392) (Segmentation fault on SoapClient::\_\_getTypes). + Fixed bug [#66150](http://bugs.php.net/66150) (SOAP WSDL cache race condition causes Segmentation Fault). + Fixed bug [#67617](http://bugs.php.net/67617) (SOAP leaves incomplete cache file on ENOSPC). + Fix incorrect uri check in SOAP caching. + Fix segfault and assertion failure with refcounted props and arrays. + Fix potential crash with an edge case of persistent encoders. + Fixed bug [#75306](http://bugs.php.net/75306) (Memleak in SoapClient). * Streams: + Fixed bug [#75708](http://bugs.php.net/75708) (getimagesize with "&$imageinfo" fails on StreamWrappers). * XMLReader: + Add missing NULL pointer error check. * XMLWriter: + Add missing NULL pointer error check. * XSL: + Add missing module dependency. + Fix validation logic of php:function() callbacks. ##### Version 8.1.25 **26 Oct 2023** * Core: + Fixed bug [GH-12207](https://github.com/php/php-src/issues/12207) (memory leak when class using trait with doc block). + Fixed bug [GH-12215](https://github.com/php/php-src/issues/12215) (Module entry being overwritten causes type errors in ext/dom). + Fixed bug [GH-12273](https://github.com/php/php-src/issues/12273) (\_\_builtin\_cpu\_init check). + Fixed bug [#80092](http://bugs.php.net/80092) (ZTS + preload = segfault on shutdown). * CLI: + Ensure a single Date header is present. * CType: + Fixed bug [GH-11997](https://github.com/php/php-src/issues/11997) (ctype\_alnum 5 times slower in PHP 8.1 or greater). * DOM: + Restore old namespace reconciliation behaviour. + Fixed bug [GH-8996](https://github.com/php/php-src/issues/8996) (DOMNode serialization on PHP ^8.1). * Fileinfo: + Fixed bug [GH-11891](https://github.com/php/php-src/issues/11891) (fileinfo returns text/xml for some svg files). * Filter: + Fix explicit FILTER\_REQUIRE\_SCALAR with FILTER\_CALLBACK (ilutov) * Hash: + Fixed bug [GH-12186](https://github.com/php/php-src/issues/12186) (segfault copying/cloning a finalized HashContext). * Intl: + Fixed bug [GH-12243](https://github.com/php/php-src/issues/12243) (segfault on IntlDateFormatter::construct). + Fixed bug [GH-12282](https://github.com/php/php-src/issues/12282) (IntlDateFormatter::construct should throw an exception on an invalid locale). * MySQLnd: + Fixed bug [GH-12297](https://github.com/php/php-src/issues/12297) (PHP Startup: Invalid library (maybe not a PHP library) 'mysqlnd.so' in Unknown on line). * Opcache: + Fixed opcache\_invalidate() on deleted file. + Fixed bug [GH-12380](https://github.com/php/php-src/issues/12380) (JIT+private array property access inside closure accesses private property in child class). * PCRE: + Fixed bug [GH-11956](https://github.com/php/php-src/issues/11956) (Backport upstream fix, PCRE regular expressions with JIT enabled gives different result). * SimpleXML: + Fixed bug [GH-12170](https://github.com/php/php-src/issues/12170) (Can't use xpath with comments in SimpleXML). + Fixed bug [GH-12223](https://github.com/php/php-src/issues/12223) (Entity reference produces infinite loop in var\_dump/print\_r). + Fixed bug [GH-12167](https://github.com/php/php-src/issues/12167) (Unable to get processing instruction contents in SimpleXML). + Fixed bug [GH-12169](https://github.com/php/php-src/issues/12169) (Unable to get comment contents in SimpleXML). * Streams: + Fixed bug [GH-12190](https://github.com/php/php-src/issues/12190) (binding ipv4 address with both address and port at 0). * XML: + Fix return type of stub of xml\_parse\_into\_struct(). + Fix memory leak when calling xml\_parse\_into\_struct() twice. * XSL: + Fix type error on XSLTProcessor::transformToDoc return value with SimpleXML. * Sockets: + Fix socket\_export\_stream() with wrong protocol (twosee) ##### Version 8.1.24 **28 Sep 2023** * Core: + Fixed bug [GH-11937](https://github.com/php/php-src/issues/11937) (Constant ASTs containing objects). + Fixed bug [GH-11790](https://github.com/php/php-src/issues/11790) (On riscv64 require libatomic if actually needed). + Fixed bug [GH-12073](https://github.com/php/php-src/issues/12073) (Segfault when freeing incompletely initialized closures). + Fixed bug [GH-12060](https://github.com/php/php-src/issues/12060) (Internal iterator rewind handler is called twice). + Fixed bug [GH-12102](https://github.com/php/php-src/issues/12102) (Incorrect compile error when using array access on TMP value in function call). * DOM: + Fix memory leak when setting an invalid DOMDocument encoding. * Iconv: + Fixed build for NetBSD which still uses the old iconv signature. * Intl: + Fixed bug [GH-12020](https://github.com/php/php-src/issues/12020) (intl\_get\_error\_message() broken after MessageFormatter::formatMessage() fails). * MySQLnd: + Fixed bug [GH-10270](https://github.com/php/php-src/issues/10270) (Invalid error message when connection via SSL fails: "trying to connect via (null)"). * ODBC: + Fixed memory leak with failed SQLPrepare. + Fixed persistent procedural ODBC connections not getting closed. * SimpleXML: + Fixed bug [#52751](http://bugs.php.net/52751) (XPath processing-instruction() function is not supported). * SPL: + Fixed bug [GH-11972](https://github.com/php/php-src/issues/11972) (RecursiveCallbackFilterIterator regression in 8.1.18). * SQLite3: + Fixed bug [GH-11878](https://github.com/php/php-src/issues/11878) (SQLite3 callback functions cause a memory leak with a callable array). ##### Version 8.1.23 **31 Aug 2023** * CLI: + Fixed bug [GH-11716](https://github.com/php/php-src/issues/11716) (cli server crashes on SIGINT when compiled with ZEND\_RC\_DEBUG=1). + Fixed bug [GH-10964](https://github.com/php/php-src/issues/10964) (Improve man page about the built-in server). * Core: + Fixed strerror\_r detection at configuration time. * Date: + Fixed bug [GH-11416](https://github.com/php/php-src/issues/11416): Crash with DatePeriod when uninitialised objects are passed in. * DOM: + Fix DOMEntity field getter bugs. + Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS. + Fix DOMCharacterData::replaceWith() with itself. + Fix empty argument cases for DOMParentNode methods. + Fixed bug [GH-11791](https://github.com/php/php-src/issues/11791) (Wrong default value of DOMDocument::xmlStandalone). + Fix json\_encode result on DOMDocument. + Fix manually calling \_\_construct() on DOM classes. + Fixed bug [GH-11830](https://github.com/php/php-src/issues/11830) (ParentNode methods should perform their checks upfront). + Fix segfault when DOMParentNode::prepend() is called when the child disappears. * FFI: + Fix leaking definitions when using FFI::cdef()->new(...). * MySQLnd: + Fixed bug [GH-11440](https://github.com/php/php-src/issues/11440) (authentication to a sha256\_password account fails over SSL). + Fixed bug [GH-11438](https://github.com/php/php-src/issues/11438) (mysqlnd fails to authenticate with sha256\_password accounts using passwords longer than 19 characters). + Fixed bug [GH-11550](https://github.com/php/php-src/issues/11550) (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault). + Fixed invalid error message "Malformed packet" when connection is dropped. * Opcache: + Fixed bug [GH-11715](https://github.com/php/php-src/issues/11715) (opcache.interned\_strings\_buffer either has no effect or opcache\_get\_status() / phpinfo() is wrong). + Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress. * PCNTL: + Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22. * SPL: + Fixed bug [#81992](http://bugs.php.net/81992) (SplFixedArray::setSize() causes use-after-free). * Standard: + Prevent int overflow on $decimals in number\_format. + Fixed bug [GH-11870](https://github.com/php/php-src/issues/11870) (Fix off-by-one bug when truncating tempnam prefix) (athos-ribeiro) ##### Version 8.1.22 **03 Aug 2023** * Build: + Fixed bug [GH-11522](https://github.com/php/php-src/issues/11522) (PHP version check fails with '-' separator). * CLI: + Fix interrupted CLI output causing the process to exit. * Core: + Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator). + Fixed use-of-uninitialized-value with ??= on assert. + Fixed build for FreeBSD before the 11.0 releases. * Curl: + Fix crash when an invalid callback function is passed to CURLMOPT\_PUSHFUNCTION. * Date: + Fixed bug [GH-11368](https://github.com/php/php-src/issues/11368) (Date modify returns invalid datetime). * DOM: + Fixed bug [GH-11625](https://github.com/php/php-src/issues/11625) (DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version). * Fileinfo: + Fixed bug [GH-11298](https://github.com/php/php-src/issues/11298) (finfo returns wrong mime type for xz files). * FTP: + Fix context option check for "overwrite". + Fixed bug [GH-10562](https://github.com/php/php-src/issues/10562) (Memory leak and invalid state with consecutive ftp\_nb\_fget). * GD: + Fix most of the external libgd test failures. * Hash: + Fix use-of-uninitialized-value in hash\_pbkdf2(), fix missing $options parameter in signature. * Intl: + Fix memory leak in MessageFormatter::format() on failure. * Libxml: + Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823) * MBString: + Fix [GH-11300](https://github.com/php/php-src/issues/11300) (license issue: restricted unicode license headers). * Opcache: + Fixed bug [GH-10914](https://github.com/php/php-src/issues/10914) (OPCache with Enum and Callback functions results in segmentation fault). + Prevent potential deadlock if accelerated globals cannot be allocated. * PCNTL: + Fixed bug [GH-11498](https://github.com/php/php-src/issues/11498) (SIGCHLD is not always returned from proc\_open). * PCRE: + Mangle PCRE regex cache key with JIT option. * PDO: + Fix [GH-11587](https://github.com/php/php-src/issues/11587) (After php8.1, when PDO::ATTR\_EMULATE\_PREPARES is true and PDO::ATTR\_STRINGIFY\_FETCHES is true, decimal zeros are no longer filled). * PDO SQLite: + Fix [GH-11492](https://github.com/php/php-src/issues/11492) (Make test failure: ext/pdo\_sqlite/tests/bug\_42589.phpt). * Phar: + Add missing check on EVP\_VerifyUpdate() in phar util. + Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar\_dir\_read()). (CVE-2023-3824) * PHPDBG: + Fixed bug [GH-9669](https://github.com/php/php-src/issues/9669) (phpdbg -h options doesn't list the -z option). * Session: + Removed broken url support for transferring session ID. * Standard: + Fix serialization of RC1 objects appearing in object graph twice. * SQLite3: + Fix replaced error handling in SQLite3Stmt::\_\_construct. ##### Version 8.1.21 **06 Jul 2023** * CLI: + Fixed bug [GH-11246](https://github.com/php/php-src/issues/11246) (cli/get\_set\_process\_title fails on MacOS). * Core: + Fixed build for the riscv64 architecture/GCC 12. * Curl: + Fixed bug [GH-11433](https://github.com/php/php-src/issues/11433) (Unable to set CURLOPT\_ACCEPT\_ENCODING to NULL). * DOM: + Fixed bugs [GH-11288](https://github.com/php/php-src/issues/11288) and [GH-11289](https://github.com/php/php-src/issues/11289) and [GH-11290](https://github.com/php/php-src/issues/11290) and [GH-9142](https://github.com/php/php-src/issues/9142) (DOMExceptions and segfaults with replaceWith). + Fixed bug [GH-10234](https://github.com/php/php-src/issues/10234) (Setting DOMAttr::textContent results in an empty attribute value). + Fix return value in stub file for DOMNodeList::item. + Fix spec compliance error with '\*' namespace for DOMDocument::getElementsByTagNameNS. + Fix DOMElement::append() and DOMElement::prepend() hierarchy checks. + Fixed bug [GH-11347](https://github.com/php/php-src/issues/11347) (Memory leak when calling a static method inside an xpath query). + Fixed bug [#67440](http://bugs.php.net/67440) (append\_node of a DOMDocumentFragment does not reconcile namespaces). + Fixed bug [#81642](http://bugs.php.net/81642) (DOMChildNode::replaceWith() bug when replacing a node with itself). + Fixed bug [#77686](http://bugs.php.net/77686) (Removed elements are still returned by getElementById). + Fixed bug [#70359](http://bugs.php.net/70359) (print\_r() on DOMAttr causes Segfault in php\_libxml\_node\_free\_list()). + Fixed bug [#78577](http://bugs.php.net/78577) (Crash in DOMNameSpace debug info handlers). + Fix lifetime issue with getAttributeNodeNS(). + Fix "invalid state error" with cloned namespace declarations. + Fixed bug [#55294](http://bugs.php.net/55294) and #47530 and #47847 (various namespace reconciliation issues). + Fixed bug [#80332](http://bugs.php.net/80332) (Completely broken array access functionality with DOMNamedNodeMap). * Opcache: + Fix allocation loop in zend\_shared\_alloc\_startup(). + Access violation on smm\_shared\_globals with ALLOC\_FALLBACK. + Fixed bug [GH-11336](https://github.com/php/php-src/issues/11336) (php still tries to unlock the shared memory ZendSem with opcache.file\_cache\_only=1 but it was never locked). * OpenSSL: + Fixed bug [GH-9356](https://github.com/php/php-src/issues/9356) Incomplete validation of IPv6 Address fields in subjectAltNames (James Lucas, Jakub Zelenka). * PGSQL: + Fixed intermittent segfault with pg\_trace. * Phar: + Fix cross-compilation check in phar generation for FreeBSD. * SPL: + Fixed bug [GH-11338](https://github.com/php/php-src/issues/11338) (SplFileInfo empty getBasename with more than one slash). * Standard: + Fix access on NULL pointer in array\_merge\_recursive(). + Fix exception handling in array\_multisort(). ##### Version 8.1.20 **08 Jun 2023** * Core: + Fixed bug [GH-9068](https://github.com/php/php-src/issues/9068) (Conditional jump or move depends on uninitialised value(s)). + Fixed bug [GH-11189](https://github.com/php/php-src/issues/11189) (Exceeding memory limit in zend\_hash\_do\_resize leaves the array in an invalid state). + Fixed bug [GH-11222](https://github.com/php/php-src/issues/11222) (foreach by-ref may jump over keys during a rehash). * Date: + Fixed bug [GH-11281](https://github.com/php/php-src/issues/11281) (DateTimeZone::getName() does not include seconds in offset). * Exif: + Fixed bug [GH-10834](https://github.com/php/php-src/issues/10834) (exif\_read\_data() cannot read smaller stream wrapper chunk sizes). * FPM: + Fixed bug [GH-10461](https://github.com/php/php-src/issues/10461) (PHP-FPM segfault due to after free usage of child->ev\_std(out|err)). + Fixed bug [#64539](http://bugs.php.net/64539) (FPM status page: query\_string not properly JSON encoded). + Fixed memory leak for invalid primary script file handle. * Hash: + Fixed bug [GH-11180](https://github.com/php/php-src/issues/11180) (hash\_file() appears to be restricted to 3 arguments). * LibXML: + Fixed bug [GH-11160](https://github.com/php/php-src/issues/11160) (Few tests failed building with new libxml 2.11.0). * Opcache: + Fixed bug [GH-11134](https://github.com/php/php-src/issues/11134) (Incorrect match default branch optimization). + Fixed too wide OR and AND range inference. + Fixed bug [GH-11245](https://github.com/php/php-src/issues/11245) (In some specific cases SWITCH with one default statement will cause segfault). * PGSQL: + Fixed parameter parsing of pg\_lo\_export(). * Phar: + Fixed bug [GH-11099](https://github.com/php/php-src/issues/11099) (Generating phar.php during cross-compile can't be done). * Soap: + Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247) + Fixed bug [GH-8426](https://github.com/php/php-src/issues/8426) (make test fail while soap extension build). * SPL: + Fixed bug [GH-11178](https://github.com/php/php-src/issues/11178) (Segmentation fault in spl\_array\_it\_get\_current\_data (PHP 8.1.18)). * Standard: + Fixed bug [GH-11138](https://github.com/php/php-src/issues/11138) (move\_uploaded\_file() emits open\_basedir warning for source file). + Fixed bug [GH-11274](https://github.com/php/php-src/issues/11274) (POST/PATCH request switches to GET after a HTTP 308 redirect). * Streams: + Fixed bug [GH-10031](https://github.com/php/php-src/issues/10031) ([Stream] STREAM\_NOTIFY\_PROGRESS over HTTP emitted irregularly for last chunk of data). + Fixed bug [GH-11175](https://github.com/php/php-src/issues/11175) (Stream Socket Timeout). + Fixed bug [GH-11177](https://github.com/php/php-src/issues/11177) (ASAN UndefinedBehaviorSanitizer when timeout = -1 passed to stream\_socket\_accept/stream\_socket\_client). ##### Version 8.1.19 **11 May 2023** * Core: + Fix inconsistent float negation in constant expressions. + Fixed bug [GH-8841](https://github.com/php/php-src/issues/8841) (php-cli core dump calling a badly formed function). + Fixed bug [GH-10737](https://github.com/php/php-src/issues/10737) (PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi\_apache2.c). + Fixed bug [GH-11028](https://github.com/php/php-src/issues/11028) (Heap Buffer Overflow in zval\_undefined\_cv.). + Fixed bug [GH-11108](https://github.com/php/php-src/issues/11108) (Incorrect CG(memoize\_mode) state after bailout in ??=). * DOM: + Fixed bug [#80602](http://bugs.php.net/80602) (Segfault when using DOMChildNode::before()). + Fixed incorrect error handling in dom\_zvals\_to\_fragment(). * Exif: + Fixed bug [GH-9397](https://github.com/php/php-src/issues/9397) (exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index). * Intl: + Fixed bug [GH-11071](https://github.com/php/php-src/issues/11071) (TZData version not displayed anymore). * PCRE: + Fixed bug [GH-10968](https://github.com/php/php-src/issues/10968) (Segfault in preg\_replace\_callback\_array()). * Standard: + Fixed bug [GH-10990](https://github.com/php/php-src/issues/10990) (mail() throws TypeError after iterating over $additional\_headers array by reference). + Fixed bug [GH-9775](https://github.com/php/php-src/issues/9775) (Duplicates returned by array\_unique when using enums). ##### Version 8.1.18 **13 Apr 2023** * Core: + Added optional support for max\_execution\_time in ZTS/Linux builds. + Fixed use-after-free in recursive AST evaluation. + Fixed bug [GH-8646](https://github.com/php/php-src/issues/8646) (Memory leak PHP FPM 8.1). + Fixed bug [GH-10801](https://github.com/php/php-src/issues/10801) (Named arguments in CTE functions cause a segfault). + Fixed bug [GH-8789](https://github.com/php/php-src/issues/8789) (PHP 8.0.20 (ZTS) zend\_signal\_handler\_defer crashes on apache). + Fixed bug [GH-10015](https://github.com/php/php-src/issues/10015) (zend\_signal\_handler\_defer crashes on apache shutdown). + Fixed bug [GH-10810](https://github.com/php/php-src/issues/10810) (Fix NUL byte terminating Exception::\_\_toString()). + Fix potential memory corruption when mixing \_\_callStatic() and FFI. * Date: + Fixed bug [GH-10583](https://github.com/php/php-src/issues/10583) (DateTime modify with tz pattern should not update linked timezone). * FPM: + Fixed bug [GH-10611](https://github.com/php/php-src/issues/10611) (fpm\_env\_init\_main leaks environ). + Destroy file\_handle in fpm\_main. + Fixed bug [#74129](http://bugs.php.net/74129) (Incorrect SCRIPT\_NAME with apache ProxyPassMatch when spaces are in path). * FTP: + Propagate success status of ftp\_close(). + Fixed bug [GH-10521](https://github.com/php/php-src/issues/10521) (ftp\_get/ftp\_nb\_get resumepos offset is maximum 10GB). * IMAP: + Fix build failure with Clang 16. * MySQLnd: + Fixed bug [GH-8979](https://github.com/php/php-src/issues/8979) (Possible Memory Leak with SSL-enabled MySQL connections). * Opcache: + Fixed build for macOS to cater with pkg-config settings. + Fixed bug [GH-8065](https://github.com/php/php-src/issues/8065) (opcache.consistency\_checks > 0 causes segfaults in PHP >= 8.1.5 in fpm context). * OpenSSL: + Add missing error checks on file writing functions. * PDO Firebird: + Fixed bug [GH-10908](https://github.com/php/php-src/issues/10908) (Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland). * PDO ODBC: + Fixed missing and inconsistent error checks on SQLAllocHandle. * Phar: + Fixed bug [GH-10766](https://github.com/php/php-src/issues/10766) (PharData archive created with Phar::Zip format does not keep files metadata (datetime)). + Add missing error checks on EVP\_MD\_CTX\_create() and EVP\_VerifyInit(). * PGSQL: + Fixed typo in the array returned from pg\_meta\_data (extended mode). * SPL: + Fixed bug [GH-10519](https://github.com/php/php-src/issues/10519) (Array Data Address Reference Issue). + Fixed bug [GH-10844](https://github.com/php/php-src/issues/10844) (ArrayIterator allows modification of readonly props). * Standard: + Fixed bug [GH-10885](https://github.com/php/php-src/issues/10885) (stream\_socket\_server context leaks). + Fixed bug [GH-10052](https://github.com/php/php-src/issues/10052) (Browscap crashes PHP 8.1.12 on request shutdown (apache2)). + Fixed oss-fuzz #57392 (Buffer-overflow in php\_fgetcsv() with \0 delimiter and enclosure). + Fixed undefined behaviour in unpack(). ##### Version 8.1.17 **16 Mar 2023** * Core: + Fixed incorrect check condition in ZEND\_YIELD. + Fixed incorrect check condition in type inference. + Fixed overflow check in OnUpdateMemoryConsumption. + Fixed bug [GH-9916](https://github.com/php/php-src/issues/9916) (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes). + Fixed bug [GH-10437](https://github.com/php/php-src/issues/10437) (Segfault/assertion when using fibers in shutdown function after bailout). + Fixed SSA object type update for compound assignment opcodes. + Fixed language scanner generation build. + Fixed zend\_update\_static\_property() calling zend\_update\_static\_property\_ex() misleadingly with the wrong return type. + Fix bug [GH-10570](https://github.com/php/php-src/issues/10570) (Fixed unknown string hash on property fetch with integer constant name). + Fixed php\_fopen\_primary\_script() call resulted on zend\_destroy\_file\_handle() freeing dangling pointers on the handle as it was uninitialized. * Curl: + Fixed deprecation warning at compile time. + Fixed bug [GH-10270](https://github.com/php/php-src/issues/10270) (Unable to return CURL\_READFUNC\_PAUSE in readfunc callback). * Date: + Fix [GH-10447](https://github.com/php/php-src/issues/10447) ('p' format specifier does not yield 'Z' for 00:00). * FFI: + Fixed incorrect bitshifting and masking in ffi bitfield. * Fiber: + Fixed assembly on alpine x86. + Fixed bug [GH-10496](https://github.com/php/php-src/issues/10496) (segfault when garbage collector is invoked inside of fiber). * FPM: + Fixed bug [GH-10315](https://github.com/php/php-src/issues/10315) (FPM unknown child alert not valid). + Fixed bug [GH-10385](https://github.com/php/php-src/issues/10385) (FPM successful config test early exit). * Intl: + Fixed bug [GH-10647](https://github.com/php/php-src/issues/10647) (Spoolchecker isSuspicious/areConfusable methods error code's argument always returning NULL0. * JSON: + Fixed JSON scanner and parser generation build. * MBString: + ext/mbstring: fix new\_value length check. + Fix bug [GH-10627](https://github.com/php/php-src/issues/10627) (mb\_convert\_encoding crashes PHP on Windows). * Opcache: + Fix incorrect page\_size check. * OpenSSL: + Fixed php\_openssl\_set\_server\_dh\_param() DH params errors handling. * PDO OCI: + Fixed bug [#60994](http://bugs.php.net/60994) (Reading a multibyte CLOB caps at 8192 chars). * PHPDBG: + Fixed bug [GH-10715](https://github.com/php/php-src/issues/10715) (heap buffer overflow on --run option misuse). * PGSQL: + Fix [GH-10672](https://github.com/php/php-src/issues/10672) (pg\_lo\_open segfaults in the strict\_types mode). * Phar: + Fix incorrect check in phar tar parsing. * Reflection: + Fixed bug [GH-10623](https://github.com/php/php-src/issues/10623) (Reflection::getClosureUsedVariables opcode fix with variadic arguments). + Fix Segfault when using ReflectionFiber suspended by an internal function. * Session: + Fixed ps\_files\_cleanup\_dir() on failure code paths with -1 instead of 0 as the latter was considered success by callers. (nielsdos). * Standard: + Fixed bug [GH-10292](https://github.com/php/php-src/issues/10292) (Made the default value of the first param of srand() and mt\_srand() unknown). + Fix incorrect check in cs\_8559\_5 in map\_from\_unicode(). + Fix bug [GH-9697](https://github.com/php/php-src/issues/9697) for reset/end/next/prev() attempting to move pointer of properties table for certain internal classes such as FFI classes + Fix incorrect error check in browsecap for pcre2\_match(). * Tidy: + Fix memory leaks when attempting to open a non-existing file or a file over 4GB. + Add missing error check on tidyLoadConfig. * Zlib: + Fixed output\_handler directive value's length which counted the string terminator. ##### Version 8.1.16 **14 Feb 2023** * Core: + Fixed bug [#81744](http://bugs.php.net/81744) (Password\_verify() always return true with some hash). + Fixed bug [#81746](http://bugs.php.net/81746) (1-byte array overrun in common path resolve code). * SAPI: + Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662) ##### Version 8.1.15 **02 Feb 2023** * Apache: + Fixed bug [GH-9949](https://github.com/php/php-src/issues/9949) (Partial content on incomplete POST request). * Core: + Fixed bug [GH-10072](https://github.com/php/php-src/issues/10072) (PHP crashes when execute\_ex is overridden and a \_\_call trampoline is used from internal code). + Fix [GH-10251](https://github.com/php/php-src/issues/10251) (Assertion `(flag & (1<<3)) == 0' failed). + Fix wrong comparison in block optimisation pass after opcode update. * Date: + Fixed bug [GH-9891](https://github.com/php/php-src/issues/9891) (DateTime modify with unixtimestamp (@) must work like setTimestamp). + Fixed bug [GH-10218](https://github.com/php/php-src/issues/10218) (DateTimeZone fails to parse time zones that contain the "+" character). * Fiber: + Fix assertion on stack allocation size. * FPM: + Fixed bug [GH-9981](https://github.com/php/php-src/issues/9981) (FPM does not reset fastcgi.error\_header). + Fixed bug [#67244](http://bugs.php.net/67244) (Wrong owner:group for listening unix socket). * Hash: + Handle exceptions from \_\_toString in XXH3's initialization (nielsdos) * LDAP: + Fixed bug [GH-10112](https://github.com/php/php-src/issues/10112) (LDAP\Connection::\_\_construct() refers to ldap\_create()). * MBString: + 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. * Opcache: + Fix inverted bailout value in zend\_runtime\_jit() (Max Kellermann). + Fix access to uninitialized variable in accel\_preload(). + Fix zend\_jit\_find\_trace() crashes. + Added missing lock for EXIT\_INVALIDATE in zend\_jit\_trace\_exit. * Phar: + Fix wrong flags check for compression method in phar\_object.c (nielsdos) * PHPDBG: + Fix undefined behaviour in phpdbg\_load\_module\_or\_extension(). + Fix NULL pointer dereference in phpdbg\_create\_conditional\_breal(). + Fix [GH-9710](https://github.com/php/php-src/issues/9710): phpdbg memory leaks by option "-h" (nielsdos) + Fix phpdbg segmentation fault in case of malformed input (nielsdos) * Posix: + Fix memory leak in posix\_ttyname() (girgias) * Standard: + Fix [GH-10187](https://github.com/php/php-src/issues/10187) (Segfault in stripslashes() with arm64). + Fix substr\_replace with slots in repl\_ht being UNDEF. * TSRM: + Fixed Windows shmget() wrt. IPC\_PRIVATE. * XMLWriter: + Fix missing check for xmlTextWriterEndElement (nielsdos) ##### Version 8.1.14 **05 Jan 2023** * Core: + Fixed bug [GH-9905](https://github.com/php/php-src/issues/9905) (constant() behaves inconsistent when class is undefined). + Fixed bug [GH-9918](https://github.com/php/php-src/issues/9918) (License information for xxHash is not included in README.REDIST.BINS file). + Fixed bug [GH-9650](https://github.com/php/php-src/issues/9650) (Can't initialize heap: [0x000001e7]). + Fixed potentially undefined behavior in Windows ftok(3) emulation. * Date: + Fixed bug [GH-9699](https://github.com/php/php-src/issues/9699) (DateTimeImmutable::diff differences in 8.1.10 onwards - timezone related). + Fixed bug [GH-9700](https://github.com/php/php-src/issues/9700) (DateTime::createFromFormat: Parsing TZID string is too greedy). + Fixed bug [GH-9866](https://github.com/php/php-src/issues/9866) (Time zone bug with \DateTimeInterface::diff()). + Fixed bug [GH-9880](https://github.com/php/php-src/issues/9880) (DateTime diff returns wrong sign on day count when using a timezone). * FPM: + Fixed bug [GH-9959](https://github.com/php/php-src/issues/9959) (Solaris port event mechanism is still broken after bug #66694). + Fixed bug [#68207](http://bugs.php.net/68207) (Setting fastcgi.error\_header can result in a WARNING). + Fixed bug [GH-8517](https://github.com/php/php-src/issues/8517) (Random crash of FPM master process in fpm\_stdio\_child\_said). * MBString: + Fixed bug [GH-9535](https://github.com/php/php-src/issues/9535) (The behavior of mb\_strcut in mbstring has been changed in PHP8.1). * Opcache: + Fixed bug [GH-9968](https://github.com/php/php-src/issues/9968) (Segmentation Fault during OPCache Preload). * OpenSSL: + Fixed bug [GH-9064](https://github.com/php/php-src/issues/9064) (PHP fails to build if openssl was built with --no-ec). + Fixed bug [GH-10000](https://github.com/php/php-src/issues/10000) (OpenSSL test failures when OpenSSL compiled with no-dsa). * Pcntl: + Fixed bug [GH-9298](https://github.com/php/php-src/issues/9298) (Signal handler called after rshutdown leads to crash). * PDO\_Firebird: + Fixed bug [GH-9971](https://github.com/php/php-src/issues/9971) (Incorrect NUMERIC value returned from PDO\_Firebird). * PDO/SQLite: + Fixed bug [#81740](http://bugs.php.net/81740) (PDO::quote() may return unquoted string). (CVE-2022-31631) * Session: + Fixed [GH-9932](https://github.com/php/php-src/issues/9932) (session name silently fails with . and [). * SPL: + Fixed [GH-9883](https://github.com/php/php-src/issues/9883) (SplFileObject::\_\_toString() reads next line). + Fixed [GH-10011](https://github.com/php/php-src/issues/10011) (Trampoline autoloader will get reregistered and cannot be unregistered). * SQLite3: + Fixed bug [#81742](http://bugs.php.net/81742) (open\_basedir bypass in SQLite3 by using file URI). ##### Version 8.1.13 **24 Nov 2022** * CLI: + Fixed bug [GH-9709](https://github.com/php/php-src/issues/9709) (Null pointer dereference with -w/-s options). * Core: + Fixed bug [GH-9752](https://github.com/php/php-src/issues/9752) (Generator crashes when interrupted during argument evaluation with extra named params). + Fixed bug [GH-9801](https://github.com/php/php-src/issues/9801) (Generator crashes when memory limit is exceeded during initialization). + Fixed potential NULL pointer dereference Windows shm\*() functions. + Fixed bug [GH-9750](https://github.com/php/php-src/issues/9750) (Generator memory leak when interrupted during argument evaluation. * Date: + Fixed bug [GH-9763](https://github.com/php/php-src/issues/9763) (DateTimeZone ctr mishandles input and adds null byte if the argument is an offset larger than 100\*60 minutes). * FPM: + Fixed bug [GH-9754](https://github.com/php/php-src/issues/9754) (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11). * mysqli: + Fixed bug [GH-9841](https://github.com/php/php-src/issues/9841) (mysqli\_query throws warning despite using silenced error mode). * MySQLnd: + Fixed potential heap corruption due to alignment mismatch. * OpenSSL: + Fixed bug [GH-8430](https://github.com/php/php-src/issues/8430) (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build). * SOAP: + Fixed [GH-9720](https://github.com/php/php-src/issues/9720) (Null pointer dereference while serializing the response). ##### Version 8.1.12 **27 Oct 2022** * Core: + Fixes segfault with Fiber on FreeBSD i386 architecture. * Fileinfo: + Fixed bug [GH-8805](https://github.com/php/php-src/issues/8805) (finfo returns wrong mime type for woff/woff2 files). * GD: + Fixed bug [#81739](http://bugs.php.net/81739): OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630) * Hash: + Fixed bug [#81738](http://bugs.php.net/81738): buffer overflow in hash\_update() on long parameter. (CVE-2022-37454) * MBString: + Fixed bug [GH-9683](https://github.com/php/php-src/issues/9683) (Problem when ISO-2022-JP-MS is specified in mb\_ encode\_mimeheader). * Opcache: + Added indirect call reduction for jit on x86 architectures. * Session: + Fixed bug [GH-9583](https://github.com/php/php-src/issues/9583) (session\_create\_id() fails with user defined save handler that doesn't have a validateId() method). * Streams: + Fixed bug [GH-9590](https://github.com/php/php-src/issues/9590) (stream\_select does not abort upon exception or empty valid fd set). ##### Version 8.1.11 **29 Sep 2022** * Core: + Fixed bug [#81726](http://bugs.php.net/81726): phar wrapper: DOS when using quine gzip file. (CVE-2022-31628) + Fixed bug [#81727](http://bugs.php.net/81727): Don't mangle HTTP variable names that clash with ones that have a specific semantic meaning. (CVE-2022-31629) + Fixed bug [GH-9323](https://github.com/php/php-src/issues/9323) (Crash in ZEND\_RETURN/GC/zend\_call\_function) (Tim Starling) + Fixed bug [GH-9361](https://github.com/php/php-src/issues/9361) (Segmentation fault on script exit #9379). + Fixed bug [GH-9447](https://github.com/php/php-src/issues/9447) (Invalid class FQN emitted by AST dump for new and class constants in constant expressions). * DOM: + Fixed bug [#79451](http://bugs.php.net/79451) (DOMDocument->replaceChild on doctype causes double free). * FPM: + Fixed bug [GH-8885](https://github.com/php/php-src/issues/8885) (FPM access.log with stderr begins to write logs to error\_log after daemon reload). + Fixed bug [#77780](http://bugs.php.net/77780) ("Headers already sent..." when previous connection was aborted). * GMP: + Fixed bug [GH-9308](https://github.com/php/php-src/issues/9308) (GMP throws the wrong error when a GMP object is passed to gmp\_init()). * Intl: + Fixed bug [GH-9421](https://github.com/php/php-src/issues/9421) (Incorrect argument number for ValueError in NumberFormatter). * PCRE: + Fixed pcre.jit on Apple Silicon. * PDO\_PGSQL: + Fixed bug [GH-9411](https://github.com/php/php-src/issues/9411) (PgSQL large object resource is incorrectly closed). * Reflection: + Fixed bug [GH-8932](https://github.com/php/php-src/issues/8932) (ReflectionFunction provides no way to get the called class of a Closure). * Streams: + Fixed bug [GH-9316](https://github.com/php/php-src/issues/9316) ($http\_response\_header is wrong for long status line). ##### Version 8.1.10 **01 Sep 2022** * Core: + Fixed --CGI-- support of run-tests.php. + Fixed incorrect double to long casting in latest clang. + Fixed bug [GH-9266](https://github.com/php/php-src/issues/9266) (GC root buffer keeps growing when dtors are present). * Date: + Fixed bug [GH-8730](https://github.com/php/php-src/issues/8730) (DateTime::diff miscalculation is same time zone of different type). + Fixed bug [GH-8964](https://github.com/php/php-src/issues/8964) (DateTime object comparison after applying delta less than 1 second). + Fixed bug [GH-9106](https://github.com/php/php-src/issues/9106): (DateInterval 1.5s added to DateTimeInterface is rounded down since PHP 8.1.0). + Fixed bug [#81263](http://bugs.php.net/81263) (Wrong result from DateTimeImmutable::diff). * DBA: + Fixed LMDB driver memory leak on DB creation failure. + Fixed bug [GH-9155](https://github.com/php/php-src/issues/9155) (dba\_open("non-existing", "c-", "flatfile") segfaults). * IMAP: + Fixed bug [GH-9309](https://github.com/php/php-src/issues/9309) (Segfault when connection is used after imap\_close()). * Intl: + Fixed IntlDateFormatter::formatObject() parameter type. * MBString: + Fixed bug [GH-9008](https://github.com/php/php-src/issues/9008) (mb\_detect\_encoding(): wrong results with null $encodings). * OPcache: + Fixed bug [GH-9033](https://github.com/php/php-src/issues/9033) (Loading blacklist file can fail due to negative length). + Fixed bug [GH-9164](https://github.com/php/php-src/issues/9164) (Segfault in zend\_accel\_class\_hash\_copy). * PDO\_SQLite: + Fixed bug [GH-9032](https://github.com/php/php-src/issues/9032) (SQLite3 authorizer crashes on NULL values). * SQLite3: + Fixed bug [GH-9032](https://github.com/php/php-src/issues/9032) (SQLite3 authorizer crashes on NULL values). * Streams: + Fixed bug [GH-8472](https://github.com/php/php-src/issues/8472) (The resource returned by stream\_socket\_accept may have incorrect metadata). + Fixed bug [GH-8409](https://github.com/php/php-src/issues/8409) (SSL handshake timeout leaves persistent connections hanging). ##### Version 8.1.9 **04 Aug 2022** * CLI: + Fixed potential overflow for the builtin server via the PHP\_CLI\_SERVER\_WORKERS environment variable. + Fixed [GH-8952](https://github.com/php/php-src/issues/8952) (Intentionally closing std handles no longer possible). * Core: + Fixed bug [GH-8923](https://github.com/php/php-src/issues/8923) (error\_log on Windows can hold the file write lock). + Fixed bug [GH-8995](https://github.com/php/php-src/issues/8995) (WeakMap object reference offset causing TypeError). * Date: + Fixed bug [#80047](http://bugs.php.net/80047) (DatePeriod doesn't warn with custom DateTimeImmutable). * FPM: + Fixed zlog message prepend, free on incorrect address. + Fixed possible double free on configuration loading failure. (Heiko Weber). * GD: + Fixed bug [GH-8848](https://github.com/php/php-src/issues/8848) (imagecopyresized() error refers to the wrong argument). * Intl: + Fixed build for ICU 69.x and onwards. * OPcache: + Fixed bug [GH-8847](https://github.com/php/php-src/issues/8847) (PHP hanging infinitly at 100% cpu when check php syntax of a valid file). + Fixed bug [GH-8030](https://github.com/php/php-src/issues/8030) (Segfault with JIT and large match/switch statements). * Reflection: + Fixed bug [GH-8943](https://github.com/php/php-src/issues/8943) (Fixed Reflection::getModifierNames() with readonly modifier). * Standard: + Fixed the crypt\_sha256/512 api build with clang > 12. + Uses CCRandomGenerateBytes instead of arc4random\_buf on macOs. (David Carlier). + Fixed bug [GH-9017](https://github.com/php/php-src/issues/9017) (php\_stream\_sock\_open\_from\_socket could return NULL). ##### Version 8.1.8 **07 Jul 2022** * Core: + Fixed bug [GH-8338](https://github.com/php/php-src/issues/8338) (Intel CET is disabled unintentionally). + Fixed leak in Enum::from/tryFrom for internal enums when using JIT + Fixed calling internal methods with a static return type from extension code. + Fixed bug [GH-8655](https://github.com/php/php-src/issues/8655) (Casting an object to array does not unwrap refcount=1 references). + Fixed potential use after free in php\_binary\_init(). * CLI: + Fixed [GH-8827](https://github.com/php/php-src/issues/8827) (Intentionally closing std handles no longer possible). * COM: + Fixed bug [GH-8778](https://github.com/php/php-src/issues/8778) (Integer arithmethic with large number variants fails). * Curl: + Fixed CURLOPT\_TLSAUTH\_TYPE is not treated as a string option. * Date: + Fixed bug [#72963](http://bugs.php.net/72963) (Null-byte injection in CreateFromFormat and related functions). + Fixed bug [#74671](http://bugs.php.net/74671) (DST timezone abbreviation has incorrect offset). + Fixed bug [#77243](http://bugs.php.net/77243) (Weekdays are calculated incorrectly for negative years). + Fixed bug [#78139](http://bugs.php.net/78139) (timezone\_open accepts invalid timezone string argument). * Fileinfo: + Fixed bug [#81723](http://bugs.php.net/81723) (Heap buffer overflow in finfo\_buffer). (CVE-2022-31627) * FPM: + Fixed bug [#67764](http://bugs.php.net/67764) (fpm: syslog.ident don't work). * GD: + Fixed imagecreatefromavif() memory leak. * MBString: + mb\_detect\_encoding recognizes all letters in Czech alphabet + mb\_detect\_encoding recognizes all letters in Hungarian alphabet + Fixed bug [GH-8685](https://github.com/php/php-src/issues/8685) (pcre not ready at mbstring startup). + Backwards-compatible mappings for 0x5C/0x7E in Shift-JIS are restored, after they had been changed in 8.1.0. * ODBC: + Fixed handling of single-key connection strings. * OPcache: + Fixed bug [GH-8591](https://github.com/php/php-src/issues/8591) (tracing JIT crash after private instance method change). * OpenSSL: + Fixed bug [#50293](http://bugs.php.net/50293) (Several openssl functions ignore the VCWD). + Fixed bug [#81713](http://bugs.php.net/81713) (NULL byte injection in several OpenSSL functions working with certificates). * PDO\_ODBC: + Fixed handling of single-key connection strings. * Zip: + Fixed bug [GH-8781](https://github.com/php/php-src/issues/8781) (ZipArchive::close deletes zip file without updating stat cache). ##### Version 8.1.7 **09 Jun 2022** * CLI: + Fixed bug [GH-8575](https://github.com/php/php-src/issues/8575) (CLI closes standard streams too early). * Date: + Fixed bug [#51934](http://bugs.php.net/51934) (strtotime plurals / incorrect time). + Fixed bug [#51987](http://bugs.php.net/51987) (Datetime fails to parse an ISO 8601 ordinal date (extended format)). + Fixed bug [#66019](http://bugs.php.net/66019) (DateTime object does not support short ISO 8601 time format - YYYY-MM-DDTHH) + Fixed bug [#68549](http://bugs.php.net/68549) (Timezones and offsets are not properly used when working with dates) + Fixed bug [#81565](http://bugs.php.net/81565) (date parsing fails when provided with timezones including seconds). + Fixed bug [GH-7758](https://github.com/php/php-src/issues/7758) (Problems with negative timestamps and fractions). * FPM: + Fixed ACL build check on MacOS. + Fixed bug [#72185](http://bugs.php.net/72185): php-fpm writes empty fcgi record causing nginx 502. * mysqlnd: + Fixed bug [#81719](http://bugs.php.net/81719): mysqlnd/pdo password buffer overflow. (CVE-2022-31626) * OPcache: + Fixed bug [GH-8461](https://github.com/php/php-src/issues/8461) (tracing JIT crash after function/method change). * OpenSSL: + Fixed bug [#79589](http://bugs.php.net/79589) (error:14095126:SSL routines:ssl3\_read\_n:unexpected eof while reading). * Pcntl: + Fixed Haiku build. * pgsql: + Fixed bug [#81720](http://bugs.php.net/81720): Uninitialized array in pg\_query\_params(). (CVE-2022-31625) * Soap: + Fixed bug [GH-8578](https://github.com/php/php-src/issues/8578) (Error on wrong parameter on SoapHeader constructor). + Fixed bug [GH-8538](https://github.com/php/php-src/issues/8538) (SoapClient may strip parts of nmtokens). * SPL: + Fixed bug [GH-8235](https://github.com/php/php-src/issues/8235) (iterator\_count() may run indefinitely). * Standard: + Fixed bug [GH-8185](https://github.com/php/php-src/issues/8185) (Crash during unloading of extension after dl() in ZTS). * Zip: + Fixed type for index in ZipArchive::replaceFile. ##### Version 8.1.6 **12 May 2022** * Core: + Fixed bug [GH-8310](https://github.com/php/php-src/issues/8310) (Registry settings are no longer recognized). + Fixed potential race condition during resource ID allocation. + Fixed bug [GH-8133](https://github.com/php/php-src/issues/8133) (Preloading of constants containing arrays with enums segfaults). + Fixed Haiku ZTS builds. * Date: + Fixed bug [GH-7752](https://github.com/php/php-src/issues/7752) (DateTimeZone::getTransitions() returns insufficient data). + Fixed bug [GH-8108](https://github.com/php/php-src/issues/8108) (Timezone doesn't work as intended). + Fixed bug [#81660](http://bugs.php.net/81660) (DateTimeZone::getTransitions() returns invalid data). + Fixed bug [GH-8289](https://github.com/php/php-src/issues/8289) (Exceptions thrown within a yielded from iterator are not rethrown into the generator). * FFI: + Fixed bug [GH-8433](https://github.com/php/php-src/issues/8433) (Assigning function pointers to structs in FFI leaks). * FPM: + Fixed bug [#76003](http://bugs.php.net/76003) (FPM /status reports wrong number of active processe). + Fixed bug [#77023](http://bugs.php.net/77023) (FPM cannot shutdown processes). + Fixed comment in kqueue remove callback log message. * Hash: + Fixed bug [#81714](http://bugs.php.net/81714) (segfault when serializing finalized HashContext). * Iconv: + Fixed bug [GH-8218](https://github.com/php/php-src/issues/8218) (ob\_end\_clean does not reset Content-Encoding header). * Intl: + Fixed bug [GH-8364](https://github.com/php/php-src/issues/8364) (msgfmt\_format $values may not support references). * MBString: + Number of error markers emitted for invalid UTF-8 text matches WHATWG specification. This is a return to the behavior of PHP 8.0 and earlier. * MySQLi: + Fixed bug [GH-8267](https://github.com/php/php-src/issues/8267) (MySQLi uses unsupported format specifier on Windows). * SPL: + Fixed bug [GH-8366](https://github.com/php/php-src/issues/8366) (ArrayIterator may leak when calling \_\_construct()). + Fixed bug [GH-8273](https://github.com/php/php-src/issues/8273) (SplFileObject: key() returns wrong value). * Streams: + Fixed php://temp does not preserve file-position when switched to temporary file. * zlib: + Fixed bug [GH-8218](https://github.com/php/php-src/issues/8218) (ob\_end\_clean does not reset Content-Encoding header). ##### Version 8.1.5 **14 Apr 2022** * Core: + Fixed bug [GH-8176](https://github.com/php/php-src/issues/8176) (Enum values in property initializers leak). + Fixed freeing of internal attribute arguments. + Fixed bug [GH-8070](https://github.com/php/php-src/issues/8070) (memory leak of internal function attribute hash). + Fixed bug [GH-8160](https://github.com/php/php-src/issues/8160) (ZTS support on Alpine is broken). * Filter: + Fixed signedness confusion in php\_filter\_validate\_domain(). * Intl: + Fixed bug [GH-8115](https://github.com/php/php-src/issues/8115) (Can't catch arg type deprecation when instantiating Intl classes). + Fixed bug [GH-8142](https://github.com/php/php-src/issues/8142) (Compilation error on cygwin). + Fixed bug [GH-7734](https://github.com/php/php-src/issues/7734) (Fix IntlPartsIterator key off-by-one error and first key). * MBString: + Fixed bug [GH-8208](https://github.com/php/php-src/issues/8208) (mb\_encode\_mimeheader: $indent functionality broken). * MySQLi: + Fixed bug [GH-8068](https://github.com/php/php-src/issues/8068) (mysqli\_fetch\_object creates inaccessible properties). * Pcntl: + Fixed bug [GH-8142](https://github.com/php/php-src/issues/8142) (Compilation error on cygwin). * PgSQL: + Fixed result\_type related stack corruption on LLP64 architectures. + Fixed bug [GH-8253](https://github.com/php/php-src/issues/8253) (pg\_insert() fails for references). * Sockets: + Fixed Solaris builds. * SPL: + Fixed bug [GH-8121](https://github.com/php/php-src/issues/8121) (SplFileObject - seek and key with csv file inconsistent). + Fixed bug [GH-8192](https://github.com/php/php-src/issues/8192) (Cannot override DirectoryIterator::current() without return typehint in 8.1). * Standard: + Fixed bug [GH-8048](https://github.com/php/php-src/issues/8048) (Force macOS to use statfs). ##### Version 8.1.4 **17 Mar 2022** * Core: + Fixed Haiku ZTS build. + Fixed bug [GH-8059](https://github.com/php/php-src/issues/8059) arginfo not regenerated for extension. + Fixed bug [GH-8083](https://github.com/php/php-src/issues/8083) Segfault when dumping uncalled fake closure with static variables. + Fixed bug [GH-7958](https://github.com/php/php-src/issues/7958) (Nested CallbackFilterIterator is leaking memory). + Fixed bug [GH-8074](https://github.com/php/php-src/issues/8074) (Wrong type inference of range() result). + Fixed bug [GH-8140](https://github.com/php/php-src/issues/8140) (Wrong first class callable by name optimization). + Fixed bug [GH-8082](https://github.com/php/php-src/issues/8082) (op\_arrays with temporary run\_time\_cache leak memory when observed). * GD: + Fixed libpng warning when loading interlaced images. * FPM: + Fixed bug [#76109](http://bugs.php.net/76109) (Unsafe access to fpm scoreboard). * Iconv: + Fixed bug [GH-7953](https://github.com/php/php-src/issues/7953) (ob\_clean() only does not set Content-Encoding). + Fixed bug [GH-7980](https://github.com/php/php-src/issues/7980) (Unexpected result for iconv\_mime\_decode). * MBString: + Fixed bug [GH-8128](https://github.com/php/php-src/issues/8128) (mb\_check\_encoding wrong result for 7bit). * MySQLnd: + Fixed bug [GH-8058](https://github.com/php/php-src/issues/8058) (NULL pointer dereference in mysqlnd package). * Reflection: + Fixed bug [GH-8080](https://github.com/php/php-src/issues/8080) (ReflectionClass::getConstants() depends on def. order). * Zlib: + Fixed bug [GH-7953](https://github.com/php/php-src/issues/7953) (ob\_clean() only does not set Content-Encoding). ##### Version 8.1.3 **17 Feb 2022** * Core: + Fixed bug [#81430](http://bugs.php.net/81430) (Attribute instantiation leaves dangling pointer). + Fixed bug [GH-7896](https://github.com/php/php-src/issues/7896) (Environment vars may be mangled on Windows). + Fixed bug [GH-7883](https://github.com/php/php-src/issues/7883) (Segfault when INI file is not readable). * FFI: + Fixed bug [GH-7867](https://github.com/php/php-src/issues/7867) (FFI::cast() from pointer to array is broken). * Filter: + Fix #81708: UAF due to php\_filter\_float() failing for ints. (CVE-2021-21708) * FPM: + Fixed memory leak on invalid port. + Fixed bug [GH-7842](https://github.com/php/php-src/issues/7842) (Invalid OpenMetrics response format returned by FPM status page. * MBString: + Fixed bug [GH-7902](https://github.com/php/php-src/issues/7902) (mb\_send\_mail may delimit headers with LF only). * MySQLnd: + Fixed bug [GH-7972](https://github.com/php/php-src/issues/7972) (MariaDB version prefix 5.5.5- is not stripped). * pcntl: + Fixed pcntl\_rfork build for DragonFlyBSD. * Sockets: + Fixed bug [GH-7978](https://github.com/php/php-src/issues/7978) (sockets extension compilation errors). * Standard: + Fixed bug [GH-7899](https://github.com/php/php-src/issues/7899) (Regression in unpack for negative int value). + Fixed bug [GH-7875](https://github.com/php/php-src/issues/7875) (mails are sent even if failure to log throws exception). ##### Version 8.1.2 **20 Jan 2022** * Core: + Fixed bug [#81216](http://bugs.php.net/81216) (Nullsafe operator leaks dynamic property name). + Fixed bug [#81684](http://bugs.php.net/81684) (Using null coalesce assignment with $GLOBALS["x"] produces opcode error). + Fixed bug [#81656](http://bugs.php.net/81656) (GCC-11 silently ignores -R). + Fixed bug [#81683](http://bugs.php.net/81683) (Misleading "access type ... must be public" error message on final or abstract interface methods). + Fixed bug [#81585](http://bugs.php.net/81585) (cached\_chunks are not counted to real\_size on shutdown). + Fixed bug [GH-7757](https://github.com/php/php-src/issues/7757) (Multi-inherited final constant causes fatal error). + Fixed zend\_fibers.c build with ZEND\_FIBER\_UCONTEXT. + Added riscv64 support for fibers. * Filter: + Fixed FILTER\_FLAG\_NO\_RES\_RANGE flag. * Hash: + Fixed bug [GH-7759](https://github.com/php/php-src/issues/7759) (Incorrect return types for hash() and hash\_hmac()). + Fixed bug [GH-7826](https://github.com/php/php-src/issues/7826) (Inconsistent argument name in hash\_hmac\_file and hash\_file). * MBString: + Fixed bug [#81693](http://bugs.php.net/81693) (mb\_check\_encoding(7bit) segfaults). * MySQLi: + Fixed bug [#81658](http://bugs.php.net/81658) (MYSQL\_OPT\_LOAD\_DATA\_LOCAL\_DIR not available in MariaDB). + Introduced MYSQLI\_IS\_MARIADB. + Fixed bug [GH-7746](https://github.com/php/php-src/issues/7746) (mysqli\_sql\_exception->getSqlState()). * MySQLnd: + Fixed bug where large bigints may be truncated. * OCI8: + Fixed bug [GH-7765](https://github.com/php/php-src/issues/7765) (php\_oci\_cleanup\_global\_handles segfaults at second call). * OPcache: + Fixed bug [#81679](http://bugs.php.net/81679) (Tracing JIT crashes on reattaching). * Readline: + Fixed bug [#81598](http://bugs.php.net/81598) (Cannot input unicode characters in PHP 8 interactive shell). * Reflection: + Fixed bug [#81681](http://bugs.php.net/81681) (ReflectionEnum throwing exceptions). * PDO\_PGSQL: + Fixed error message allocation of PDO PgSQL. * Sockets: + Avoid void\* arithmetic in sockets/multicast.c on NetBSD. + Fixed ext/sockets build on Haiku. * Spl: + Fixed bug [#75917](http://bugs.php.net/75917) (SplFileObject::seek broken with CSV flags). + Fixed bug [GH-7809](https://github.com/php/php-src/issues/7809) (Cloning a faked SplFileInfo object may segfault). * Standard: + Fixed bug [GH-7748](https://github.com/php/php-src/issues/7748) (gethostbyaddr outputs binary string). + Fixed bug [GH-7815](https://github.com/php/php-src/issues/7815) (php\_uname doesn't recognise latest Windows versions). ##### Version 8.1.1 **02 Dec 2021** * IMAP: + Fixed bug [#81649](http://bugs.php.net/81649) (imap\_(un)delete accept sequences, not single numbers). * PCRE: + Update bundled PCRE2 to 10.39. + Fixed bug [#74604](http://bugs.php.net/74604) (Out of bounds in php\_pcre\_replace\_impl). * Standard: + Fixed bug [#81659](http://bugs.php.net/81659) (stream\_get\_contents() may unnecessarily overallocate). ##### Version 8.1.0 **25 Nov 2021** * Core: + Fixed inclusion order for phpize builds on Windows. + Added missing hashtable insertion APIs for arr/obj/ref. + Implemented FR [#77372](http://bugs.php.net/77372) (Relative file path is removed from uploaded file). + Fixed bug [#81607](http://bugs.php.net/81607) (CE\_CACHE allocation with concurrent access). + Fixed bug [#81507](http://bugs.php.net/81507) (Fiber does not compile on AIX). + Fixed bug [#78647](http://bugs.php.net/78647) (SEGFAULT in zend\_do\_perform\_implementation\_check). + Fixed bug [#81518](http://bugs.php.net/81518) (Header injection via default\_mimetype / default\_charset). + Fixed bug [#75941](http://bugs.php.net/75941) (Fix compile failure on Solaris with clang). + Fixed bug [#81380](http://bugs.php.net/81380) (Observer may not be initialized properly). + Fixed bug [#81514](http://bugs.php.net/81514) (Using Enum as key in WeakMap triggers GC + SegFault). + Fixed bug [#81520](http://bugs.php.net/81520) (TEST\_PHP\_CGI\_EXECUTABLE badly set in run-tests.php). + Fixed bug [#81377](http://bugs.php.net/81377) (unset() of $GLOBALS sub-key yields warning). + Fixed bug [#81342](http://bugs.php.net/81342) (New ampersand token parsing depends on new line after it). + Fixed bug [#81280](http://bugs.php.net/81280) (Unicode characters in cli.prompt causes segfault). + Fixed bug [#81192](http://bugs.php.net/81192) ("Declaration should be compatible with" gives incorrect line number with traits). + Fixed bug [#78919](http://bugs.php.net/78919) (CLI server: insufficient cleanup if request startup fails). + Fixed bug [#81303](http://bugs.php.net/81303) (match error message improvements). + Fixed bug [#81238](http://bugs.php.net/81238) (Fiber support missing for Solaris Sparc). + Fixed bug [#81237](http://bugs.php.net/81237) (Comparison of fake closures doesn't work). + Fixed bug [#81202](http://bugs.php.net/81202) (powerpc64 build fails on fibers). + Fixed bug [#80072](http://bugs.php.net/80072) (Cyclic unserialize in TMPVAR operand may leak). + Fixed bug [#81163](http://bugs.php.net/81163) (\_\_sleep allowed to return non-array). + Fixed bug [#75474](http://bugs.php.net/75474) (function scope static variables are not bound to a unique function). + Fixed bug [#53826](http://bugs.php.net/53826) (\_\_callStatic fired in base class through a parent call if the method is private). + Fixed bug [#81076](http://bugs.php.net/81076) (incorrect debug info on Closures with implicit binds). * CLI: + Fixed bug [#81496](http://bugs.php.net/81496) (Server logs incorrect request method). * COM: + Dispatch using LANG\_NEUTRAL instead of LOCALE\_SYSTEM\_DEFAULT. * Curl: + Fixed bug [#81085](http://bugs.php.net/81085) (Support CURLOPT\_SSLCERT\_BLOB for cert strings). * Date: + Fixed bug [#81458](http://bugs.php.net/81458) (Regression Incorrect difference after timezone change). + Fixed bug [#81500](http://bugs.php.net/81500) (Interval serialization regression since 7.3.14 / 7.4.2). + Fixed bug [#81504](http://bugs.php.net/81504) (Incorrect timezone transition details for POSIX data). + Fixed bug [#80998](http://bugs.php.net/80998) (Missing second with inverted interval). + Speed up finding timezone offset information. + Fixed bug [#79580](http://bugs.php.net/79580) (date\_create\_from\_format misses leap year). + Fixed bug [#80963](http://bugs.php.net/80963) (DateTimeZone::getTransitions() truncated). + Fixed bug [#80974](http://bugs.php.net/80974) (Wrong diff between 2 dates in different timezones). + Fixed bug [#80998](http://bugs.php.net/80998) (Missing second with inverted interval). + Fixed bug [#81097](http://bugs.php.net/81097) (DateTimeZone silently falls back to UTC when providing an offset with seconds). + Fixed bug [#81106](http://bugs.php.net/81106) (Regression in 8.1: add() now truncate ->f). + Fixed bug [#81273](http://bugs.php.net/81273) (Date interval calculation not correct). + Fixed bug [#52480](http://bugs.php.net/52480) (Incorrect difference using DateInterval). + Fixed bug [#62326](http://bugs.php.net/62326) (date\_diff() function returns false result). + Fixed bug [#64992](http://bugs.php.net/64992) (dst not handled past 2038). + Fixed bug [#65003](http://bugs.php.net/65003) (Wrong date diff). + Fixed bug [#66545](http://bugs.php.net/66545) (DateTime. diff returns negative values). + Fixed bug [#68503](http://bugs.php.net/68503) (date\_diff on two dates with timezone set localised returns wrong results). + Fixed bug [#69806](http://bugs.php.net/69806) (Incorrect date from timestamp). + Fixed bug [#71700](http://bugs.php.net/71700) (Extra day on diff between begin and end of march 2016). + Fixed bug [#71826](http://bugs.php.net/71826) (DateTime::diff confuse on timezone 'Asia/Tokyo'). + Fixed bug [#73460](http://bugs.php.net/73460) (Datetime add not realising it already applied DST change). + Fixed bug [#74173](http://bugs.php.net/74173) (DateTimeImmutable::getTimestamp() triggers DST switch in incorrect time). + Fixed bug [#74274](http://bugs.php.net/74274) (Handling DST transitions correctly). + Fixed bug [#74524](http://bugs.php.net/74524) (Date diff is bad calculated, in same time zone). + Fixed bug [#75167](http://bugs.php.net/75167) (DateTime::add does only care about backward DST transition, not forward). + Fixed bug [#76032](http://bugs.php.net/76032) (DateTime->diff having issues with leap days for timezones ahead of UTC). + Fixed bug [#76374](http://bugs.php.net/76374) (Date difference varies according day time). + Fixed bug [#77571](http://bugs.php.net/77571) (DateTime's diff DateInterval incorrect in timezones from UTC+01:00 to UTC+12:00). + Fixed bug [#78452](http://bugs.php.net/78452) (diff makes wrong in hour for Asia/Tehran). + Fixed bug [#79452](http://bugs.php.net/79452) (DateTime::diff() generates months differently between time zones). + Fixed bug [#79698](http://bugs.php.net/79698) (timelib mishandles future timestamps (triggered by 'zic -b slim')). + Fixed bug [#79716](http://bugs.php.net/79716) (Invalid date time created (with day "00")). + Fixed bug [#80610](http://bugs.php.net/80610) (DateTime calculate wrong with DateInterval). + Fixed bug [#80664](http://bugs.php.net/80664) (DateTime objects behave incorrectly around DST transition). + Fixed bug [#80913](http://bugs.php.net/80913) (DateTime(Immutable)::sub around DST yield incorrect time). * DBA: + Fixed bug [#81588](http://bugs.php.net/81588) (TokyoCabinet driver leaks memory). * DOM: + Fixed bug [#81433](http://bugs.php.net/81433) (DOMElement::setIdAttribute() called twice may remove ID). * FFI: + Fixed bug [#79576](http://bugs.php.net/79576) ("TYPE \*" shows unhelpful message when type is not defined). * Filter: + Fixed bug [#61700](http://bugs.php.net/61700) (FILTER\_FLAG\_IPV6/FILTER\_FLAG\_NO\_PRIV|RES\_RANGE failing). * FPM: + Fixed bug [#81513](http://bugs.php.net/81513) (Future possibility for heap overflow in FPM zlog). + Fixed bug [#81026](http://bugs.php.net/81026) (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703). + Added openmetrics status format. + Enable process renaming on macOS. + Added pm.max\_spawn\_rate option to configure max spawn child processes rate. + Fixed bug [#65800](http://bugs.php.net/65800) (Events port mechanism). * FTP: + Convert resource<ftp> to object \FTP\Connection. * GD: + Fixed bug [#71316](http://bugs.php.net/71316) (libpng warning from imagecreatefromstring). + Convert resource<gd font> to object \GdFont. + Added support for Avif images * hash: + Implemented FR [#68109](http://bugs.php.net/68109) (Add MurmurHash V3). + Implemented FR [#73385](http://bugs.php.net/73385) (Add xxHash support). * JSON: + Fixed bug [#81532](http://bugs.php.net/81532) (Change of $depth behaviour in json\_encode() on PHP 8.1). * LDAP: + Convert resource<ldap link> to object \LDAP\Connection. + Convert resource<ldap result> to object \LDAP\Result. + Convert resource<ldap result entry> to object \LDAP\ResultEntry. * MBString: + Fixed bug [#76167](http://bugs.php.net/76167) (mbstring may use pointer from some previous request). + Fixed bug [#81390](http://bugs.php.net/81390) (mb\_detect\_encoding() regression). + Fixed bug [#81349](http://bugs.php.net/81349) (mb\_detect\_encoding misdetcts ASCII in some cases). + Fixed bug [#81298](http://bugs.php.net/81298) (mb\_detect\_encoding() segfaults when 7bit encoding is specified). * MySQLi: + Fixed bug [#70372](http://bugs.php.net/70372) (Emulate mysqli\_fetch\_all() for libmysqlclient). + Fixed bug [#80330](http://bugs.php.net/80330) (Replace language in APIs and source code/docs). + Fixed bug [#80329](http://bugs.php.net/80329) (Add option to specify LOAD DATA LOCAL white list folder (including libmysql)). * MySQLnd: + Fixed bug [#63327](http://bugs.php.net/63327) (Crash (Bus Error) in mysqlnd due to wrong alignment). + Fixed bug [#80761](http://bugs.php.net/80761) (PDO uses too much memory). * Opcache: + Fixed bug [#81409](http://bugs.php.net/81409) (Incorrect JIT code for ADD with a reference to array). + Fixed bug [#81255](http://bugs.php.net/81255) (Memory leak in PHPUnit with functional JIT). + Fixed bug [#80959](http://bugs.php.net/80959) (infinite loop in building cfg during JIT compilation). + Fixed bug [#81225](http://bugs.php.net/81225) (Wrong result with pow operator with JIT enabled). + Fixed bug [#81249](http://bugs.php.net/81249) (Intermittent property assignment failure with JIT enabled). + Fixed bug [#81256](http://bugs.php.net/81256) (Assertion `zv != ((void \*)0)' failed for "preload" with JIT). + Fixed bug [#81133](http://bugs.php.net/81133) (building opcache with phpize fails). + Fixed bug [#81136](http://bugs.php.net/81136) (opcache header not installed). + Added inheritance cache. * OpenSSL: + Fixed bug [#81502](http://bugs.php.net/81502) ($tag argument of openssl\_decrypt() should accept null/empty string). + Bump minimal OpenSSL version to 1.0.2. * PCRE: + Fixed bug [#81424](http://bugs.php.net/81424) (PCRE2 10.35 JIT performance regression). + Bundled PCRE2 is 10.37. * PDO: + Fixed bug [#40913](http://bugs.php.net/40913) (PDO\_MYSQL: PDO::PARAM\_LOB does not bind to a stream for fetching a BLOB). * PDO MySQL: + Fixed bug [#80908](http://bugs.php.net/80908) (PDO::lastInsertId() return wrong). + Fixed bug [#81037](http://bugs.php.net/81037) (PDO discards error message text from prepared statement). * PDO OCI: + Fixed bug [#77120](http://bugs.php.net/77120) (Support 'success with info' at connection). * PDO ODBC: + Implement PDO\_ATTR\_SERVER\_VERSION and PDO\_ATTR\_SERVER\_INFO for PDO::getAttribute(). * PDO PgSQL: + Fixed bug [#81343](http://bugs.php.net/81343) (pdo\_pgsql: Inconsitent boolean conversion after calling closeCursor()). * PDO SQLite: + Fixed bug [#38334](http://bugs.php.net/38334) (Proper data-type support for PDO\_SQLITE). * PgSQL: + Fixed bug [#81509](http://bugs.php.net/81509) (pg\_end\_copy still expects a resource). + Convert resource<pgsql link> to object \PgSql\Connection. + Convert resource<pgsql result> to object \PgSql\Result. + Convert resource<pgsql large object> to object \PgSql\Lob. * Phar: + Use SHA256 by default for signature. + Add support for OpenSSL\_SHA256 and OpenSSL\_SHA512 signature. * phpdbg: + Fixed bug [#81135](http://bugs.php.net/81135) (unknown help topic causes assertion failure). * PSpell: + Convert resource<pspell> to object \PSpell\Dictionary. + Convert resource<pspell config> to object \PSpell\Config. * readline: + Fixed bug [#72998](http://bugs.php.net/72998) (invalid read in readline completion). * Reflection: + Fixed bug [#81611](http://bugs.php.net/81611) (ArgumentCountError when getting default value from ReflectionParameter with new). + Fixed bug [#81630](http://bugs.php.net/81630) (PHP 8.1: ReflectionClass->getTraitAliases() crashes with Internal error). + Fixed bug [#81457](http://bugs.php.net/81457) (Enum: ReflectionMethod->getDeclaringClass() return a ReflectionClass). + Fixed bug [#81474](http://bugs.php.net/81474) (Make ReflectionEnum and related class non-final). + Fixed bug [#80821](http://bugs.php.net/80821) (ReflectionProperty::getDefaultValue() returns current value for statics). + Fixed bug [#80564](http://bugs.php.net/80564) (ReflectionProperty::\_\_toString() renders current value, not default value). + Fixed bug [#80097](http://bugs.php.net/80097) (ReflectionAttribute is not a Reflector). + Fixed bug [#81200](http://bugs.php.net/81200) (no way to determine if Closure is static). + Implement ReflectionFunctionAbstract::getClosureUsedVariables. * Shmop: + Fixed bug [#81407](http://bugs.php.net/81407) (shmop\_open won't attach and causes php to crash). * SimpleXML: + Fixed bug [#81325](http://bugs.php.net/81325) (Segfault in zif\_simplexml\_import\_dom). * SNMP: + Implement SHA256 and SHA512 for security protocol. * Sodium: + Added the XChaCha20 stream cipher functions. + Added the Ristretto255 functions, which are available in libsodium 1.0.18. * SPL: + Fixed bug [#66588](http://bugs.php.net/66588) (SplFileObject::fgetcsv incorrectly returns a row on premature EOF). + Fixed bug [#80663](http://bugs.php.net/80663) (Recursive SplFixedArray::setSize() may cause double-free). + Fixed bug [#81477](http://bugs.php.net/81477) (LimitIterator + SplFileObject regression in 8.0.1). + Fixed bug [#81112](http://bugs.php.net/81112) (Special json\_encode behavior for SplFixedArray). + Fixed bug [#80945](http://bugs.php.net/80945) ("Notice: Undefined index" on unset() ArrayObject non-existing key). + Fixed bug [#80724](http://bugs.php.net/80724) (FilesystemIterator::FOLLOW\_SYMLINKS remove KEY\_AS\_FILE from bitmask). * Standard: + Fixed bug [#81441](http://bugs.php.net/81441) (gethostbyaddr('::1') returns ip instead of name after calling some other method). + Fixed bug [#81491](http://bugs.php.net/81491) (Incorrectly using libsodium for argon2 hashing). + Fixed bug [#81142](http://bugs.php.net/81142) (PHP 7.3+ memory leak when unserialize() is used on an associative array). + Fixed bug [#81111](http://bugs.php.net/81111) (Serialization is unexpectedly allowed on anonymous classes with \_\_serialize()). + Fixed bug [#81137](http://bugs.php.net/81137) (hrtime breaks build on OSX before Sierra). + Fixed bug [#77627](http://bugs.php.net/77627) (method\_exists on Closure::\_\_invoke inconsistency). * Streams: + Fixed bug [#81475](http://bugs.php.net/81475) (stream\_isatty emits warning with attached stream wrapper). * XML: + Fixed bug [#79971](http://bugs.php.net/79971) (special character is breaking the path in xml function) (CVE-2021-21707). + Fixed bug [#70962](http://bugs.php.net/70962) (XML\_OPTION\_SKIP\_WHITE strips embedded whitespace). * Zip: + Fixed bug [#81490](http://bugs.php.net/81490) (ZipArchive::extractTo() may leak memory). + Fixed bug [#77978](http://bugs.php.net/77978) (Dirname ending in colon unzips to wrong dir). + Fixed bug [#81420](http://bugs.php.net/81420) (ZipArchive::extractTo extracts outside of destination) (CVE-2021-21706). + Fixed bug [#80833](http://bugs.php.net/80833) (ZipArchive::getStream doesn't use setPassword). ##### Version 8.0.30 **03 Aug 2023** * Libxml: + Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823) * Phar: + Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar\_dir\_read()). (CVE-2023-3824) ##### Version 8.0.29 **08 Jun 2023** * Soap: + Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247) ##### Version 8.0.28 **14 Feb 2023** * Core: + Fixed bug [#81744](http://bugs.php.net/81744) (Password\_verify() always return true with some hash). + Fixed bug [#81746](http://bugs.php.net/81746) (1-byte array overrun in common path resolve code). * SAPI: + Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662) ##### Version 8.0.27 **05 Jan 2023** * PDO/SQLite: + Fixed bug [#81740](http://bugs.php.net/81740) (PDO::quote() may return unquoted string). (CVE-2022-31631) ##### Version 8.0.26 **24 Nov 2022** * CLI: + Fixed bug [GH-9709](https://github.com/php/php-src/issues/9709) (Null pointer dereference with -w/-s options). * Core: + Fixed bug [GH-9752](https://github.com/php/php-src/issues/9752) (Generator crashes when interrupted during argument evaluation with extra named params). + Fixed bug [GH-9801](https://github.com/php/php-src/issues/9801) (Generator crashes when memory limit is exceeded during initialization). + Fixed potential NULL pointer dereference in Windows shm\*() functions. + Fixed bug [GH-9750](https://github.com/php/php-src/issues/9750) (Generator memory leak when interrupted during argument evaluation. * Date: + Fixed bug [GH-9763](https://github.com/php/php-src/issues/9763) (DateTimeZone ctr mishandles input and adds null byte if the argument is an offset larger than 100\*60 minutes). * FPM: + Fixed bug [GH-9754](https://github.com/php/php-src/issues/9754) (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11). * mysqli: + Fixed bug [GH-9841](https://github.com/php/php-src/issues/9841) (mysqli\_query throws warning despite using silenced error mode). * OpenSSL: + Fixed bug [GH-8430](https://github.com/php/php-src/issues/8430) (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build). * SOAP: + Fixed [GH-9720](https://github.com/php/php-src/issues/9720) (Null pointer dereference while serializing the response). ##### Version 8.0.25 **27 Oct 2022** * GD: + Fixed bug [#81739](http://bugs.php.net/81739): OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630) * Hash: + Fixed bug [#81738](http://bugs.php.net/81738): buffer overflow in hash\_update() on long parameter. (CVE-2022-37454) * Session: + Fixed bug [GH-9583](https://github.com/php/php-src/issues/9583) (session\_create\_id() fails with user defined save handler that doesn't have a validateId() method). * Streams: + Fixed bug [GH-9590](https://github.com/php/php-src/issues/9590) (stream\_select does not abort upon exception or empty valid fd set). ##### Version 8.0.24 **29 Sep 2022** * Core: + Fixed bug [GH-9323](https://github.com/php/php-src/issues/9323) (Crash in ZEND\_RETURN/GC/zend\_call\_function) (Tim Starling) + Fixed bug [GH-9361](https://github.com/php/php-src/issues/9361) (Segmentation fault on script exit #9379). + Fixed bug [GH-9407](https://github.com/php/php-src/issues/9407) (LSP error in eval'd code refers to wrong class for static type). + Fixed bug [#81727](http://bugs.php.net/81727): Don't mangle HTTP variable names that clash with ones that have a specific semantic meaning. (CVE-2022-31629) * DOM: + Fixed bug [#79451](http://bugs.php.net/79451) (DOMDocument->replaceChild on doctype causes double free). * FPM: + Fixed bug [GH-8885](https://github.com/php/php-src/issues/8885) (FPM access.log with stderr begins to write logs to error\_log after daemon reload). + Fixed bug [#77780](http://bugs.php.net/77780) ("Headers already sent..." when previous connection was aborted). * GMP: + Fixed bug [GH-9308](https://github.com/php/php-src/issues/9308) (GMP throws the wrong error when a GMP object is passed to gmp\_init()). * Intl: + Fixed bug [GH-9421](https://github.com/php/php-src/issues/9421) (Incorrect argument number for ValueError in NumberFormatter). * Phar: + Fixed bug [#81726](http://bugs.php.net/81726): phar wrapper: DOS when using quine gzip file. (CVE-2022-31628) * PDO\_PGSQL: + Fixed bug [GH-9411](https://github.com/php/php-src/issues/9411) (PgSQL large object resource is incorrectly closed). * Reflection: + Fixed bug [GH-8932](https://github.com/php/php-src/issues/8932) (ReflectionFunction provides no way to get the called class of a Closure). + Fixed bug [GH-9409](https://github.com/php/php-src/issues/9409) (Private method is incorrectly dumped as "overwrites"). * Streams: + Fixed bug [GH-9316](https://github.com/php/php-src/issues/9316) ($http\_response\_header is wrong for long status line). ##### Version 8.0.23 **01 Sep 2022** * Core: + Fixed incorrect double to long casting in latest clang. * DBA: + Fixed LMDB driver memory leak on DB creation failure. + Fixed bug [GH-9155](https://github.com/php/php-src/issues/9155) (dba\_open("non-existing", "c-", "flatfile") segfaults). * Intl: + Fixed IntlDateFormatter::formatObject() parameter type. * OPcache: + Fixed bug [GH-9033](https://github.com/php/php-src/issues/9033) (Loading blacklist file can fail due to negative length). * PDO\_SQLite: + Fixed bug [GH-9032](https://github.com/php/php-src/issues/9032) (SQLite3 authorizer crashes on NULL values). * SQLite3: + Fixed bug [GH-9032](https://github.com/php/php-src/issues/9032) (SQLite3 authorizer crashes on NULL values). * Standard: + Fixed bug [GH-9017](https://github.com/php/php-src/issues/9017) (php\_stream\_sock\_open\_from\_socket could return NULL). * Streams: + Fixed bug [GH-8472](https://github.com/php/php-src/issues/8472) (The resource returned by stream\_socket\_accept may have incorrect metadata). + Fixed bug [GH-8409](https://github.com/php/php-src/issues/8409) (SSL handshake timeout leaves persistent connections hanging). ##### Version 8.0.22 **04 Aug 2022** * CLI: + Fixed potential overflow for the builtin server via the PHP\_CLI\_SERVER\_WORKERS environment variable. * Core: + Fixed bug [GH-8923](https://github.com/php/php-src/issues/8923) (error\_log on Windows can hold the file write lock). + Fixed bug [GH-8995](https://github.com/php/php-src/issues/8995) (WeakMap object reference offset causing TypeError). * Date: + Fixed bug [#80047](http://bugs.php.net/80047) (DatePeriod doesn't warn with custom DateTimeImmutable). * DBA: + Fixed LMDB driver hanging when attempting to delete a non-existing key. * FPM: + Fixed zlog message prepend, free on incorrect address. + Fixed possible double free on configuration loading failure. * GD: + Fixed bug [GH-8848](https://github.com/php/php-src/issues/8848) (imagecopyresized() error refers to the wrong argument). * Intl: + Fixed build for ICU 69.x and onwards. * OPcache: + Fixed bug [GH-8847](https://github.com/php/php-src/issues/8847) (PHP hanging infinitly at 100% cpu when check php syntaxe of a valid file). * Standard: + Fixed the crypt\_sha256/512 api build with clang > 12. + Uses CCRandomGenerateBytes instead of arc4random\_buf on macOs. ##### Version 8.0.21 **07 Jul 2022** * Core: + Fixed potential use after free in php\_binary\_init(). * CLI: + Fixed [GH-8827](https://github.com/php/php-src/issues/8827) (Intentionally closing std handles no longer possible). * COM: + Fixed bug [GH-8778](https://github.com/php/php-src/issues/8778) (Integer arithmethic with large number variants fails). * Curl: + Fixed CURLOPT\_TLSAUTH\_TYPE is not treated as a string option. * Date: + Fixed bug [#74671](http://bugs.php.net/74671) (DST timezone abbreviation has incorrect offset). + Fixed bug [#77243](http://bugs.php.net/77243) (Weekdays are calculated incorrectly for negative years). + Fixed bug [#78139](http://bugs.php.net/78139) (timezone\_open accepts invalid timezone string argument). * FPM: + Fixed bug [#67764](http://bugs.php.net/67764) (fpm: syslog.ident don't work). * MBString: + Fixed bug [GH-8685](https://github.com/php/php-src/issues/8685) (pcre not ready at mbstring startup). * ODBC: + Fixed handling of single-key connection strings. * OpenSSL: + Fixed bug [#50293](http://bugs.php.net/50293) (Several openssl functions ignore the VCWD). + Fixed bug [#81713](http://bugs.php.net/81713) (NULL byte injection in several OpenSSL functions working with certificates). * PDO\_ODBC: + Fixed errorInfo() result on successful PDOStatement->execute(). + Fixed handling of single-key connection strings. * Zip: + Fixed bug [GH-8781](https://github.com/php/php-src/issues/8781) (ZipArchive::close deletes zip file without updating stat cache). ##### Version 8.0.20 **09 Jun 2022** * CLI: + Fixed bug [GH-8575](https://github.com/php/php-src/issues/8575) (CLI closes standard streams too early). * Core: + Fixed Haiku ZTS builds. * Date: + Fixed bug [GH-8471](https://github.com/php/php-src/issues/8471) (Segmentation fault when converting immutable and mutable DateTime instances created using reflection). * FPM: + Fixed ACL build check on MacOS. + Fixed bug [#72185](http://bugs.php.net/72185): php-fpm writes empty fcgi record causing nginx 502. * Mysqlnd: + Fixed bug [#81719](http://bugs.php.net/81719): mysqlnd/pdo password buffer overflow. (CVE-2022-31626) * OPcache: + Fixed bug [GH-8466](https://github.com/php/php-src/issues/8466) (ini\_get() is optimized out when the option does not exist). * Pcntl: + Fixed Haiku build. * Pgsql: + Fixed bug [#81720](http://bugs.php.net/81720): Uninitialized array in pg\_query\_params(). (CVE-2022-31625) * Soap: + Fixed bug [GH-8578](https://github.com/php/php-src/issues/8578) (Error on wrong parameter on SoapHeader constructor). + Fixed bug [GH-8538](https://github.com/php/php-src/issues/8538) (SoapClient may strip parts of nmtokens). * SPL: + Fixed bug [GH-8235](https://github.com/php/php-src/issues/8235) (iterator\_count() may run indefinitely). * Zip: + Fixed type for index in ZipArchive::replaceFile. ##### Version 8.0.19 **12 May 2022** * Core: + Fixed bug [GH-8289](https://github.com/php/php-src/issues/8289) (Exceptions thrown within a yielded from iterator are not rethrown into the generator). * Date: + Fixed bug [GH-7979](https://github.com/php/php-src/issues/7979) (DatePeriod iterator advances when checking if valid). * FFI: + Fixed bug [GH-8433](https://github.com/php/php-src/issues/8433) (Assigning function pointers to structs in FFI leaks). * FPM: + Fixed bug [#76003](http://bugs.php.net/76003) (FPM /status reports wrong number of active processe). + Fixed bug [#77023](http://bugs.php.net/77023) (FPM cannot shutdown processes). + Fixed comment in kqueue remove callback log message. * Iconv: + Fixed bug [GH-8218](https://github.com/php/php-src/issues/8218) (ob\_end\_clean does not reset Content-Encoding header). * Intl: + Fixed bug [GH-8364](https://github.com/php/php-src/issues/8364) (msgfmt\_format $values may not support references). * MySQLi: + Fixed bug [GH-8267](https://github.com/php/php-src/issues/8267) (MySQLi uses unsupported format specifier on Windows). * SPL: + Fixed bug [GH-8366](https://github.com/php/php-src/issues/8366) (ArrayIterator may leak when calling \_\_construct()). + Fixed bug [GH-8273](https://github.com/php/php-src/issues/8273) (SplFileObject: key() returns wrong value). * Streams: + Fixed php://temp does not preserve file-position when switched to temporary file. * zlib: + Fixed bug [GH-8218](https://github.com/php/php-src/issues/8218) (ob\_end\_clean does not reset Content-Encoding header). ##### Version 8.0.18 **14 Apr 2022** * Core: + Fixed freeing of internal attribute arguments. + Fixed bug [GH-8070](https://github.com/php/php-src/issues/8070) (memory leak of internal function attribute hash). + Fixed bug [GH-8160](https://github.com/php/php-src/issues/8160) (ZTS support on Alpine is broken). * Filter: + Fixed signedness confusion in php\_filter\_validate\_domain(). * Intl: + Fixed bug [GH-8142](https://github.com/php/php-src/issues/8142) (Compilation error on cygwin). * MBString: + Fixed bug [GH-8208](https://github.com/php/php-src/issues/8208) (mb\_encode\_mimeheader: $indent functionality broken). * MySQLi: + Fixed bug [GH-8068](https://github.com/php/php-src/issues/8068) (mysqli\_fetch\_object creates inaccessible properties). * Pcntl: + Fixed bug [GH-8142](https://github.com/php/php-src/issues/8142) (Compilation error on cygwin). * PgSQL: + Fixed result\_type related stack corruption on LLP64 architectures. + Fixed bug [GH-8253](https://github.com/php/php-src/issues/8253) (pg\_insert() fails for references). * Sockets: + Fixed Solaris builds. * SPL: + Fixed bug [GH-8121](https://github.com/php/php-src/issues/8121) (SplFileObject - seek and key with csv file inconsistent). * Standard: + Fixed bug [GH-8048](https://github.com/php/php-src/issues/8048) (Force macOS to use statfs). ##### Version 8.0.17 **17 Mar 2022** * Core: + Fixed Haiku ZTS build. * GD: + Fixed libpng warning when loading interlaced images. * FPM: + Fixed bug [#76109](http://bugs.php.net/76109) (Unsafe access to fpm scoreboard). * Iconv: + Fixed bug [GH-7953](https://github.com/php/php-src/issues/7953) (ob\_clean() only does not set Content-Encoding). + Fixed bug [GH-7980](https://github.com/php/php-src/issues/7980) (Unexpected result for iconv\_mime\_decode). * MySQLnd: + Fixed bug [GH-8058](https://github.com/php/php-src/issues/8058) (NULL pointer dereference in mysqlnd package). * OPcache: + Fixed bug [GH-8074](https://github.com/php/php-src/issues/8074) (Wrong type inference of range() result). * Reflection: + Fixed bug [GH-8080](https://github.com/php/php-src/issues/8080) (ReflectionClass::getConstants() depends on def. order). * Zlib: + Fixed bug [GH-7953](https://github.com/php/php-src/issues/7953) (ob\_clean() only does not set Content-Encoding). ##### Version 8.0.16 **17 Feb 2022** * Core: + Fixed bug [#81430](http://bugs.php.net/81430) (Attribute instantiation leaves dangling pointer). + Fixed bug [GH-7896](https://github.com/php/php-src/issues/7896) (Environment vars may be mangled on Windows). * FFI: + Fixed bug [GH-7867](https://github.com/php/php-src/issues/7867) (FFI::cast() from pointer to array is broken). * Filter: + Fix #81708: UAF due to php\_filter\_float() failing for ints. * FPM: + Fixed memory leak on invalid port. * MBString: + Fixed bug [GH-7902](https://github.com/php/php-src/issues/7902) (mb\_send\_mail may delimit headers with LF only). * MySQLnd: + Fixed bug [GH-7972](https://github.com/php/php-src/issues/7972) (MariaDB version prefix 5.5.5- is not stripped). * Sockets: + Fixed ext/sockets build on Haiku. + Fixed bug [GH-7978](https://github.com/php/php-src/issues/7978) (sockets extension compilation errors). * Standard: + Fixed bug [GH-7875](https://github.com/php/php-src/issues/7875) (mails are sent even if failure to log throws exception). ##### Version 8.0.15 **20 Jan 2022** * Core: + Fixed bug [#81656](http://bugs.php.net/81656) (GCC-11 silently ignores -R). + Fixed bug [#81585](http://bugs.php.net/81585) (cached\_chunks are not counted to real\_size on shutdown). * Filter: + Fixed FILTER\_FLAG\_NO\_RES\_RANGE flag. * Hash: + Fixed bug [GH-7759](https://github.com/php/php-src/issues/7759) (Incorrect return types for hash() and hash\_hmac()). + Fixed bug [GH-7826](https://github.com/php/php-src/issues/7826) (Inconsistent argument name in hash\_hmac\_file and hash\_file). * MySQLnd: + Fixed bug where large bigints may be truncated. * OCI8: + Fixed bug [GH-7765](https://github.com/php/php-src/issues/7765) (php\_oci\_cleanup\_global\_handles segfaults at second call). * OPcache: + Fixed bug [#81679](http://bugs.php.net/81679) (Tracing JIT crashes on reattaching). * PDO\_PGSQL: + Fixed error message allocation of PDO PgSQL. * Sockets: + Avoid void\* arithmetic in sockets/multicast.c on NetBSD. * Spl: + Fixed bug [#75917](http://bugs.php.net/75917) (SplFileObject::seek broken with CSV flags). ##### Version 8.0.14 **16 Dec 2021** * Core: + Fixed bug [#81582](http://bugs.php.net/81582) (Stringable not implicitly declared if \_\_toString() came from a trait). + Fixed bug [#81591](http://bugs.php.net/81591) (Fatal Error not properly logged in particular cases). + Fixed bug [#81626](http://bugs.php.net/81626) (Error on use static:: in \_\_ัallStatic() wrapped to Closure::fromCallable()). + Fixed bug [#81631](http://bugs.php.net/81631) (::class with dynamic class name may yield wrong line number). * FPM: + Fixed bug [#81513](http://bugs.php.net/81513) (Future possibility for heap overflow in FPM zlog). * GD: + Fixed bug [#71316](http://bugs.php.net/71316) (libpng warning from imagecreatefromstring). * IMAP: + Fixed bug [#81649](http://bugs.php.net/81649) (imap\_(un)delete accept sequences, not single numbers). * OpenSSL: + Fixed bug [#75725](http://bugs.php.net/75725) (./configure: detecting RAND\_egd). * PCRE: + Fixed bug [#74604](http://bugs.php.net/74604) (Out of bounds in php\_pcre\_replace\_impl). * SPL: + Fixed bug [#81587](http://bugs.php.net/81587) (MultipleIterator Segmentation fault w/ SimpleXMLElement attached). * Standard: + Fixed bug [#81618](http://bugs.php.net/81618) (dns\_get\_record fails on FreeBSD for missing type). + Fixed bug [#81659](http://bugs.php.net/81659) (stream\_get\_contents() may unnecessarily overallocate). ##### Version 8.0.13 **18 Nov 2021** * Core: + Fixed bug [#81518](http://bugs.php.net/81518) (Header injection via default\_mimetype / default\_charset). * Date: + Fixed bug [#81500](http://bugs.php.net/81500) (Interval serialization regression since 7.3.14 / 7.4.2). * DBA: + Fixed bug [#81588](http://bugs.php.net/81588) (TokyoCabinet driver leaks memory). * MBString: + Fixed bug [#76167](http://bugs.php.net/76167) (mbstring may use pointer from some previous request). * Opcache: + Fixed bug [#81512](http://bugs.php.net/81512) (Unexpected behavior with arrays and JIT). * PCRE: + Fixed bug [#81424](http://bugs.php.net/81424) (PCRE2 10.35 JIT performance regression). * XML: + Fixed bug [#79971](http://bugs.php.net/79971) (special character is breaking the path in xml function). (CVE-2021-21707) * XMLReader: + Fixed bug [#81521](http://bugs.php.net/81521) (XMLReader::getParserProperty may throw with a valid property). ##### Version 8.0.12 **21 Oct 2021** * CLI: + Fixed bug [#81496](http://bugs.php.net/81496) (Server logs incorrect request method). * Core: + Fixed bug [#81435](http://bugs.php.net/81435) (Observer current\_observed\_frame may point to an old (overwritten) frame). + Fixed bug [#81380](http://bugs.php.net/81380) (Observer may not be initialized properly). * DOM: + Fixed bug [#81433](http://bugs.php.net/81433) (DOMElement::setIdAttribute() called twice may remove ID). * FFI: + Fixed bug [#79576](http://bugs.php.net/79576) ("TYPE \*" shows unhelpful message when type is not defined). * FPM: + Fixed bug [#81026](http://bugs.php.net/81026) (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703). * Fileinfo: + Fixed bug [#78987](http://bugs.php.net/78987) (High memory usage during encoding detection). * Filter: + Fixed bug [#61700](http://bugs.php.net/61700) (FILTER\_FLAG\_IPV6/FILTER\_FLAG\_NO\_PRIV|RES\_RANGE failing). * Opcache: + Fixed bug [#81472](http://bugs.php.net/81472) (Cannot support large linux major/minor device number when read /proc/self/maps). * Reflection: + ReflectionAttribute is no longer final. * SPL: + Fixed bug [#80663](http://bugs.php.net/80663) (Recursive SplFixedArray::setSize() may cause double-free). + Fixed bug [#81477](http://bugs.php.net/81477) (LimitIterator + SplFileObject regression in 8.0.1). * Standard: + Fixed bug [#69751](http://bugs.php.net/69751) (Change Error message of sprintf/printf for missing/typo position specifier). * Streams: + Fixed bug [#81475](http://bugs.php.net/81475) (stream\_isatty emits warning with attached stream wrapper). * XML: + Fixed bug [#70962](http://bugs.php.net/70962) (XML\_OPTION\_SKIP\_WHITE strips embedded whitespace). * Zip: + Fixed bug [#81490](http://bugs.php.net/81490) (ZipArchive::extractTo() may leak memory). + Fixed bug [#77978](http://bugs.php.net/77978) (Dirname ending in colon unzips to wrong dir). ##### Version 8.0.11 **23 Sep 2021** * Core: + Fixed bug [#81302](http://bugs.php.net/81302) (Stream position after stream filter removed). + Fixed bug [#81346](http://bugs.php.net/81346) (Non-seekable streams don't update position after write). + Fixed bug [#73122](http://bugs.php.net/73122) (Integer Overflow when concatenating strings). * GD: + Fixed bug [#53580](http://bugs.php.net/53580) (During resize gdImageCopyResampled cause colors change). * Opcache: + Fixed bug [#81353](http://bugs.php.net/81353) (segfault with preloading and statically bound closure). * Shmop: + Fixed bug [#81407](http://bugs.php.net/81407) (shmop\_open won't attach and causes php to crash). * Standard: + Fixed bug [#71542](http://bugs.php.net/71542) (disk\_total\_space does not work with relative paths). + Fixed bug [#81400](http://bugs.php.net/81400) (Unterminated string in dns\_get\_record() results). * SysVMsg: + Fixed bug [#78819](http://bugs.php.net/78819) (Heap Overflow in msg\_send). * XML: + Fixed bug [#81351](http://bugs.php.net/81351) (xml\_parse may fail, but has no error code). * Zip: + Fixed bug [#80833](http://bugs.php.net/80833) (ZipArchive::getStream doesn't use setPassword). + Fixed bug [#81420](http://bugs.php.net/81420) (ZipArchive::extractTo extracts outside of destination). ##### Version 8.0.10 **26 Aug 2021** * Core: + Fixed bug [#72595](http://bugs.php.net/72595) (php\_output\_handler\_append illegal write access). + Fixed bug [#66719](http://bugs.php.net/66719) (Weird behaviour when using get\_called\_class() with call\_user\_func()). + Fixed bug [#81305](http://bugs.php.net/81305) (Built-in Webserver Drops Requests With "Upgrade" Header). * BCMath: + Fixed bug [#78238](http://bugs.php.net/78238) (BCMath returns "-0"). * CGI: + Fixed bug [#80849](http://bugs.php.net/80849) (HTTP Status header truncation). * Date: + Fixed bug [#64975](http://bugs.php.net/64975) (Error parsing when AM/PM not at the end). + Fixed bug [#78984](http://bugs.php.net/78984) (DateTimeZone accepting invalid UTC timezones). + Fixed bug [#79580](http://bugs.php.net/79580) (date\_create\_from\_format misses leap year). + Fixed bug [#80409](http://bugs.php.net/80409) (DateTime::modify() loses time with 'weekday' parameter). * GD: + Fixed bug [#51498](http://bugs.php.net/51498) (imagefilledellipse does not work for large circles). * MySQLi: + Fixed bug [#74544](http://bugs.php.net/74544) (Integer overflow in mysqli\_real\_escape\_string()). * Opcache: + Fixed bug [#81225](http://bugs.php.net/81225) (Wrong result with pow operator with JIT enabled). + Fixed bug [#81249](http://bugs.php.net/81249) (Intermittent property assignment failure with JIT enabled). + Fixed bug [#81206](http://bugs.php.net/81206) (Multiple PHP processes crash with JIT enabled). + Fixed bug [#81272](http://bugs.php.net/81272) (Segfault in var[] after array\_slice with JIT). + Fixed bug [#81255](http://bugs.php.net/81255) (Memory leak in PHPUnit with functional JIT). + Fixed bug [#80959](http://bugs.php.net/80959) (Infinite loop in building cfg during JIT compilation) (Nikita, Dmitry) + Fixed bug [#81226](http://bugs.php.net/81226) (Integer overflow behavior is different with JIT enabled). * OpenSSL: + Fixed bug [#81327](http://bugs.php.net/81327) (Error build openssl extension on php 7.4.22). * PDO\_ODBC: + Fixed bug [#81252](http://bugs.php.net/81252) (PDO\_ODBC doesn't account for SQL\_NO\_TOTAL). * Phar: + Fixed bug [#81211](http://bugs.php.net/81211): Symlinks are followed when creating PHAR archive * Shmop: + Fixed bug [#81283](http://bugs.php.net/81283) (shmop can't read beyond 2147483647 bytes). * SimpleXML: + Fixed bug [#81325](http://bugs.php.net/81325) (Segfault in zif\_simplexml\_import\_dom). * Standard: + Fixed bug [#72146](http://bugs.php.net/72146) (Integer overflow on substr\_replace). + Fixed bug [#81265](http://bugs.php.net/81265) (getimagesize returns 0 for 256px ICO images). + Fixed bug [#74960](http://bugs.php.net/74960) (Heap buffer overflow via str\_repeat). * Streams: + Fixed bug [#81294](http://bugs.php.net/81294) (Segfault when removing a filter). ##### Version 8.0.9 **29 Jul 2021** * Core: + Fixed bug [#81145](http://bugs.php.net/81145) (copy() and stream\_copy\_to\_stream() fail for +4GB files). + Fixed bug [#81163](http://bugs.php.net/81163) (incorrect handling of indirect vars in \_\_sleep). + Fixed bug [#81159](http://bugs.php.net/81159) (Object to int warning when using an object as a string offset). + Fixed bug [#80728](http://bugs.php.net/80728) (PHP built-in web server resets timeout when it can kill the process). + Fixed bug [#73630](http://bugs.php.net/73630) (Built-in Webserver - overwrite $\_SERVER['request\_uri']). + Fixed bug [#80173](http://bugs.php.net/80173) (Using return value of zend\_assign\_to\_variable() is not safe). + Fixed bug [#73226](http://bugs.php.net/73226) (--r[fcez] always return zero exit code). * Intl: + Fixed bug [#72809](http://bugs.php.net/72809) (Locale::lookup() wrong result with canonicalize option). + Fixed bug [#68471](http://bugs.php.net/68471) (IntlDateFormatter fails for "GMT+00:00" timezone). + Fixed bug [#74264](http://bugs.php.net/74264) (grapheme\_strrpos() broken for negative offsets). * OpenSSL: + Fixed bug [#52093](http://bugs.php.net/52093) (openssl\_csr\_sign truncates $serial). * PCRE: + Fixed bug [#81101](http://bugs.php.net/81101) (PCRE2 10.37 shows unexpected result). + Fixed bug [#81243](http://bugs.php.net/81243) (Too much memory is allocated for preg\_replace()). * Reflection: + Fixed bug [#81208](http://bugs.php.net/81208) (Segmentation fault while create newInstance from attribute). * Standard: + Fixed bug [#81223](http://bugs.php.net/81223) (flock() only locks first byte of file). ##### Version 8.0.8 **01 Jul 2021** * Core: + Fixed bug [#81076](http://bugs.php.net/81076) (incorrect debug info on Closures with implicit binds). + Fixed bug [#81068](http://bugs.php.net/81068) (Double free in realpath\_cache\_clean()). + Fixed bug [#76359](http://bugs.php.net/76359) (open\_basedir bypass through adding ".."). + Fixed bug [#81090](http://bugs.php.net/81090) (Typed property performance degradation with .= operator). + Fixed bug [#81070](http://bugs.php.net/81070) (Integer underflow in memory limit comparison). + Fixed bug [#81122](http://bugs.php.net/81122) (SSRF bypass in FILTER\_VALIDATE\_URL). (CVE-2021-21705) * Bzip2: + Fixed bug [#81092](http://bugs.php.net/81092) (fflush before stream\_filter\_remove corrupts stream). * Fileinfo: + Fixed bug [#80197](http://bugs.php.net/80197) (implicit declaration of function 'magic\_stream' is invalid). * GMP: + Fixed bug [#81119](http://bugs.php.net/81119) (GMP operators throw errors with wrong parameter names). * OCI8: + Fixed bug [#81088](http://bugs.php.net/81088) (error in regression test for oci\_fetch\_object() and oci\_fetch\_array()). * Opcache: + Fixed bug [#81051](http://bugs.php.net/81051) (Broken property type handling after incrementing reference). + Fixed bug [#80968](http://bugs.php.net/80968) (JIT segfault with return from required file). * OpenSSL: + Fixed bug [#76694](http://bugs.php.net/76694) (native Windows cert verification uses CN as server name). * MySQLnd: + Fixed bug [#80761](http://bugs.php.net/80761) (PDO uses too much memory). * PDO\_Firebird: + Fixed bug [#76448](http://bugs.php.net/76448) (Stack buffer overflow in firebird\_info\_cb). (CVE-2021-21704) + Fixed bug [#76449](http://bugs.php.net/76449) (SIGSEGV in firebird\_handle\_doer). (CVE-2021-21704) + Fixed bug [#76450](http://bugs.php.net/76450) (SIGSEGV in firebird\_stmt\_execute). (CVE-2021-21704) + Fixed bug [#76452](http://bugs.php.net/76452) (Crash while parsing blob data in firebird\_fetch\_blob). (CVE-2021-21704) * readline: + Fixed bug [#72998](http://bugs.php.net/72998) (invalid read in readline completion). * Standard: + Fixed bug [#81048](http://bugs.php.net/81048) (phpinfo(INFO\_VARIABLES) "Array to string conversion"). + Fixed bug [#77627](http://bugs.php.net/77627) (method\_exists on Closure::\_\_invoke inconsistency). * Windows: + Fixed bug [#81120](http://bugs.php.net/81120) (PGO data for main PHP DLL are not used). ##### Version 8.0.7 **03 Jun 2021** * Core: + Fixed bug [#80960](http://bugs.php.net/80960) (opendir() warning wrong info when failed on Windows). + Fixed bug [#67792](http://bugs.php.net/67792) (HTTP Authorization schemes are treated as case-sensitive). + Fixed bug [#80972](http://bugs.php.net/80972) (Memory exhaustion on invalid string offset). * FPM: + Fixed bug [#65800](http://bugs.php.net/65800) (Events port mechanism). * FTP: + Fixed bug [#80901](http://bugs.php.net/80901) (Info leak in ftp extension). + Fixed bug [#79100](http://bugs.php.net/79100) (Wrong FTP error messages). * GD: + Fixed bug [#81032](http://bugs.php.net/81032) (GD install is affected by external libgd installation). * Intl: + Fixed bug [#81019](http://bugs.php.net/81019) (Unable to clone NumberFormatter after failed parse()). * MBString: + Fixed bug [#81011](http://bugs.php.net/81011) (mb\_convert\_encoding removes references from arrays). * ODBC: + Fixed bug [#80460](http://bugs.php.net/80460) (ODBC doesn't account for SQL\_NO\_TOTAL indicator). * Opcache: + Fixed bug [#81007](http://bugs.php.net/81007) (JIT "not supported" on 32-bit x86 -- build problem?). + Fixed bug [#81015](http://bugs.php.net/81015) (Opcache optimization assumes wrong part of ternary operator in if-condition). + Fixed bug [#81046](http://bugs.php.net/81046) (Literal compaction merges non-equal related literals). * PDO\_MySQL: + Fixed bug [#81037](http://bugs.php.net/81037) (PDO discards error message text from prepared statement). * PDO\_ODBC: + Fixed bug [#44643](http://bugs.php.net/44643) (bound parameters ignore explicit type definitions). * pgsql: + Fixed php\_pgsql\_fd\_cast() wrt. php\_stream\_can\_cast(). * SPL: + Fixed bug [#80933](http://bugs.php.net/80933) (SplFileObject::DROP\_NEW\_LINE is broken for NUL and CR). * XMLReader: + Fixed bug [#73246](http://bugs.php.net/73246) (XMLReader: encoding length not checked). * Zip: + Fixed bug [#80863](http://bugs.php.net/80863) (ZipArchive::extractTo() ignores references). ##### Version 8.0.6 **06 May 2021** * PDO\_pgsql: + Revert "Fixed bug [#80892](http://bugs.php.net/80892) (PDO::PARAM\_INT is treated the same as PDO::PARAM\_STR)" ##### Version 8.0.5 **29 Apr 2021** * Core: + Fixed bug [#75776](http://bugs.php.net/75776) (Flushing streams with compression filter is broken). + Fixed bug [#80811](http://bugs.php.net/80811) (Function exec without $output but with $restult\_code parameter crashes). + Fixed bug [#80814](http://bugs.php.net/80814) (threaded mod\_php won't load on FreeBSD: No space available for static Thread Local Storage). + Changed PowerPC CPU registers used by Zend VM to work around GCC bug. Old registers (r28/r29) might be clobbered by \_restgpr routine used for return from C function compiled with -Os. * Dba: + Fixed bug [#80817](http://bugs.php.net/80817) (dba\_popen() may cause segfault during RSHUTDOWN). * DOM: + Fixed bug [#66783](http://bugs.php.net/66783) (UAF when appending DOMDocument to element). * FFI: + Fixed bug [#80847](http://bugs.php.net/80847) (CData structs with fields of type struct can't be passed as C function argument). * FPM: + Fixed bug [#80024](http://bugs.php.net/80024) (Duplication of info about inherited socket after pool removing). * FTP: + Fixed bug [#80880](http://bugs.php.net/80880) (SSL\_read on shutdown, ftp/proc\_open). * IMAP: + Fixed bug [#80800](http://bugs.php.net/80800) (imap\_open() fails when the flags parameter includes CL\_EXPUNGE). + Fixed bug [#80710](http://bugs.php.net/80710) (imap\_mail\_compose() header injection). * Intl: + Fixed bug [#80763](http://bugs.php.net/80763) (msgfmt\_format() does not accept DateTime references). * LibXML: + Fixed bug [#73533](http://bugs.php.net/73533) (Invalid memory access in php\_libxml\_xmlCheckUTF8). + Fixed bug [#51903](http://bugs.php.net/51903) (simplexml\_load\_file() doesn't use HTTP headers). * MySQLnd: + Fixed bug [#80837](http://bugs.php.net/80837) (Calling stmt\_store\_result after fetch doesn't throw an error). * Opcache: + Fixed bug [#80839](http://bugs.php.net/80839) (PHP problem with JIT). + Fixed bug [#80861](http://bugs.php.net/80861) (erronous array key overflow in 2D array with JIT). + Fixed bug [#80786](http://bugs.php.net/80786) (PHP crash using JIT). + Fixed bug [#80782](http://bugs.php.net/80782) (DASM\_S\_RANGE\_VREG on PHP\_INT\_MIN-1). * Pcntl: + Fixed bug [#79812](http://bugs.php.net/79812) (Potential integer overflow in pcntl\_exec()). * PCRE: + Fixed bug [#80866](http://bugs.php.net/80866) (preg\_split ignores limit flag when pattern with \K has 0-width fullstring match). * PDO\_ODBC: + Fixed bug [#80783](http://bugs.php.net/80783) (PDO ODBC truncates BLOB records at every 256th byte). * PDO\_pgsql: + Fixed bug [#80892](http://bugs.php.net/80892) (PDO::PARAM\_INT is treated the same as PDO::PARAM\_STR). * Session: + Fixed bug [#80889](http://bugs.php.net/80889) (Cannot set save handler when save\_handler is invalid). + Fixed bug [#80774](http://bugs.php.net/80774) (session\_name() problem with backslash). * SOAP: + Fixed bug [#69668](http://bugs.php.net/69668) (SOAP special XML characters in namespace URIs not encoded). * Standard: + Fixed bug [#80915](http://bugs.php.net/80915) (Taking a reference to $\_SERVER hides its values from phpinfo()). + Fixed bug [#80914](http://bugs.php.net/80914) ('getdir' accidentally defined as an alias of 'dir'). + Fixed bug [#80771](http://bugs.php.net/80771) (phpinfo(INFO\_CREDITS) displays nothing in CLI). + Fixed bug [#78719](http://bugs.php.net/78719) (http wrapper silently ignores long Location headers). + Fixed bug [#80838](http://bugs.php.net/80838) (HTTP wrapper waits for HTTP 1 response after HTTP 101). * Zip: + Fixed bug [#80825](http://bugs.php.net/80825) (ZipArchive::isCompressionMethodSupported does not exist). ##### Version 8.0.3 **04 Mar 2021** * Core: + Fixed bug [#80706](http://bugs.php.net/80706) (mail(): Headers after Bcc headers may be ignored). * DOM: + Fixed bug [#80600](http://bugs.php.net/80600) (DOMChildNode::remove() doesn't work on CharacterData nodes). * Gettext: + Fixed bug [#53251](http://bugs.php.net/53251) (bindtextdomain with null dir doesn't return old value). * MySQLnd: + Fixed bug [#78680](http://bugs.php.net/78680) (mysqlnd's mysql\_clear\_password does not transmit null-terminated password). + Fixed bug [#80713](http://bugs.php.net/80713) (SegFault when disabling ATTR\_EMULATE\_PREPARES and MySQL 8.0). * MySQLi: + Fixed bug [#74779](http://bugs.php.net/74779) (x() and y() truncating floats to integers). * Opcache: + Fixed bug [#80634](http://bugs.php.net/80634) (write\_property handler of internal classes is skipped on preloaded JITted code). + Fixed bug [#80682](http://bugs.php.net/80682) (opcache doesn't honour pcre.jit option). + Fixed bug [#80742](http://bugs.php.net/80742) (Opcache JIT makes some boolean logic unexpectedly be true). + Fixed bug [#80745](http://bugs.php.net/80745) (JIT produces Assert failure and UNKNOWN:0 var\_dumps in code involving bitshifts). * OpenSSL: + Fixed bug [#80747](http://bugs.php.net/80747) (Providing RSA key size < 512 generates key that crash PHP). * Phar: + Fixed bug [#75850](http://bugs.php.net/75850) (Unclear error message wrt. \_\_halt\_compiler() w/o semicolon) + Fixed bug [#70091](http://bugs.php.net/70091) (Phar does not mark UTF-8 filenames in ZIP archives). + Fixed bug [#53467](http://bugs.php.net/53467) (Phar cannot compress large archives). * Socket: + Fixed bug [#80723](http://bugs.php.net/80723) (Different sockets compare as equal (regression in 8.0)). * SPL: + Fixed bug [#80719](http://bugs.php.net/80719) (Iterating after failed ArrayObject::setIteratorClass() causes Segmentation fault). * Standard: + Fixed bug [#80654](http://bugs.php.net/80654) (file\_get\_contents() maxlen fails above (2\*\*31)-1 bytes). + Fixed bug [#80718](http://bugs.php.net/80718) (ext/standard/dl.c fallback code path with syntax error). ##### Version 8.0.2 **04 Feb 2021** * Core: + Fixed bug [#80523](http://bugs.php.net/80523) (bogus parse error on >4GB source code). + Fixed bug [#80384](http://bugs.php.net/80384) (filter buffers entire read until file closed). + Fixed bug [#80596](http://bugs.php.net/80596) (Invalid union type TypeError in anonymous classes). + Fixed bug [#80617](http://bugs.php.net/80617) (GCC throws warning about type narrowing in ZEND\_TYPE\_INIT\_CODE). * BCMath: + Fixed bug [#80545](http://bugs.php.net/80545) (bcadd('a', 'a') doesn't throw an exception). * Curl: + Fixed bug [#80595](http://bugs.php.net/80595) (Resetting POSTFIELDS to empty array breaks request). * Date: + Fixed bug [#80376](http://bugs.php.net/80376) (last day of the month causes runway cpu usage). * DOM: + Fixed bug [#80537](http://bugs.php.net/80537) (Wrong parameter type in DOMElement::removeAttributeNode stub). * Filter: + Fixed bug [#80584](http://bugs.php.net/80584) (0x and 0X are considered valid hex numbers by filter\_var()). * GMP: + Fixed bug [#80560](http://bugs.php.net/80560) (Strings containing only a base prefix return 0 object). * Intl: + Fixed bug [#80644](http://bugs.php.net/80644) (Missing resource causes subsequent get() calls to fail). * MySQLi: + Fixed bug [#67983](http://bugs.php.net/67983) (mysqlnd with MYSQLI\_OPT\_INT\_AND\_FLOAT\_NATIVE fails to interpret bit columns). + Fixed bug [#64638](http://bugs.php.net/64638) (Fetching resultsets from stored procedure with cursor fails). + Fixed bug [#72862](http://bugs.php.net/72862) (segfault using prepared statements on stored procedures that use a cursor). + Fixed bug [#77935](http://bugs.php.net/77935) (Crash in mysqlnd\_fetch\_stmt\_row\_cursor when calling an SP with a cursor). * ODBC: + Fixed bug [#80592](http://bugs.php.net/80592) (all floats are the same in ODBC parameters). * Opcache: + Fixed bug [#80422](http://bugs.php.net/80422) (php\_opcache.dll crashes when using Apache 2.4 with JIT). * PDO\_Firebird: + Fixed bug [#80521](http://bugs.php.net/80521) (Parameters with underscores no longer recognized). * Phar: + Fixed bug [#76929](http://bugs.php.net/76929) (zip-based phar does not respect phar.require\_hash). + Fixed bug [#77565](http://bugs.php.net/77565) (Incorrect locator detection in ZIP-based phars). + Fixed bug [#69279](http://bugs.php.net/69279) (Compressed ZIP Phar extractTo() creates garbage files). * Phpdbg: + Reverted fix for bug [#76813](http://bugs.php.net/76813) (Access violation near NULL on source operand). * SOAP: + Fixed bug [#80672](http://bugs.php.net/80672) (Null Dereference in SoapClient). (CVE-2021-21702) ##### Version 8.0.1 **07 Jan 2021** * Core: + Fixed bug [#80345](http://bugs.php.net/80345) (PHPIZE configuration has outdated PHP\_RELEASE\_VERSION). + Fixed bug [#72964](http://bugs.php.net/72964) (White space not unfolded for CC/Bcc headers). + Fixed bug [#80391](http://bugs.php.net/80391) (Iterable not covariant to mixed). + Fixed bug [#80393](http://bugs.php.net/80393) (Build of PHP extension fails due to configuration gap with libtool). + Fixed bug [#77069](http://bugs.php.net/77069) (stream filter loses final block of data). * Fileinfo: + Fixed bug [#77961](http://bugs.php.net/77961) (finfo\_open crafted magic parsing SIGABRT). * FPM: + Fixed bug [#69625](http://bugs.php.net/69625) (FPM returns 200 status on request without SCRIPT\_FILENAME env). * IMAP: + Fixed bug [#80438](http://bugs.php.net/80438) (imap\_msgno() incorrectly warns and return false on valid UIDs in PHP 8). + Fix a regression with valid UIDs in imap\_savebody(). + Make warnings for invalid message numbers/UIDs between functions consistent. * Intl: + Fixed bug [#80425](http://bugs.php.net/80425) (MessageFormatAdapter::getArgTypeList redefined). * Opcache: + Fixed bug [#80404](http://bugs.php.net/80404) (Incorrect range inference result when division results in float). + Fixed bug [#80377](http://bugs.php.net/80377) (Opcache misses executor\_globals). + Fixed bug [#80433](http://bugs.php.net/80433) (Unable to disable the use of the AVX command when using JIT). + Fixed bug [#80447](http://bugs.php.net/80447) (Strange out of memory error when running with JIT). + Fixed bug [#80480](http://bugs.php.net/80480) (Segmentation fault with JIT enabled). + Fixed bug [#80506](http://bugs.php.net/80506) (Immediate SIGSEGV upon ini\_set("opcache.jit\_debug", 1)). * OpenSSL: + Fixed bug [#80368](http://bugs.php.net/80368) (OpenSSL extension fails to build against LibreSSL due to lack of OCB support). * PDO MySQL: + Fixed bug [#80458](http://bugs.php.net/80458) (PDOStatement::fetchAll() throws for upsert queries). + Fixed bug [#63185](http://bugs.php.net/63185) (nextRowset() ignores MySQL errors with native prepared statements). + Fixed bug [#78152](http://bugs.php.net/78152) (PDO::exec() - Bad error handling with multiple commands). + Fixed bug [#66878](http://bugs.php.net/66878) (Multiple rowsets not returned unless PDO statement object is unset()). + Fixed bug [#70066](http://bugs.php.net/70066) (Unexpected "Cannot execute queries while other unbuffered queries"). + Fixed bug [#71145](http://bugs.php.net/71145) (Multiple statements in init command triggers unbuffered query error). + Fixed bug [#76815](http://bugs.php.net/76815) (PDOStatement cannot be GCed/closeCursor-ed when a PROCEDURE resultset SIGNAL). + Fixed bug [#79872](http://bugs.php.net/79872) (Can't execute query with pending result sets). + Fixed bug [#79131](http://bugs.php.net/79131) (PDO does not throw an exception when parameter values are missing). + Fixed bug [#72368](http://bugs.php.net/72368) (PdoStatement->execute() fails but does not throw an exception). + Fixed bug [#62889](http://bugs.php.net/62889) (LOAD DATA INFILE broken). + Fixed bug [#67004](http://bugs.php.net/67004) (Executing PDOStatement::fetch() more than once prevents releasing resultset). + Fixed bug [#79132](http://bugs.php.net/79132) (PDO re-uses parameter values from earlier calls to execute()). * Phar: + Fixed bug [#73809](http://bugs.php.net/73809) (Phar Zip parse crash - mmap fail). + Fixed bug [#75102](http://bugs.php.net/75102) (`PharData` says invalid checksum for valid tar). + Fixed bug [#77322](http://bugs.php.net/77322) (PharData::addEmptyDir('/') Possible integer overflow). * Phpdbg: + Fixed bug [#76813](http://bugs.php.net/76813) (Access violation near NULL on source operand). * SPL: + Fixed bug [#62004](http://bugs.php.net/62004) (SplFileObject: fgets after seek returns wrong line). * Standard: + Fixed bug [#80366](http://bugs.php.net/80366) (Return Value of zend\_fstat() not Checked). + Fixed bug [#77423](http://bugs.php.net/77423) (FILTER\_VALIDATE\_URL accepts URLs with invalid userinfo). (CVE-2020-7071) * Tidy: + Fixed bug [#77594](http://bugs.php.net/77594) (ob\_tidyhandler is never reset). * Tokenizer: + Fixed bug [#80462](http://bugs.php.net/80462) (Nullsafe operator tokenize with TOKEN\_PARSE flag fails). * XML: + XmlParser opaque object renamed to XMLParser for consistency with other XML objects. * Zlib: + Fixed bug [#48725](http://bugs.php.net/48725) (Support for flushing in zlib stream). ##### Version 8.0.0 **26 Nov 2020** * BZ2: + Fixed bug [#71263](http://bugs.php.net/71263) (fread() does not report bzip2.decompress errors). * CLI: + Allow debug server binding to an ephemeral port via `-S localhost:0`. * COM: + Fixed bug [#55847](http://bugs.php.net/55847) (DOTNET .NET 4.0 GAC new location). + Fixed bug [#62474](http://bugs.php.net/62474) (com\_event\_sink crashes on certain arguments). * Calendar: + Fixed bug [#80007](http://bugs.php.net/80007) (Potential type confusion in unixtojd() parameter parsing). * Core: + Fixed bug [#36365](http://bugs.php.net/36365) (scandir duplicates file name at every 65535th file). + Fixed bug [#49555](http://bugs.php.net/49555) (Fatal error "Function must be a string" message should be renamed). + Fixed bug [#62294](http://bugs.php.net/62294) (register\_shutdown\_function() does not correctly handle exit code). + Fixed bug [#62609](http://bugs.php.net/62609) (Allow implementing Traversable on abstract classes). + Fixed bug [#65274](http://bugs.php.net/65274) (Enhance undefined class constant error with class name). + Fixed bug [#65275](http://bugs.php.net/65275) (Calling exit() in a shutdown function does not change the exit value in CLI). + Fixed bug [#69084](http://bugs.php.net/69084) (Unclear error message when not implementing a renamed abstract trait function). + Fixed bug [#70839](http://bugs.php.net/70839) (Converting optional argument to variadic forbidden by LSP checks). + Fixed bug [#74558](http://bugs.php.net/74558) (Can't rebind closure returned by Closure::fromCallable()). + Fixed bug [#77561](http://bugs.php.net/77561) (Shebang line not stripped for non-primary script). + Fixed bug [#77619](http://bugs.php.net/77619) (Wrong reflection on MultipleIterator::\_\_construct). + Fixed bug [#77966](http://bugs.php.net/77966) (Cannot alias a method named "namespace"). + Fixed bug [#78236](http://bugs.php.net/78236) (convert error on receiving variables when duplicate [). + Fixed bug [#78770](http://bugs.php.net/78770) (Incorrect callability check inside internal methods). + Fixed bug [#79108](http://bugs.php.net/79108) (Referencing argument in a function makes it a reference in the stack trace). + Fixed bug [#79368](http://bugs.php.net/79368) ("Unexpected end of file" is not an acceptable error message). + Fixed bug [#79462](http://bugs.php.net/79462) (method\_exists and property\_exists incoherent behavior). + Fixed bug [#79467](http://bugs.php.net/79467) (data:// wrappers are writable). + Fixed bug [#79521](http://bugs.php.net/79521) (Check \_\_set\_state structure). + Fixed bug [#79790](http://bugs.php.net/79790) ("Illegal offset type" exception during AST evaluation not handled properly). + Fixed bug [#79791](http://bugs.php.net/79791) (Assertion failure when unsetting variable during binary op). + Fixed bug [#79828](http://bugs.php.net/79828) (Segfault when trying to access non-existing variable). + Fixed bug [#79841](http://bugs.php.net/79841) (Syntax error in configure / unescaped "[]" in php.m4). + Fixed bug [#79852](http://bugs.php.net/79852) (count(DOMNodeList) doesn't match count(IteratorIterator(DOMNodeList))). + Fixed bug [#79867](http://bugs.php.net/79867) (Promoted untyped properties should get null default value). + Fixed bug [#79897](http://bugs.php.net/79897) (Promoted constructor params with attribs cause crash). + Fixed bug [#79927](http://bugs.php.net/79927) (Generator doesn't throw exception after multiple yield from iterable). + Fixed bug [#79946](http://bugs.php.net/79946) (Build fails due to undeclared UINT32\_C). + Fixed bug [#79948](http://bugs.php.net/79948) (Exit in auto-prepended file does not abort PHP execution). + Fixed bug [#80045](http://bugs.php.net/80045) (memleak after two set\_exception\_handler calls with \_\_call). + Fixed bug [#80096](http://bugs.php.net/80096) (Segmentation fault with named arguments in nested call). + Fixed bug [#80109](http://bugs.php.net/80109) (Cannot skip arguments when extended debug is enabled). + Fixed bug [#80225](http://bugs.php.net/80225) (broken namespace usage in eval code). + Fixed bug [#80258](http://bugs.php.net/80258) (Windows Deduplication Enabled, randon permission errors). + Fixed bug [#80280](http://bugs.php.net/80280) (ADD\_EXTENSION\_DEP() fails for ext/standard and ext/date). + Fixed bug [#80334](http://bugs.php.net/80334) (assert() vs named parameters - confusing error). + Fixed bug [#80055](http://bugs.php.net/80055) (Abstract trait methods returning "self" cannot be fulfilled by traits). + Fixed faulty generator cleanup with yield from. + Implement #[Attr] Attribute syntax as per final vote in RFC https://wiki.php.net/rfc/shorter\_attribute\_syntax\_change + Implemented FR [#47074](http://bugs.php.net/47074) (phpinfo() reports "On" as 1 for the some extensions). + Implemented FR [#72089](http://bugs.php.net/72089) (require() throws fatal error instead of exception). + Removed the pdo\_odbc.db2\_instance\_name php.ini directive. + Use SSE2 instructions do locale independent strtolower. * Curl: + Bumped required libcurl version to 7.29.0. + Fixed bug [#80121](http://bugs.php.net/80121) (Null pointer deref if CurlHandle directly instantiated). * DOM: + Add property DOMXPath::$registerNodeNamespaces and constructor argument that allow global flag to configure query() or evaluate() calls. + Fixed bug [#79968](http://bugs.php.net/79968) (DOMChildNode API crash on unattached nodes). + Fixed bug [#80268](http://bugs.php.net/80268) (loadHTML() truncates at NUL bytes). * Date: + Fixed bug [#60302](http://bugs.php.net/60302) (DateTime::createFromFormat should new static(), not new self()). + Fixed bug [#65547](http://bugs.php.net/65547) (Default value for sunrise/sunset zenith still wrong). + Fixed bug [#69044](http://bugs.php.net/69044) (discrepancy between time and microtime). + Fixed bug [#80057](http://bugs.php.net/80057) (DateTimeImmutable::createFromFormat() does not populate time). + Implemented FR [#79903](http://bugs.php.net/79903) (datetime: new format "p", same as "P" but returning "Z" for UTC). * Enchant: + Add LIBENCHANT\_VERSION macro. + Add enchant\_dict\_add and enchant\_dict\_is\_added functions. + Deprecate enchant\_broker\_set\_dict\_path, enchant\_broker\_get\_dict\_path, enchant\_dict\_add\_to\_personal and enchant\_dict\_is\_in\_session. + Use libenchant-2 when available. * FFI: + Added FFI\CType::getName() method. + Fixed bug [#79177](http://bugs.php.net/79177) (FFI doesn't handle well PHP exceptions within callback). + Fixed bug [#79749](http://bugs.php.net/79749) (Converting FFI instances to bool fails). * FPM: + Add pm.status\_listen option. * Fileinfo: + Upgrade to libmagic 5.39. * GD: + Added imagegetinterpolation(). + Fixed bug [#55005](http://bugs.php.net/55005) (imagepolygon num\_points requirement). + Made the $num\_points parameter of php\_imagepolygon optional. + Removed deprecated image2wbmp(). + Removed deprecated png2wbmp() and jpeg2wbmp(). + Replaced gd resources with objects. * IMAP: + Fixed bug [#64076](http://bugs.php.net/64076) (imap\_sort() does not return FALSE on failure). + Fixed bug [#76618](http://bugs.php.net/76618) (segfault on imap\_reopen). + Fixed bug [#80213](http://bugs.php.net/80213) (imap\_mail\_compose() segfaults on certain $bodies). + Fixed bug [#80215](http://bugs.php.net/80215) (imap\_mail\_compose() may modify by-val parameters). + Fixed bug [#80216](http://bugs.php.net/80216) (imap\_mail\_compose() does not validate types/encodings). + Fixed bug [#80220](http://bugs.php.net/80220) (imap\_mail\_compose() may leak memory). + Fixed bug [#80223](http://bugs.php.net/80223) (imap\_mail\_compose() leaks envelope on malformed bodies). + Fixed bug [#80226](http://bugs.php.net/80226) (imap\_sort() leaks sortpgm memory). + Fixed bug [#80239](http://bugs.php.net/80239) (imap\_rfc822\_write\_address() leaks memory). + Fixed bug [#80242](http://bugs.php.net/80242) (imap\_mail\_compose() segfaults for multipart with rfc822). + Fixed minor regression caused by fixing bug [#80220](http://bugs.php.net/80220). * Iconv: + Dropped support for iconv without proper errno setting. * Intl: + Removed deprecated INTL\_IDNA\_VARIANT\_2003. * JIT: + Fixed bug [#77857](http://bugs.php.net/77857) (Wrong result if executed with JIT). + Fixed bug [#79255](http://bugs.php.net/79255) (PHP cannot be compiled with enable JIT). + Fixed bug [#79582](http://bugs.php.net/79582) (Crash seen when opcache.jit=1235 and opcache.jit\_debug=2). + Fixed bug [#79743](http://bugs.php.net/79743) (Fatal error when assigning to array property with JIT enabled). + Fixed bug [#79864](http://bugs.php.net/79864) (JIT segfault in Symfony OptionsResolver). + Fixed bug [#79888](http://bugs.php.net/79888) (Incorrect execution with JIT enabled). * JSON: + The JSON extension is now an integral part of PHP and cannot be disabled as per RFC: https://wiki.php.net/rfc/always\_enable\_json (tandre) * LDAP: + Fixed memory leaks. + Removed deprecated ldap\_sort. * MBString: + Fixed bug [#76999](http://bugs.php.net/76999) (mb\_regex\_set\_options() return current options). + Removed the unused $is\_hex parameter from mb\_decode\_numericentity(). * MySQLi: + Fixed bug [#76809](http://bugs.php.net/76809) (SSL settings aren't respected when persistent connections are used). * Mysqlnd: + Fixed bug [#60594](http://bugs.php.net/60594) (mysqlnd exposes 160 lines of stats in phpinfo). * OCI8: + Deprecated old OCI8 function aliases. + Modernized oci\_register\_taf\_callback() callable argument parsing implementation. + Removed obsolete no-op function oci\_internal\_debug(). * ODBC: + Fixed bug [#22986](http://bugs.php.net/22986) (odbc\_connect() may reuse persistent connection). + Fixed bug [#44618](http://bugs.php.net/44618) (Fetching may rely on uninitialized data). * Opcache: + Fixed bug [#76535](http://bugs.php.net/76535) (Opcache does not replay compile-time warnings). + Fixed bug [#78654](http://bugs.php.net/78654) (Incorrectly computed opcache checksum on files with non-ascii characters). + Fixed bug [#79665](http://bugs.php.net/79665) (ini\_get() and opcache\_get\_configuration() inconsistency). + Fixed bug [#80030](http://bugs.php.net/80030) (Optimizer segfault with isset on static property with undef dynamic class name). + Fixed bug [#80175](http://bugs.php.net/80175) (PHP8 RC1 - JIT Buffer not working). + Fixed bug [#80184](http://bugs.php.net/80184) (Complex expression in while / if statements resolves to false incorrectly). + Fixed bug [#80255](http://bugs.php.net/80255) (Opcache bug (bad condition result) in 8.0.0rc1). + Fixed run-time binding of preloaded dynamically declared function. * OpenSSL: + Added Cryptographic Message Syntax (CMS) support. * PCRE: + Don't ignore invalid escape sequences. + Updated to PCRE2 10.35. * PDO: + Changed default PDO error mode to exceptions. + Fixed bug [#77849](http://bugs.php.net/77849) (Disable cloning of PDO handle/connection objects). * PDO\_Firebird: + Fixed bug [#64937](http://bugs.php.net/64937) (Firebird PDO preprocessing sql). * PDO\_OCI: + Added support for setting and getting the oracle OCI 18c call timeout. * PDO\_PGSQL: + Bumped required libpq version to 9.1. * PGSQL: + Bumped required libpq version to 9.1. * Phpdbg: + Fixed bug [#76596](http://bugs.php.net/76596) (phpdbg support for display\_errors=stderr). + Fixed bug [#76801](http://bugs.php.net/76801) (too many open files). + Fixed bug [#77800](http://bugs.php.net/77800) (phpdbg segfaults on listing some conditional breakpoints). + Fixed bug [#77805](http://bugs.php.net/77805) (phpdbg build fails when readline is shared). * Reflection: + Fixed bug [#64592](http://bugs.php.net/64592) (ReflectionClass::getMethods() returns methods out of scope). + Fixed bug [#69180](http://bugs.php.net/69180) (Reflection does not honor trait conflict resolution / method aliasing). + Fixed bug [#74939](http://bugs.php.net/74939) (Nested traits' aliased methods are lowercased). + Fixed bug [#77325](http://bugs.php.net/77325) (ReflectionClassConstant::$class returns wrong class when extending). + Fixed bug [#78697](http://bugs.php.net/78697) (ReflectionClass::implementsInterface - inaccurate error message with traits). + Fixed bug [#80190](http://bugs.php.net/80190) (ReflectionMethod::getReturnType() does not handle static as part of union type). + Fixed bug [#80299](http://bugs.php.net/80299) (ReflectionFunction->invokeArgs confused in arguments). + Fixed bug [#80370](http://bugs.php.net/80370) (getAttributes segfault on dynamic properties). + Implemented FR [#79628](http://bugs.php.net/79628) (Add $filter parameter for ReflectionClass::getConstants and ReflectionClass::getReflectionConstants) (carusogabriel) + Implement ReflectionProperty::hasDefaultValue and Reflection::getDefaultValue (beberlei) * SNMP: + Fixed bug [#70461](http://bugs.php.net/70461) (disable md5 code when it is not supported in net-snmp). * SPL: + Fixed bug [#65006](http://bugs.php.net/65006) (spl\_autoload\_register fails with multiple callables using self, same method). + Fixed bug [#65387](http://bugs.php.net/65387) (Circular references in SPL iterators are not garbage collected). + Fixed bug [#71236](http://bugs.php.net/71236) (Second call of spl\_autoload\_register() does nothing if it has no arguments). + Fixed bug [#79987](http://bugs.php.net/79987) (Memory leak in SplFileInfo because of missing zend\_restore\_error\_handling()). + SplFixedArray is now IteratorAggregate rather than Iterator. * SQLite3: + Added SQLite3::setAuthorizer() and respective class constants. * Session: + Fixed bug [#73529](http://bugs.php.net/73529) (session\_decode() silently fails on wrong input). + Fixed bug [#78624](http://bugs.php.net/78624) (session\_gc return value for user defined session handlers). * Shmop: + Converted shmop resources to objects. * SimpleXML: + Fixed bug [#63575](http://bugs.php.net/63575) (Root elements are not properly cloned). + Fixed bug [#75245](http://bugs.php.net/75245) (Don't set content of elements with only whitespaces). * Sodium: + Fixed bug [#77646](http://bugs.php.net/77646) (sign\_detached() strings not terminated). * Standard: + Don't force rebuild of symbol table, when populating $http\_response\_header variable by the HTTP stream wrapper. + Fixed bug [#47983](http://bugs.php.net/47983) (mixed LF and CRLF line endings in mail()). + Fixed bug [#64060](http://bugs.php.net/64060) (lstat\_stat\_variation7.phpt fails on certain file systems). + Fixed bug [#75902](http://bugs.php.net/75902) (str\_replace should warn when misused with nested arrays). + Fixed bug [#76859](http://bugs.php.net/76859) (stream\_get\_line skips data if used with data-generating filter). + Fixed bug [#77204](http://bugs.php.net/77204) (getimagesize(): Read error! should mention file path). + Fixed bug [#78385](http://bugs.php.net/78385) (parse\_url() does not include 'query' when question mark is the last char). + Fixed bug [#79868](http://bugs.php.net/79868) (Sorting with array\_unique gives unwanted result). + Fixed bug [#80256](http://bugs.php.net/80256) (file\_get\_contents strip first line with chunked encoding redirect). + Fixed bug [#80266](http://bugs.php.net/80266) (parse\_url silently drops port number 0). + Fixed bug [#80290](http://bugs.php.net/80290) (Double free when ASSERT\_CALLBACK is used with a dynamic message). + Implemented FR [#78638](http://bugs.php.net/78638) (\_\_PHP\_Incomplete\_Class should be final). + Made quoting of cmd execution functions consistent. * Tidy: + Removed the unused $use\_include\_path parameter from tidy\_repair\_string(). * Tokenizer: + Fixed bug [#80328](http://bugs.php.net/80328) (PhpToken::getAll() confusing name). * XML: + Fixed bug [#76874](http://bugs.php.net/76874) (xml\_parser\_free() should never leak memory). * XMLWriter: + Changed functions to accept/return XMLWriter objects instead of resources. + Implemented FR [#79344](http://bugs.php.net/79344) (xmlwriter\_write\_attribute\_ns: $prefix should be nullable). + Removed return types from XMLWriter stubs. * Zip: + Add "flags" options to ZipArchive::addGlob and addPattern methods keeping previous behavior having FL\_OVERWRITE by default. + Add ZipArchive::EM\_UNKNOWN and ZipArchive::EM\_TRAD\_PKWARE constants. + Add ZipArchive::isCompressionMethodSupported() and ZipArchive::isEncryptionMethodSupported() method (libzip 1.7.0). + Add ZipArchive::replaceFile() method. + Add ZipArchive::setCancelCallback method (since libzip 1.6.0). + Add ZipArchive::setMtimeName and ZipArchive::setMtimeIndex methods. + Add ZipArchive::setProgressCallback method (since libzip 1.3.0). + Add lastId property to ZipArchive. + Add optional "flags" parameter to ZipArchive::addEmptyDir, addFile and addFromString methods. + Fixed bug [#50678](http://bugs.php.net/50678) (files extracted by ZipArchive class lost their original modified time). + Fixed bug [#72374](http://bugs.php.net/72374) (remove\_path strips first char of filename). + Implemented FR [#77960](http://bugs.php.net/77960) (add compression / encryption options for ZipArchive::addGlob and ZipArchive::addPattern). + ZipArchive::status and ZipArchive::statusSys properties and ZipArchive::getStatusString() method stay valid after the archive is closed. * Zlib: + Fixed bug [#71417](http://bugs.php.net/71417) (fread() does not report zlib.inflate errors). + Fixed bug [#78792](http://bugs.php.net/78792) (zlib.output\_compression disabled by Content-Type: image/). ChangeLogs* **PHP 8.x** * [PHP 7.x](https://www.php.net/ChangeLog-7.php) * [PHP 5.x](https://www.php.net/ChangeLog-5.php) * [PHP 4.x](https://www.php.net/ChangeLog-4.php), PHP 8 ChangeLog, php.net, 01jrt52bjjntmpgqnmvn4tqaab.