PHP 8 变更日志

8.3 | 8.2 | 8.1 | 8.0

版本 8.3.10

  • 核心
    • 修复了 bug GH-13922 (修复了对 sysconf(_SC_GETPW_R_SIZE_MAX) == -1 的系统支持).
    • 修复了 bug GH-14626 (为大型块修复了 is_zend_ptr()).
    • 修复了 bug GH-14590 (FPM 测试 gh13563-conf-bool-env.phpt 中的内存泄漏).
    • 修复了 OSS-Fuzz #69765.
    • 修复了 bug GH-14741 (Zend/zend_types.h 中的段错误).
    • 修复了 bug GH-14969 (使用 __toString() 时属性强制转换中的使用后释放).
  • Dom
    • 修复了 bug GH-14702 (DOMDocument::xinclude() 崩溃).
  • Fileinfo
    • 修复了 bug GH-14888 (README.REDIST.BINS 指向不存在的 LICENSE).
  • Gd
    • ext/gd/tests/gh10614.phpt:如果无 PNG 支持,则跳过。
    • 恢复警告而不是致命错误。
  • LibXML
    • 修复了 bug GH-14563 (使用 libxml2 v2.13.0 构建失败).
  • Opcache
    • 修复了 bug GH-14550 (当启用 Zend DTrace 时,没有关于 opcache.jit 隐式禁用的警告消息).
  • 输出
    • 修复了 bug GH-14808 (使用空输出缓冲区时,Zend/zend_string.h 中出现意外的空指针).
  • PDO
    • 修复了 bug GH-14712 (使用 PDORow 访问空属性时崩溃).
  • Phar
    • 修复了 bug GH-14603 (来自 zip 条目的空字符串).
  • PHPDBG
    • 修复了 bug GH-14596 (使用 ASAN 和 ZEND_RC_DEBUG=1 崩溃).
    • 修复了 bug GH-14553 (echo 输出在 NULL 字节处被截断).
  • Shmop
    • 修复了 bug GH-14537 (shmop Windows 11 使进程崩溃).
  • SPL
    • 修复了 bug GH-14639 (ext/spl/spl_observer.c 中空指针内的成员访问).
  • 标准
    • 修复了 bug GH-14775 (使用负步长参数时,range 函数溢出).
    • 修复 32 位 wordwrap 测试失败。
    • 修复了 bug GH-14774 (time_sleep_until 溢出).
    • 修复了 bug GH-14930 (在 PHP 8.3 中,自定义流包装器 dir_readdir 输出被截断为 255 个字符).
  • Tidy
    • 修复了 tidy_repair_file() 中的内存泄漏。
  • 树形
    • 修复了与 libxml2 2.13.2 的兼容性。
  • XML
    • 移除了即将被弃用的 libxml 字段。
    • 修复了 bug GH-14834 (使用 --with-pear 时,PHP 安装失败).

版本 8.3.9

  • 核心
    • 修复了 bug GH-14315 (不兼容的指针类型警告).
    • 修复了 bug GH-12814 (在 Apple Silicon 上运行时,在 MacOS 14 上过早达到 max_execution_time).
    • 修复了 bug GH-14387 (在 Generator->throw() 期间,在从值中生成的对象的析构函数中进行堆栈遍历时崩溃).
    • 修复了 bug GH-14456 (尝试使用私有构造函数初始化类会调用析构函数).
    • 修复了 bug GH-14510 (由于缺少 pthread_attr_destroy() 调用导致的内存泄漏).
    • 修复了 bug GH-14549 (fclose 的不兼容函数指针类型).
  • BCMatch
    • 修复了 bug (bcpowmod() 使用 mod = -1 时,返回 1,而应该是 0).
  • Curl
    • 修复了 bug GH-14307 (使用 curl 8.8.0 时,测试 curl_basic_024 失败).
  • DOM
    • 修复了 bug GH-14343 (xml 和 dom 中的内存泄漏).
  • FPM
    • 修复了 bug GH-14037 (PHP-FPM ping.path 和 ping.response 配置变量在状态池中被忽略).
  • GD
    • 修复了 imagecolorset() 的参数数量。
  • Intl
    • 修复了 SpoofChecker 中的引用处理。
  • MySQLnd
    • 部分修复了 bug GH-10599 (在 Windows 上使用具有活动 mysqli 连接的类的匿名自引用函数时,Apache 崩溃).
  • Opcache
    • 修复了 bug GH-14267 (opcache.jit=off 不允许在运行时启用 JIT).
    • 修复了 FreeBSD/amd64 上 JIT 中的 TLS 访问。
    • 修复了 bug GH-11188 (在 ARM64 上构建 TSRM 时出错).
  • PDO ODBC
    • 修复了 bug GH-14367 (不兼容的 SDWORD 类型与 iODBC).
  • PHPDBG
    • 修复了 bug GH-13681 (在监视点添加失败时出现段错误).
  • Soap
    • 修复了 bug #47925 (PHPClient 无法解压缩响应).
    • 修复了丢失的错误恢复代码。
    • 修复了如果两次调用 SoapServer::setObject() 就会出现内存泄漏的问题。
    • 修复了如果两次调用 SoapServer::setClass() 就会出现内存泄漏的问题。
    • 修复了在 ext-soap 中读取 zlib ini 设置。
    • 修复了字符串函数名称查找时的内存泄漏。
    • 修复了 bug #69280 (SoapClient classmap 不支持完全限定的类名).
    • 修复了 bug #76232 (SoapClient Cookie 头部分号).
    • 修复了调用 SoapFault::__construct() 两次时的内存泄漏。
  • Sodium
    • 修复了 ext/sodium 中某些函数失败时的内存泄漏。
  • SPL
    • 修复了 bug GH-14290 (扩展 spl 中的空指针内的成员访问).
  • 标准
    • 修复了 bug GH-14483 (修复了检查抽象命名空间 Unix 套接字长度的越界错误).
    • 修复了 bug GH-11078 (PHP 致命错误触发指针被释放,该指针未被分配,并且 malloc:ptr 的双重释放错误).

版本 8.3.8

  • CGI
    • 修复了 Windows 上的缓冲区限制,用 _read 替换了 read 调用的使用。
    • 修复了 bug GHSA-3qgc-jrrr-25jv (绕过 CVE-2012-1823,PHP-CGI 中的参数注入)。(CVE-2024-4577)
  • CLI
    • 修复了 bug GH-14189 (PHP 交互式 shell 输入状态错误地处理了带引号的 here-doc 字面量).
  • 核心
    • 修复了 bug GH-13970 (对非编译时表达式的 #[Attribute] 标志类型进行错误验证).
  • DOM
    • 修复了在仍然存在实体引用时删除实体声明导致的崩溃。
    • 修复了在 C14N 中未正确处理引用。
    • 修复了当迭代器耗尽时,调用 childNodes next() 导致的崩溃。
    • 修复了在处理包含文本节点的片段时,ParentNode::append() 中的崩溃。
  • 过滤器
    • 修复了 bug GHSA-w8qr-v226-r27w (filter_var FILTER_VALIDATE_URL 中的过滤器绕过)。(CVE-2024-5458)
  • FPM
    • 修复了 bug GH-14175 (在 systemd 状态中显示十进制数字而不是科学计数法).
  • 哈希
    • ext/hash:交换 `__has_builtin` 和 `__GNUC__` 的检查顺序 (Saki Takamachi)
  • Intl
    • 修复了在没有 C++17 编译器的系统上的构建回归。
  • MySQLnd
    • 修复了 bug GH-14255 (mysqli_fetch_assoc 报告嵌套查询的错误).
  • Opcache
    • 修复了 bug GH-14109 (修复了在 shm 中意外持久化内部类常量).
  • OpenSSL
    • PHP 中的 openssl_private_decrypt 函数在使用 PKCS1 填充 (OPENSSL_PKCS1_PADDING,这是默认值) 时,容易受到 Marvin 攻击,除非它与包含此拉取请求更改的 OpenSSL 版本一起使用:https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection)。这些更改是 OpenSSL 3.2 的一部分,并且也已移植到各种 Linux 发行版的稳定版本,以及自上次发布以来为 Windows 提供的 PHP 构建。所有发行版和构建者应确保使用此版本,以防止 PHP 易受攻击。
  • 标准
    • 修复了 bug GHSA-9fcc-425m-g385 (绕过 CVE-2024-1874)。(CVE-2024-5585)
  • XML
    • 修复了 bug GH-14124 (在特定内存限制下,使用 XML 扩展时出现段错误).
  • XMLReader
    • 修复了 bug GH-14183 (XMLReader::open() 无法被覆盖).

版本 8.3.7

  • 核心
    • 修复了在没有线程支持的 Linux/uclibc-ng 上的 zend_call_stack 构建。
    • 修复了 bug GH-13772 (启用 JIT 时,观察者 fcall 处理程序中的无效 execute_data->opline 指针).
    • 修复了 bug GH-13931 (在 Zend/zend_opcode.c 中将零偏移量应用于空指针).
    • 修复了 bug GH-14942 (使 zend-max-execution-timers 的行为与其他超时实现一致).
    • 修复了 bug GH-14003 (使用可调用转换参数时,未完成调用的清理失败).
    • 修复了 bug GH-14013 (在配置中错误地附加了 dnl).
    • 修复了 bug GH-10232 (如果自动加载在常量解析期间发生,则文件名和行号被错误识别).
    • 修复了 bug GH-13727 (缺少 void 关键字).
  • 纤程
    • 修复了 bug GH-13903 (执行 copy() 时,ASAN 出现假阳性下溢).
  • Fileinfo
    • 修复了 bug GH-13795 (ext/fileinfo/tests/bug78987.phpt 在大端 PPC 上测试失败).
  • FPM
    • 修复了 bug GH-13563(在 FPM 配置中通过 env 设置 bool 值失败)。
  • Intl
    • 修复了 icu 74 及更高版本的构建。
  • MySQLnd
    • 修复了在 32 位非快速路径平台上发生的越界移位错误。
  • Opcache
    • 修复了 bug GH-13433(在使用 opcache.preload 时,zend_class_init_statics 中出现段错误)。
    • 修复了跨编译单元对静态调用错误的假设。
  • OpenSSL
    • 修复了 bug GH-10495(OpenSSL 流上的 feof 无限期挂起)。
  • PDO SQLite
    • 修复了 GH-13984(现在在 memcmp 之前检查缓冲区大小)。
    • 修复了 GH-13998(正确管理 agg_context->val 的引用计数)。
  • Phar
    • 修复了 bug GH-13836(将 Phar 中的文件重命名为已存在的文件名会导致空指针解除引用)。
    • 修复了 bug GH-13833(在 zend_hash.c 中对空指针应用零偏移量)。
    • 修复了在调用 EVP_SignInit 之前可能发生的空指针解除引用错误。
  • PHPDBG
    • 修复了 bug GH-13827(在 phpdbg_frame 中对类型为 'zval' 的空指针进行访问)。
  • Posix
    • 修复了 ext/posix 中对可重入函数的使用。
  • Session
    • 修复了 bug GH-13856(在 ext/session/mod_files.c 中,类型为 'ps_files' 的空指针内的成员访问)。
    • 修复了 bug GH-13891(使用 ini_set 和 session.trans_sid_hosts 时出现内存泄漏和段错误)。
    • 修复了 Windows 上文件模式的缓冲区 _read/_write 大小限制。
    • 修复了 Windows 上 file_get_contents() 失败并显示 "errno=22 Invalid argument" 的问题。
    • 修复了 bug GH-13264(第一部分 - 流过滤器失败时的内存泄漏)。
    • 修复了 bug GH-13860(ext/openssl/xp_ssl.c 中的 PHP_STREAM_OPTION_CHECK_LIVENESS 案例不正确 - 导致使用已失效的套接字)。
    • 修复了 bug GH-11678(在 musl 1.2.4 - lfs64 上构建失败)。
  • 树形
    • 修复了 gcc-14 Wcalloc-transposed-args 警告。

版本 8.3.6

  • 核心
    • 修复了 GH-13569(在扫描 WeakMaps 时,GC 缓冲区会不必要地增长到 GC_MAX_BUF_SIZE)。
    • 修复了 bug GH-13612(带有弱引用的析构函数中的内存损坏)。
    • 修复了 bug GH-13446(在异常处理程序完成之后恢复它)。
    • 修复了 bug GH-13784(AX_GCC_FUNC_ATTRIBUTE 失败)。
    • 修复了 bug GH-13670(GC 在析构函数中创建大量对象时无法很好地扩展)。
  • DOM
    • 添加了一些缺失的 ZPP 检查。
    • 修复了 XPath 评估结果中可能发生的内存泄漏。
  • FPM
    • 修复了 GH-11086(FPM:在守护进程模式下,配置文件测试运行两次)。
    • 修复了 fpm_shm_free() 中不正确的检查。
  • GD
    • 修复了 bug GH-12019(在特性测试中添加 GDLIB_CFLAGS)。
  • Gettext
    • 修复了在 gettext 0.22.5 中,使用 dcgettext/dcngettext 调用且类别设置为 LC_ALL 时出现的 SIGABRT 信号。
  • MySQLnd
    • 修复了 GH-13452(修复了握手响应 [mysqlnd])。
    • 修复了 check_mb_eucjpms() 中的错误字符集长度。
  • Opcache
    • 修复了 GH-13508(当 op1 为空时,JITed QM_ASSIGN 可能被优化掉)。
    • 修复了 GH-13712(在加载 opcache 时,当调用内部特征的特征方法时,启用观察者会导致段错误)。
  • Random
    • 修复了 bug GH-13544(对 mt_srand 的 PHP 8.2 之前的兼容性,支持未知模式)。
    • 修复了 bug GH-13690(当使用 MT_RAND_PHP 时,全局 Mt19937 在请求之间没有正确重置)。
  • Session
    • 修复了 bug GH-13680(使用 session_decode 时出现段错误,以及编译错误)。
  • SPL
    • 修复了 bug GH-13685(zend_string.h 中出现意外的空指针)。
  • 标准
    • 修复了 bug GH-11808(测试修改了实时文件系统)。
    • 修复了 GH-13402(在 mail() 的 $additional_headers 中添加了对 `\n` 的验证)。
    • 修复了 bug GH-13203(在 Windows 上,file_put_contents 对大于 4GB 的字符串失败)。
    • 修复了 bug GHSA-pc52-254m-w9w7(通过 proc_open 的类数组 $command 参数进行命令注入)。(CVE-2024-1874)
    • 修复了 bug GHSA-wpj3-hf5j-x4v4(由于对 CVE-2022-31629 修复的补丁不完整,导致 __Host-/__Secure- Cookie 绕过)。(CVE-2024-2756)
    • 修复了 bug GHSA-h746-cjrr-wfmr(password_verify 可能错误地返回 true,导致 ATO 风险)。(CVE-2024-3096)
    • 修复了 bug GHSA-fjp9-9hwx-59fq(对于某些输入,mb_encode_mimeheader 会无限期运行)。(CVE-2024-2757)
    • 修复了 bug GH-13932(尝试修复 Windows 构建上的 mbstring)(msvc)。

版本 8.3.4

  • 核心
    • 修复了 ZTS 持久资源在关闭时的崩溃问题。
  • Curl
    • 修复了由于 libcurl 8.6.0 中的字符串更改导致的测试失败问题。
  • DOM
    • 修复了在命名空间移除操作中,对于深度极深的树,可能出现的内存泄漏问题。
    • 修复了 DOMNodeList 和 DOMNodeMap 中对维度的引用访问问题。
  • Fileinfo
    • 修复了 bug GH-13344(finfo::buffer():识别数据失败 0:(null),回溯)。
  • FPM
    • 修复了 bug #75712(php-fpm 中的 getenv 不应该读取 $_ENV、$_SERVER)。
  • GD
    • 修复了 bug GH-12019(系统 gd 库中图像格式的检测)。
  • MySQLnd
    • 修复了 bug GH-11950([mysqlnd] 修复了当 CR_SERVER_GONE_ERROR 已经设置时,不设置 CR_MALFORMED_PACKET 为错误)。
  • PDO
    • 修复了多个 PDORow 错误。
  • PGSQL
    • 修复了 bug GH-13354(pg_execute/pg_send_query_params/pg_send_execute 传递引用时出现空值)。
  • SPL
    • 修复了 bug GH-13531(在 PHP 8.2.15 中,SplfixedArray 在反序列化后无法调整大小)。
  • 标准
    • 修复了 bug GH-13279(在 uksort 中,对数组进行原地修改时出现不稳定)。
    • 修复了数组键作为哈希到字符串(不区分大小写)比较时的类型错误,用于第二个操作数的缓冲区大小(尽管目前尚未使用)。
  • XML
    • 修复了 bug GH-13517(使用 --with-expat 构建时出现多个测试失败)。

版本 8.3.3

  • 核心
    • 修复了 zend-max-execution-timers 构建中的定时器泄漏问题。
    • 修复了 bug GH-12349(在 ARM 上使用 mold 时链接失败)。
    • 修复了 bug GH-13097(在 trigger_error/抛出异常时,匿名类引用)。
    • 修复了 bug GH-13177(PHP 8.3.2:在特征中使用 final 私有构造函数时不允许)。
    • 修复了 bug GH-13215(GCC 14 构建失败)。
  • Curl
    • 修复了 curl_multi_init() 中缺少的错误检查问题。
  • FPM
    • 修复了 bug GH-12996(在路径中出现加号时,Apache ProxyPassMatch 的 SCRIPT_NAME 不正确)。
  • GD
    • 修复了 bug GH-10344(imagettfbbox():无法找到/打开 UNC 路径的字体)。
    • 修复了 bug GH-10614(imagerotate 将图片旋转 90 度时,图片会变成全黑)。
  • LibXML
    • 修复了使用实体引用和预定义实体时发生的崩溃问题。
  • MySQLnd
    • 修复了 bug GH-12107(当两次运行存储过程(返回结果集)时,PHP 崩溃)。
  • Opcache
    • 修复了 bug GH-13145(strtok() 不是编译时)。
    • 修复了 range() 的类型推断问题。
    • 修复了 bug GH-13232(当 JIT 关闭但 JIT_debug 仍然启用时,会报告段错误)。
  • OpenSSL
    • 修复了当未设置 OPENSSL_NO_ENGINE 时,LibreSSL 未定义的引用问题。(David Carlier)。
  • PDO_Firebird
    • 修复了 GH-13119(更改为使用 `H` 格式将浮点数和双精度数转换为字符串)。
  • Phar
    • 修复了 bug #71465(PHAR 不知道 litespeed)。
    • 修复了 bug GH-13037(PharData 错误地提取 zip 文件)。
  • Random
    • 修复了 bug GH-13138(Randomizer::pickArrayKeys() 无法检测到损坏的引擎)。
  • Session
    • 修复了 bug GH-12504(在自动加载器中出现致命错误时,会写入损坏的会话)。
  • 标准
    • 修复了 bug GH-13094(range(9.9, '0') 导致段错误)。
    • 修复了 bug GH-13071(使用可映射内存的源流复制大型文件可能会耗尽可用内存并失败)。

版本 8.3.2

  • 核心
    • 修复了 bug GH-12953(当使用超过 11k 个元素的 composer 类映射加载时,SSA 完整性验证出现假阳性)。
    • 修复了 bug GH-12999(当不支持 strnlen 时,zend_strnlen 构建)。
    • 修复了 bug GH-12966(缺少交叉编译的第三个参数,导致 Autoconf 不发出警告)。
    • 修复了 bug GH-12854(8.3 - 作为最终特征使用的方法无法在 Reflection 中正确报告可见性)。
  • Cli
    • 修复了在使用路由脚本和 max_input_time 时,内置 web 服务器中的错误超时问题。
  • DOM
    • 修复了 bug GH-12870(创建 xmlns 属性会导致 DOMException)。
    • 修复了在没有文档的情况下使用 toggleAttribute() 时发生的崩溃问题。
    • 修复了 adoptNode 中带有属性引用的崩溃问题。
    • 修复了 bug GH-13012(当属性顺序不同时,DOMNode::isEqualNode() 不正确)。
  • FFI
    • 修复了 bug GH-9698(stream_wrapper_register 与 FFI\CData 崩溃)。
    • 修复了 bug GH-12905(FFI::new 与观察者相互作用不良)。
  • Intl
    • 修复了 GH-12943(IntlDateFormatter::__construct 接受 'C' 作为有效区域设置)。
  • 哈希
    • 修复了 bug GH-12936(如果对字符串使用 sha512 且字符串长度大于 4GiB,则 hash() 函数会无限期挂起)。
  • ODBC
    • 修复了在 Apache 关闭时,使用持久连接导致的崩溃问题。
  • Opcache
    • 修复了 oss-fuzz #64727(当 DIM 与结果为同一个变量时,JIT 未定义数组键警告可能会用 NULL 覆盖 DIM)。
    • 添加了对 SELinux mprotect execheap 问题的解决方法。参见 https://bugzilla.kernel.org/show_bug.cgi?id=218258。
  • OpenSSL
    • 修复了 bug GH-12987(openssl_csr_sign 可能会在发生错误时泄漏新的证书)。
  • PDO
    • 修复了 GH-12969(修复了 PDO::getAttribute() 以获取 PDO::ATTR_STRINGIFY_FETCHES)。
  • PDO_ODBC
    • 修复了 bug GH-12767(无法使用 setAttribute() 打开自动提交模式)。
  • PGSQL
    • 修复了 auto_reset_persistent 处理和 allow_persistent 类型。
    • 修复了 bug GH-12974(在使用 pg_pconnect() 时,Apache 在关闭时崩溃)。
  • Phar
    • 修复了 bug #77432(包含 phar 文件时出现段错误)。
  • PHPDBG
    • 修复了 bug GH-12962(phpdbg_prompt.c 中对 init_file 的双重释放)。
  • SimpleXML
    • 修复了获取 SimpleXMLElement 未初始化属性的地址导致的崩溃问题。
    • 修复了 bug GH-12929(使用 stream_wrapper_register 的 SimpleXMLElement 可能会导致段错误)。
  • Tidy
    • 修复了 bug GH-12980(tidynode.props.attribute 缺少 "布尔属性" 和空属性)。

版本 8.3.1

  • 核心
    • 修复了 bug GH-12758 / GH-12768(ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 内部的 OOM 处理程序中的无效 opline)。
    • 修复了多个缺少的 NULL 检查问题。
    • 修复了 bug GH-12835(在内部 __call 中,call->extra_named_params 泄漏)。
    • 修复了 bug GH-12826(嵌套循环中的奇怪指针问题)。
  • FPM
    • 修复了 bug GH-12705(fpm_status_export_to_zval 中的段错误)。
  • FTP
    • 修复了 bug GH-9348(FTP & SSL 会话重用)。
  • LibXML
    • 修复了 libxml2 2.12.0 的测试失败问题。
  • MySQLnd
    • 避免使用未初始化的结构体。
    • 修复了 bug GH-12791(MySQLnd 调试代码中可能发生的空指针解除引用)。
  • Opcache
    • 修复了 JIT 错误(函数 JIT 在发出 "Uninitialized string offset" 警告的同时,也会发出无效偏移量错误)。
    • 修复了 JIT 错误(JIT 在抛出错误的同时发出“尝试为非对象分配属性”警告)。
  • PDO PGSQL
    • 修复了 PDO::pgsqlGetNotify() 中 $fetchMode 的默认值(kocsismate)。
  • SOAP
    • 修复了 GH-12838([SOAP] 临时 WSDL 缓存文件未被删除)。
  • 标准
    • 修复了 GH-12745 (http_build_query() 的默认空参数 $arg_separator 被隐式转换为字符串)。

版本 8.3.0

  • Bcmath
    • 修复了 GH-11761(从数字中删除尾随零)(jorgsowa)。
  • CLI
    • 在内置服务器中添加了 pdeathsig,以便在主进程被杀死时终止工作进程。
    • 修复了 GH-11104(在没有脚本的情况下,CLI 无法使用 STDIN/STDOUT/STDERR)。
    • 实现 GH-10024(使用 php -l 支持一次性 lint 多个文件)。
  • 核心
    • 修复 GH-11388(从 trait 导入方法时允许使用“final”修饰符)。
    • 修复了 GH-11406(使用解包和魔术方法闭包会导致段错误)。
    • 修复了 GH-9388(改进未设置属性和 __get 类型不兼容的错误消息)。
    • SA_ONSTACK 现在已设置为信号处理程序,以更友好地处理其他进程内代码,例如 Go 的 cgo。
    • 现在,在禁用信号时设置 SA_ONSTACK。
    • 修复 GH-9649:信号处理程序现在执行无操作,而不是在未由 TSRM 管理的线程上执行时崩溃。
    • 为纤程添加了影子堆栈支持。
    • 修复了 GH-9965(修复意外缓存具有副作用的默认参数)。
    • 实现 GH-10217(使用 strlen() 来确定类名长度)。
    • 修复了 GH-8821(改进常量表达式中错误的行号)。
    • 修复了 GH-10083(允许在 & 和参数之间使用注释)。
    • Zend 最大执行计时器现在默认情况下为 Linux 上的 ZTS 构建启用。
    • 修复了 GH-10469(在运行时设置的 open_basedir 路径中不允许使用 ..)。
    • 修复了 GH-10168GH-10582(使用析构函数和 VM 返回值会导致各种段错误)。
    • 修复了 GH-10935(如果类从其父类继承了静态属性,则使用 trait 不会重新声明静态属性)。
    • 修复了 GH-11154(空数组上的负索引不会影响下一个选择的索引)。
    • 修复了 GH-8846(为没有父类的类实现延迟早期绑定)。
    • 修复了错误 #79836(concat_function 中的段错误)。
    • 修复了错误 #81705(使用连接操作的 set_error_handler 导致类型混淆/UAF)。
    • 修复 GH-11348(从魔术方法创建的闭包不接受命名参数)。
    • 修复 GH-11388(从 trait 导入方法时允许使用“final”修饰符)。
    • 修复了 GH-11406(使用解包和魔术方法闭包会导致段错误)。
    • 修复了 GH-11507(8.3 中字符串连接的性能下降)。
    • 修复了 GH-11488(在联合空类型上缺少“可选参数位于必需参数之前”的弃用警告)。
    • 实现 #[\Override] 属性 RFC。
    • 修复了 GH-11601(不正确地处理展开和优雅退出异常)。
    • 为 OpenBSD 添加了 zend_call_stack_get 实现。
    • 在 zend_eval_const_expr() 中添加堆栈限制检查。
    • 公开在 gc_status() 中收集循环所花费的时间。
    • 删除键仅通过条目值可访问的 WeakMap 条目。
    • 在 INI 更新时解析 open_basedir 路径。
    • 修复了 oss-fuzz #60741(open_basedir 中的泄漏)。
    • 修复了由于 OOM 错误而释放某些未完全初始化的对象(PDO、SPL、XSL)期间的段错误。
    • 引入了 Zend 保护递归保护以修复 __debugInfo 问题。
    • 修复了 oss-fuzz #61712(在二进制操作期间,使用错误处理程序会导致断言失败)。
    • 修复了 GH-11847(启用了 DTrace 的构建已损坏)。
    • 修复了 OSS Fuzz #61865(在错误处理程序中,对声明的属性进行 ++/-- 操作,会导致未定义的变量)。
    • 修复了检查用户流是否可转换时发出的警告。
    • 修复了 GH-12123(在使用 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX 时,MacOS 上使用 C++ 扩展会导致编译错误)。
    • 修复了 GH-12189(trait 中的 #[Override] 属性不会检查父类实现)。
    • 修复了 OSS Fuzz #62294(在字符串变量上进行 ++/-- 操作后取消设置变量的警告)。
    • 修复了编译记忆表达式时发生的缓冲区下溢。
    • 修复了 oss-fuzz #63802(在 post inc/dec 的错误路径中,OP1 泄漏)。
  • Curl
    • 添加了 Curl 选项和常量,直至(包括)版本 7.87。
  • 日期
    • 实现更合适的日期/时间异常 RFC。
  • DOM
    • 修复了 GH-8388(DOMAttr 解码字符引用)。
    • 修复了 GH-11308(getElementsByTagName() 为 O(N^2))。
    • 修复了 #79700(错误使用 libxml oldNs 会导致性能问题)。
    • 修复了 #77894(即使在规范化之后,DOMNode::C14N() 在生成的 DOMDocuments 上也很慢)。
    • 恢复对 DOMAttr::$value 和 DOMAttr::$nodeValue 展开的更改。
    • 修复了 GH-11500(在 createElementNS() 中重用命名空间会导致错误的输出)。
    • 实现了 DOMDocument::adoptNode()。之前,这始终会抛出“尚未实现”的异常。
    • 修复了 GH-9628(隐式地从 \DOMDocument 中删除节点会破坏现有引用)。
    • 添加了 DOMNode::contains() 和 DOMNameSpaceNode::contains()。
    • 添加了 DOMElement::getAttributeNames()。
    • 添加了 DOMNode::getRootNode()。
    • 添加了 DOMElement::className 和 DOMElement::id。
    • 添加了 DOMParentNode::replaceChildren()。
    • 添加了 DOMNode::isConnected 和 DOMNameSpaceNode::isConnected。
    • 添加了 DOMNode::parentElement 和 DOMNameSpaceNode::parentElement。
    • 添加了 DOMNode::isEqualNode()。
    • 添加了 DOMElement::insertAdjacentElement() 和 DOMElement::insertAdjacentText()。
    • 添加了 DOMElement::toggleAttribute()。
    • 修复了 GH-11792(LIBXML_NOXMLDECL 未实现或已损坏)。
    • adoptNode 现在尊重严格错误检查属性。
    • 将 DOMChildNode 父级检查与规范对齐。
    • 修复了 #80927(在创建属性节点后删除 documentElement:可能的释放后使用)。
    • 修复了各种命名空间前缀冲突解析错误。
    • 修复了在没有前缀的情况下调用 createAttributeNS() 导致元素的默认命名空间发生更改的问题。
    • 修复了 GH-11952(在通过 libxml_set_external_entity_loader 阻止实体加载时,出现了令人困惑的警告)。
    • 修复了使用已释放和重新分配的文档节点时缓存失效的问题。
    • 修复了在 C++ 中包含 php_libxml.h 头文件时发生的编译错误。
    • 修复了 #47531(无法删除冗余的 xmlns: 声明)。
  • Exif
    • 删除了 exif_process_TIFF_in_JPEG() 中不必要的代码路径。
  • FFI
    • 实现 GH-11934(允许将 CData 传递到结构体和/或联合字段中)。
  • Fileinfo
    • 将捆绑的 libmagic 升级到 5.43。
    • 修复 GH-11408(无法构建 PHP 8.3.0 alpha 1 / fileinfo 扩展)。
  • FPM
    • status.listen 共享池现在使用与它共享的池相同的 php_values(包括 expose_php)和 php_admin_value。
    • 如果 fpm 套接字未在预期的路径上注册,则添加警告到日志中。
    • 修复了 #76067(system() 函数调用会泄漏 php-fpm 监听套接字)。
    • 修复了 GH-12077(PHP 8.3.0RC1 损坏了 socket-close-on-exec.phpt)。
  • GD
    • 删除了 imagerotate 的“ignore_transparent”参数,因为它没有效果。
  • Intl
    • 为 numfmt_set_pattern 添加了模式格式错误信息。
    • 为 Spoofchecker 类添加了 MIXED_NUMBERS 和 HIDDEN_OVERLAY 常量。
    • 更新了 datefmt_set_timezone/IntlDateformatter::setTimezone 的返回值类型。(David Carlier)。
    • 更新了 IntlBreakInterator::setText 的返回值类型。
    • 更新了 IntlChar::enumCharNames 的返回值类型。
    • 删除了对 IntlDateFormatter::construct 的 BC 中断,该中断在使用无效的语言环境时抛出异常。
  • JSON
    • 添加了 json_validate()。
  • LDAP
    • 弃用使用单独的主机名和端口调用 ldap_connect()。
  • LibXML
    • 修复了使用 -Werror=incompatible-function-pointer-types 和旧的 libxml2 时发生的编译错误。
  • MBString
    • mb_detect_encoding 能够更好地识别土耳其语文本的正确编码。
    • mb_detect_encoding 的“非严格”模式现在按文档中的描述进行操作。以前,如果输入字符串的相同字节(例如第一个字节)在所有候选编码中都是无效的,它将返回 false。更一般地说,当遇到无效字节时,它会从考虑范围内删除候选编码,如果相同的输入字节删除了所有剩余的候选编码,它将返回 false。另一方面,如果除了一个以外的所有候选编码都从考虑范围内删除,它将返回最后一个剩余的编码,而不考虑在字符串中可能遇到的编码错误数量。这与文档中描述的行为不同,文档中说:“如果 strict 设置为 false,则将返回最接近的匹配编码。”(Alex Dowad)
    • mb_strtolower、mb_strtotitle 和 mb_convert_case 对希腊字母 sigma 实现了条件大小写规则。对于 mb_convert_case,条件大小写仅适用于 MB_CASE_LOWER 和 MB_CASE_TITLE 模式,而不适用于 MB_CASE_LOWER_SIMPLE 和 MB_CASE_TITLE_SIMPLE。
    • mb_detect_encoding 能够更好地识别具有字节顺序标记的 UTF-8 和 UTF-16 字符串。
    • mb_decode_mimeheader 按 RFC 2047 的要求解释 QPrint 编码的 MIME 编码字中的下划线;它们将被转换为空格。在下划线必须在这些 MIME 编码字中编码为 "=5F"。
    • mb_encode_mimeheader 在 QPrint 编码输入字符串时不再删除 NUL(零)字节。这以前会导致某些文本编码(特别是 UTF-16 和 UTF-32)中的字符串被 mb_encode_mimeheader 损坏。
    • 实现 mb_str_pad() RFC。
    • 修复了 GH-11514(启用 --enable-mbstring 时,PHP 8.3 构建失败)。
    • 修复了 mb_list_encodings() 返回值的使用后释放问题。
    • 修复了 GH-11992(utf_encodings.phpt 在 Windows 32 位上失败)。
  • mysqli
    • mysqli_fetch_object 抛出 ValueError 而不是 Exception。
  • Opcache
    • 在 opcache 的 phpinfo 部分添加了启动、重启和强制重启时间。
    • 修复 GH-9139:允许在 opcache.preload_user=root 时在 opcache.preload 中使用 FFI。
    • 使 opcache.preload_user 在 cli 和 phpdbg SAPIs 中始终可选。
    • 允许在 FreeBSD 上使用 W/X 位进行页面创建,即使系统设置不同。
    • 在 Linux 上,为 zend_shared_alloc_create_lock() 添加了 memfd api 的使用,以创建一个抽象的匿名文件,用于 opcache 的锁。
    • 避免从多个进程/线程重置 JIT 计数器处理程序。
    • 为引用添加了 COPY_TMP 类型推断。
  • OpenSSL
    • 添加了 OPENSSL_CMS_OLDMIMETYPE 和 PKCS7_NOOLDMIMETYPE 常量,用于在 mime 内容类型之间切换。
    • 修复了 GH-11054:在使用 PEM 公钥时,重置 OpenSSL 错误。
    • 添加了对 openssl_pkey_new 中其他 EC 参数的支持。
  • PCNTL
    • SA_ONSTACK 现在已设置为 pcntl_signal。
    • 添加了 SIGINFO 常量。
  • PCRE
    • 将捆绑的 libpcre2 升级到 10.42。
  • PGSQL
    • pg_fetch_object 抛出 ValueError 而不是 Exception。
    • pg_cancel 使用线程安全的 PQcancel api 而不是。
    • pg_trace 新的 PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE 常量支持。
    • pg_set_error_verbosity 添加了 PGSQL_ERRORS_STATE 常量。
    • pg_convert/pg_insert 类型错误的 E_WARNING 已被转换为 ValueError/TypeError 异常。
    • 添加了 pg_set_error_context_visibility 以设置错误消息中上下文的可见性。
  • Phar
    • 修复了 phar_rename_archive() 中的内存泄漏。
  • POSIX
    • 添加了 posix_sysconf。
    • 添加了 posix_pathconf。
    • 添加了 posix_fpathconf。
    • 修复了 zend_parse_arg_long 的布尔指针参数赋值。
    • 添加了 posix_eaccess。
  • Random
    • 添加了 Randomizer::getBytesFromString()。
    • 添加了 Randomizer::nextFloat()、::getFloat() 和 IntervalBoundary。
    • 为 NetBSD(从 10.x 开始)启用 getrandom()。
    • 弃用 MT_RAND_PHP。
    • 修复了 Randomizer::getFloat() 在某些情况下返回不正确的结果。
  • 反射
    • 修复了 GH-9470(ReflectionMethod 构造函数不应查找私有父方法)。
    • 修复了 GH-10259(ReflectionClass::getStaticProperties 不需要 null 返回类型)。
  • SAPI
    • 修复了 GH-11141(无法打开输入文件:应发送到 stderr)。
  • Session
    • 修复了错误 GH-11529(处理 Apache 请求后崩溃)。
  • SimpleXML
    • 修复了错误 GH-12192(SimpleXML 在 foreach 内调用 getName() 时出现无限循环)。
    • 修复了错误 GH-12208(SimpleXML 在 foreach 内使用强制转换时出现无限循环)。
    • 修复了错误 #55098(SimpleXML 迭代产生无限循环)。
  • 套接字
    • 添加了 SO_ATTACH_REUSEPORT_CBPF 套接字选项,以对 CPU 内核的套接字绑定进行更严格的控制。
    • 为 cbpf 过滤器添加了 SKF_AD_QUEUE。
    • 如果 send/recv 需要使用 MSG_OOB,则添加了 socket_atmark。
    • 添加了 TCP_QUICKACK 常量,以对 ACK 延迟进行更严格的控制。
    • 为路径 MTU 发现目的添加了 DONTFRAGMENT 支持。
    • 为转发端口添加了用于原始套接字的 AF_DIVERT。
    • 添加了 SOL_UPDLITE、UDPLITE_RECV_CSCOV 和 UDPLITE_SEND_CSCOV 以支持 updlite 协议。
    • 添加了 SO_RERROR、SO_ZEROIZE 和 SO_SPLICE netbsd 和 openbsd 常量。
    • 添加了 TCP_REPAIR 以静默关闭连接。
    • 添加了 SO_REUSEPORT_LB freebsd 常量。
    • 添加了 IP_BIND_ADDRESS_NO_PORT。
  • SPL
    • 修复了 GH-11573(RecursiveDirectoryIterator::hasChildren 速度很慢)。
  • 标准
    • unserialize() 发出的 E_NOTICEs 已提升为 E_WARNING。
    • 如果输入包含未消耗的字节,unserialize() 现在会发出新的 E_WARNING。
    • 使 array_pad 的 $length 警告不那么令人困惑。
    • 当开始标记化时,两个参数都没有提供时,strtok 发出的 E_WARNING。
    • password_hash() 现在将在盐生成失败时将原始 RandomException 连接到 ValueError。
    • 修复了 GH-10239(proc_close 在 proc_get_status 之后总是返回 -1)。
    • 改进了 unpack() 在未提供足够值时的警告消息。
    • 修复了 GH-11010(parse_ini_string() 现在在指定 INI_SCANNER_TYPED 标志时保留以数字开头的未加引号字符串的格式)。
    • 修复了 GH-10742(http_response_code 在已发送标头时不发出错误)。
    • 添加了对 number_format() 中舍入负数位的支持。
    • 防止在 number_format() 中格式化十进制整数时精度丢失。
    • 添加了在操作系统支持的情况下,对 proc_open 使用 posix_spawn。
    • 添加了 $before_needle 参数到 strrchr()。
    • 修复了 GH-11982(str_getcsv 为未终止的 enclosure 返回空字节)。
    • 修复了 str_decrement() 对 "1" 的操作。
    • 修复了错误 #51056:即使有数据可用,阻塞 fread() 也会阻塞。
    • 添加了用于打开 xport 流的原始路径的存储。
    • 实现了 GH-8641(通过 HTTP 发出的 STREAM_NOTIFY_COMPLETED 从未发出)。
    • 修复了错误 GH-10406(fgets 在 redis 套接字连接上在 PHP 8.3 中失败)。
    • 实现了 GH-11242(_php_stream_copy_to_mem:允许指定最大长度而不分配该大小的缓冲区)。
    • 修复了错误 #52335(内存流上的 fseek() 行为与文件不同)。
    • 修复了错误 #76857(可以读取“不存在”的文件)。
  • XSLTProcessor
    • 修复了错误 #69168(DomNode::getNodePath() 返回无效路径)。
  • ZIP
    • libzip 1.10.0 的 zip 扩展版本 1.22.0。
    • 添加新的错误宏(ER_DATA_LENGTH 和 ER_NOT_ALLOWED)。
    • 添加新的档案全局标志(ER_AFL_*)。
    • 添加了 ZipArchive::setArchiveFlag 和 ZipArchive::getArchiveFlag 方法。

版本 8.2.22

  • 核心
    • 修复了 bug GH-13922 (修复了对 sysconf(_SC_GETPW_R_SIZE_MAX) == -1 的系统支持).
    • 修复了 bug GH-14626 (为大型块修复了 is_zend_ptr()).
    • 修复了 bug GH-14590 (FPM 测试 gh13563-conf-bool-env.phpt 中的内存泄漏).
    • 修复了 OSS-Fuzz #69765.
    • 修复了 bug GH-14741 (Zend/zend_types.h 中的段错误).
    • 修复了 bug GH-14969 (使用 __toString() 时属性强制转换中的使用后释放).
  • Dom
    • 修复了 bug GH-14702 (DOMDocument::xinclude() 崩溃).
  • Gd
    • ext/gd/tests/gh10614.phpt:如果无 PNG 支持,则跳过。
    • 恢复警告而不是致命错误。
  • LibXML
    • 修复了 bug GH-14563 (使用 libxml2 v2.13.0 构建失败).
  • Opcache
    • 修复了 bug GH-14550 (当启用 Zend DTrace 时,没有关于 opcache.jit 隐式禁用的警告消息).
  • 输出
    • 修复了 bug GH-14808 (使用空输出缓冲区时,Zend/zend_string.h 中出现意外的空指针).
  • PDO
    • 修复了 bug GH-14712 (使用 PDORow 访问空属性时崩溃).
  • Phar
    • 修复了 bug GH-14603 (来自 zip 条目的空字符串).
  • PHPDBG
    • 修复了 bug GH-14596 (使用 ASAN 和 ZEND_RC_DEBUG=1 崩溃).
    • 修复了 bug GH-14553 (echo 输出在 NULL 字节处被截断).
  • Shmop
    • 修复了 bug GH-14537 (shmop Windows 11 使进程崩溃).
  • SimpleXML
    • 修复了错误 GH-14638(XML 解析失败后的空指针引用)。
  • SPL
    • 修复了 bug GH-14639 (ext/spl/spl_observer.c 中空指针内的成员访问).
  • 标准
    • 修复 32 位 wordwrap 测试失败。
    • 修复了 bug GH-14774 (time_sleep_until 溢出).
  • Tidy
    • 修复了 tidy_repair_file() 中的内存泄漏。
  • 树形
    • 修复了与 libxml2 2.13.2 的兼容性。
  • XML
    • 移除了即将被弃用的 libxml 字段。
    • 修复了 bug GH-14834 (使用 --with-pear 时,PHP 安装失败).

版本 8.2.21

  • 核心
    • 修复了 bug GH-14315 (不兼容的指针类型警告).
    • 修复了 bug GH-12814 (在 Apple Silicon 上运行时,在 MacOS 14 上过早达到 max_execution_time).
    • 修复了 bug GH-14387 (在 Generator->throw() 期间,在从值中生成的对象的析构函数中进行堆栈遍历时崩溃).
    • 修复了 bug GH-14456 (尝试使用私有构造函数初始化类会调用析构函数).
    • 修复了 bug GH-14549 (fclose 的不兼容函数指针类型).
  • BCMatch
    • 修复了 bug (bcpowmod() 使用 mod = -1 时,返回 1,而应该是 0).
  • Curl
    • 修复了 bug GH-14307 (使用 curl 8.8.0 时,测试 curl_basic_024 失败).
  • DOM
    • 修复了 bug GH-14343 (xml 和 dom 中的内存泄漏).
  • FPM
    • 修复了 bug GH-14037 (PHP-FPM ping.path 和 ping.response 配置变量在状态池中被忽略).
  • GD
    • 修复了 imagecolorset() 的参数数量。
  • Intl
    • 修复了 SpoofChecker 中的引用处理。
  • MySQLnd
    • 部分修复了 bug GH-10599 (在 Windows 上使用具有活动 mysqli 连接的类的匿名自引用函数时,Apache 崩溃).
  • Opcache
    • 修复了 bug GH-14267 (opcache.jit=off 不允许在运行时启用 JIT).
    • 修复了 FreeBSD/amd64 上 JIT 中的 TLS 访问。
    • 修复了 bug GH-11188 (在 ARM64 上构建 TSRM 时出错).
  • PDO ODBC
    • 修复了 bug GH-14367 (不兼容的 SDWORD 类型与 iODBC).
  • PHPDBG
    • 修复了 bug GH-13681 (在监视点添加失败时出现段错误).
  • Soap
    • 修复了 bug #47925 (PHPClient 无法解压缩响应).
    • 修复了丢失的错误恢复代码。
    • 修复了如果两次调用 SoapServer::setObject() 就会出现内存泄漏的问题。
    • 修复了如果两次调用 SoapServer::setClass() 就会出现内存泄漏的问题。
    • 修复了在 ext-soap 中读取 zlib ini 设置。
    • 修复了字符串函数名称查找时的内存泄漏。
    • 修复了 bug #69280 (SoapClient classmap 不支持完全限定的类名).
    • 修复了 bug #76232 (SoapClient Cookie 头部分号).
    • 修复了调用 SoapFault::__construct() 两次时的内存泄漏。
  • Sodium
    • 修复了 ext/sodium 中某些函数失败时的内存泄漏。
  • SPL
    • 修复了 bug GH-14290 (扩展 spl 中的空指针内的成员访问).
  • 标准
    • 修复了 bug GH-14483 (修复了检查抽象命名空间 Unix 套接字长度的越界错误).
    • 修复了 bug GH-11078 (PHP 致命错误触发指针被释放,该指针未被分配,并且 malloc:ptr 的双重释放错误).

版本 8.2.20

  • CGI
    • 修复了 Windows 上的缓冲区限制,用 _read 替换了 read 调用的使用。
    • 修复了 bug GHSA-3qgc-jrrr-25jv (绕过 CVE-2012-1823,PHP-CGI 中的参数注入)。(CVE-2024-4577)
  • CLI
    • 修复了 bug GH-14189 (PHP 交互式 shell 输入状态错误地处理了带引号的 here-doc 字面量).
  • 核心
    • 修复了 bug GH-13970 (对非编译时表达式的 #[Attribute] 标志类型进行错误验证).
    • 修复了错误 GH-14140(Apple Silicon 硬件上范围操作中的浮点错误)。
  • DOM
    • 修复了在仍然存在实体引用时删除实体声明导致的崩溃。
    • 修复了在 C14N 中未正确处理引用。
    • 修复了当迭代器耗尽时,调用 childNodes next() 导致的崩溃。
    • 修复了在处理包含文本节点的片段时,ParentNode::append() 中的崩溃。
  • FFI
    • 修复了错误 GH-14215(无法在带有 apache2handler 的 CRLF 标头文件中使用 FFI::load)。
  • 过滤器
    • 修复了 bug GHSA-w8qr-v226-r27w (filter_var FILTER_VALIDATE_URL 中的过滤器绕过)。(CVE-2024-5458)
  • FPM
    • 修复了 bug GH-14175 (在 systemd 状态中显示十进制数字而不是科学计数法).
  • 哈希
    • ext/hash:交换 `__has_builtin` 和 `__GNUC__` 的检查顺序 (Saki Takamachi)
  • Intl
    • 修复了在没有 C++17 编译器的系统上的构建回归。
  • Ini
    • 修复了错误 GH-14100(修正了 php.ini 文件中的拼写错误)。
  • MySQLnd
    • 修复了 bug GH-14255 (mysqli_fetch_assoc 报告嵌套查询的错误).
  • Opcache
    • 修复了 bug GH-14109 (修复了在 shm 中意外持久化内部类常量).
  • OpenSSL
    • PHP 中的 openssl_private_decrypt 函数在使用 PKCS1 填充 (OPENSSL_PKCS1_PADDING,这是默认值) 时,容易受到 Marvin 攻击,除非它与包含此拉取请求更改的 OpenSSL 版本一起使用:https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection)。这些更改是 OpenSSL 3.2 的一部分,并且也已移植到各种 Linux 发行版的稳定版本,以及自上次发布以来为 Windows 提供的 PHP 构建。所有发行版和构建者应确保使用此版本,以防止 PHP 易受攻击。
  • 标准
    • 修复了 bug GHSA-9fcc-425m-g385 (绕过 CVE-2024-1874)。(CVE-2024-5585)
  • XML
    • 修复了 bug GH-14124 (在特定内存限制下,使用 XML 扩展时出现段错误).
  • XMLReader
    • 修复了 bug GH-14183 (XMLReader::open() 无法被覆盖).

版本 8.2.19

  • 核心
    • 修复了 bug GH-13772 (启用 JIT 时,观察者 fcall 处理程序中的无效 execute_data->opline 指针).
    • 修复了 bug GH-13931 (在 Zend/zend_opcode.c 中将零偏移量应用于空指针).
    • 修复了 bug GH-14942 (使 zend-max-execution-timers 的行为与其他超时实现一致).
    • 修复了 bug GH-14003 (使用可调用转换参数时,未完成调用的清理失败).
    • 修复了 bug GH-14013 (在配置中错误地附加了 dnl).
    • 修复了 bug GH-10232 (如果自动加载在常量解析期间发生,则文件名和行号被错误识别).
    • 修复了 bug GH-13727 (缺少 void 关键字).
  • 纤程
    • 修复了 bug GH-13903 (执行 copy() 时,ASAN 出现假阳性下溢).
  • FPM
    • 修复了 bug GH-13563(在 FPM 配置中通过 env 设置 bool 值失败)。
  • Intl
    • 修复了 icu 74 及更高版本的构建。
  • MySQLnd
    • 修复了在 32 位非快速路径平台上发生的越界移位错误。
  • Opcache
    • 修复了跨编译单元对静态调用错误的假设。
  • OpenSSL
    • 修复了 bug GH-10495(OpenSSL 流上的 feof 无限期挂起)。
  • PDO SQLite
    • 修复了 GH-13984(现在在 memcmp 之前检查缓冲区大小)。
    • 修复了 GH-13998(正确管理 agg_context->val 的引用计数)。
  • Phar
    • 修复了 bug GH-13836(将 Phar 中的文件重命名为已存在的文件名会导致空指针解除引用)。
    • 修复了 bug GH-13833(在 zend_hash.c 中对空指针应用零偏移量)。
    • 修复了在调用 EVP_SignInit 之前可能发生的空指针解除引用错误。
  • PHPDBG
    • 修复了 bug GH-13827(在 phpdbg_frame 中对类型为 'zval' 的空指针进行访问)。
  • Posix
    • 修复了 ext/posix 中对可重入函数的使用。
  • Session
    • 修复了 bug GH-13856(在 ext/session/mod_files.c 中,类型为 'ps_files' 的空指针内的成员访问)。
    • 修复了 bug GH-13891(使用 ini_set 和 session.trans_sid_hosts 时出现内存泄漏和段错误)。
    • 修复了 Windows 上文件模式的缓冲区 _read/_write 大小限制。
    • 修复了 Windows 上 file_get_contents() 失败并显示 "errno=22 Invalid argument" 的问题。
    • 修复了 bug GH-13264(第一部分 - 流过滤器失败时的内存泄漏)。
    • 修复了 bug GH-13860(ext/openssl/xp_ssl.c 中的 PHP_STREAM_OPTION_CHECK_LIVENESS 案例不正确 - 导致使用已失效的套接字)。
    • 修复了 bug GH-11678(在 musl 1.2.4 - lfs64 上构建失败)。
  • 树形
    • 修复了 gcc-14 Wcalloc-transposed-args 警告。

版本 8.2.18

  • 核心
    • 修复了 bug GH-13612(带有弱引用的析构函数中的内存损坏)。
    • 修复了 bug GH-13784(AX_GCC_FUNC_ATTRIBUTE 失败)。
    • 修复了 bug GH-13670(GC 在析构函数中创建大量对象时无法很好地扩展)。
  • DOM
    • 添加了一些缺失的 ZPP 检查。
    • 修复了 XPath 评估结果中可能发生的内存泄漏。
    • 修复了 DOMDocument 加载方法的 phpdoc。
  • FPM
    • 修复了 fpm_shm_free() 中不正确的检查。
  • GD
    • 修复了 bug GH-12019(在特性测试中添加 GDLIB_CFLAGS)。
  • Gettext
    • 修复了在 gettext 0.22.5 中,使用 dcgettext/dcngettext 调用且类别设置为 LC_ALL 时出现的 SIGABRT 信号。
  • MySQLnd
    • 修复了 GH-13452(修复了握手响应 [mysqlnd])。
    • 修复了 check_mb_eucjpms() 中的错误字符集长度。
  • Opcache
    • 修复了 GH-13508(当 op1 为空时,JITed QM_ASSIGN 可能被优化掉)。
    • 修复了 GH-13712(在加载 opcache 时,当调用内部特征的特征方法时,启用观察者会导致段错误)。
  • PDO
    • 修复了多个 PDORow 错误。
  • Random
    • 修复了 bug GH-13544(对 mt_srand 的 PHP 8.2 之前的兼容性,支持未知模式)。
    • 修复了 bug GH-13690(当使用 MT_RAND_PHP 时,全局 Mt19937 在请求之间没有正确重置)。
  • Session
    • 修复了 bug GH-13680(使用 session_decode 时出现段错误,以及编译错误)。
  • 套接字
    • 修复了错误 GH-13604(socket_getsockname 在套接字名称的末尾返回随机字符)。
  • SPL
    • 修复了 bug GH-13531(在 PHP 8.2.15 中,SplfixedArray 在反序列化后无法调整大小)。
    • 修复了 bug GH-13685(zend_string.h 中出现意外的空指针)。
  • 标准
    • 修复了 bug GH-11808(测试修改了实时文件系统)。
    • 修复了 GH-13402(在 mail() 的 $additional_headers 中添加了对 `\n` 的验证)。
    • 修复了 bug GH-13203(在 Windows 上,file_put_contents 对大于 4GB 的字符串失败)。
    • 修复了 bug GHSA-pc52-254m-w9w7(通过 proc_open 的类数组 $command 参数进行命令注入)。(CVE-2024-1874)
    • 修复了 bug GHSA-wpj3-hf5j-x4v4(由于对 CVE-2022-31629 修复的补丁不完整,导致 __Host-/__Secure- Cookie 绕过)。(CVE-2024-2756)
    • 修复了 bug GHSA-h746-cjrr-wfmr(password_verify 可能错误地返回 true,导致 ATO 风险)。(CVE-2024-3096)
  • XML
    • 修复了 bug GH-13517(使用 --with-expat 构建时出现多个测试失败)。

版本 8.2.17

  • 核心
    • 修复了 ZTS 持久资源在关闭时的崩溃问题。
  • Curl
    • 修复了由于 libcurl 8.6.0 中的字符串更改导致的测试失败问题。
  • DOM
    • 修复了 DOMNodeList 和 DOMNodeMap 中对维度的引用访问问题。
  • Fileinfo
    • 修复了 bug GH-13344(finfo::buffer():识别数据失败 0:(null),回溯)。
  • FPM
    • 修复了 bug #75712(php-fpm 中的 getenv 不应该读取 $_ENV、$_SERVER)。
  • GD
    • 修复了 bug GH-12019(系统 gd 库中图像格式的检测)。
  • MySQLnd
    • 修复了 bug GH-11950([mysqlnd] 修复了当 CR_SERVER_GONE_ERROR 已经设置时,不设置 CR_MALFORMED_PACKET 为错误)。
  • PGSQL
    • 修复了 bug GH-13354(pg_execute/pg_send_query_params/pg_send_execute 传递引用时出现空值)。
  • 标准
    • 修复了数组键作为哈希到字符串(不区分大小写)比较时的类型错误,用于第二个操作数的缓冲区大小(尽管目前尚未使用)。

版本 8.2.16

  • 核心
    • 修复了 zend-max-execution-timers 构建中的定时器泄漏问题。
    • 修复了 bug GH-12349(在 ARM 上使用 mold 时链接失败)。
    • 修复了 bug GH-13097(在 trigger_error/抛出异常时,匿名类引用)。
    • 修复了 bug GH-13215(GCC 14 构建失败)。
  • Curl
    • 修复了 curl_multi_init() 中缺少的错误检查问题。
  • FPM
    • 修复了 bug GH-12996(在路径中出现加号时,Apache ProxyPassMatch 的 SCRIPT_NAME 不正确)。
  • GD
    • 修复了 bug GH-10344(imagettfbbox():无法找到/打开 UNC 路径的字体)。
    • 修复了 bug GH-10614(imagerotate 将图片旋转 90 度时,图片会变成全黑)。
  • MySQLnd
    • 修复了 bug GH-12107(当两次运行存储过程(返回结果集)时,PHP 崩溃)。
  • Opcache
    • 修复了 bug GH-13232(当 JIT 关闭但 JIT_debug 仍然启用时,会报告段错误)。
  • OpenSSL
    • 修复了当未设置 OPENSSL_NO_ENGINE 时,LibreSSL 未定义的引用问题。(David Carlier)。
  • PDO_Firebird
    • 修复了 GH-13119(更改为使用 `H` 格式将浮点数和双精度数转换为字符串)。
  • Phar
    • 修复了 bug #71465(PHAR 不知道 litespeed)。
    • 修复了 bug GH-13037(PharData 错误地提取 zip 文件)。
  • Random
    • 修复了 bug GH-13138(Randomizer::pickArrayKeys() 无法检测到损坏的引擎)。
  • Session
    • 修复了 bug GH-12504(在自动加载器中出现致命错误时,会写入损坏的会话)。
    • 修复了 bug GH-13071(使用可映射内存的源流复制大型文件可能会耗尽可用内存并失败)。

版本 8.2.15

  • 核心
    • 修复了 bug GH-12953(当使用超过 11k 个元素的 composer 类映射加载时,SSA 完整性验证出现假阳性)。
    • 修复了 bug GH-12966(缺少交叉编译的第三个参数,导致 Autoconf 不发出警告)。
  • Cli
    • 修复了在使用路由脚本和 max_input_time 时,内置 web 服务器中的错误超时问题。
  • FFI
    • 修复了 bug GH-9698(stream_wrapper_register 与 FFI\CData 崩溃)。
    • 修复了 bug GH-12905(FFI::new 与观察者相互作用不良)。
  • Intl
    • 修复了 GH-12943(IntlDateFormatter::__construct 接受 'C' 作为有效区域设置)。
  • 哈希
    • 修复了 bug GH-12936(如果对字符串使用 sha512 且字符串长度大于 4GiB,则 hash() 函数会无限期挂起)。
  • ODBC
    • 修复了在 Apache 关闭时,使用持久连接导致的崩溃问题。
  • Opcache
    • 修复了 oss-fuzz #64727(当 DIM 与结果为同一个变量时,JIT 未定义数组键警告可能会用 NULL 覆盖 DIM)。
    • 添加了对 SELinux mprotect execheap 问题的解决方法。参见 https://bugzilla.kernel.org/show_bug.cgi?id=218258。
  • OpenSSL
    • 修复了 bug GH-12987(openssl_csr_sign 可能会在发生错误时泄漏新的证书)。
  • PDO
    • 修复了 GH-12969(修复了 PDO::getAttribute() 以获取 PDO::ATTR_STRINGIFY_FETCHES)。
  • PDO_ODBC
    • 修复了 bug GH-12767(无法使用 setAttribute() 打开自动提交模式)。
  • PGSQL
    • 修复了 auto_reset_persistent 处理和 allow_persistent 类型。
    • 修复了 bug GH-12974(在使用 pg_pconnect() 时,Apache 在关闭时崩溃)。
  • Phar
    • 修复了 bug #77432(包含 phar 文件时出现段错误)。
  • PHPDBG
    • 修复了 bug GH-12962(phpdbg_prompt.c 中对 init_file 的双重释放)。
  • SimpleXML
    • 修复了获取 SimpleXMLElement 未初始化属性的地址导致的崩溃问题。
  • Tidy
    • 修复了 bug GH-12980(tidynode.props.attribute 缺少 "布尔属性" 和空属性)。

版本 8.2.14

  • 核心
    • 修复了 oss-fuzz #54325(在使用恶意错误处理程序的 var-var 中释放后使用 name)。
    • 修复了 oss-fuzz #64209(在 php_message_handler_for_zend 中就地修改文件名)。
    • 修复了 bug GH-12758 / GH-12768(ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 内部的 OOM 处理程序中的无效 opline)。
    • 修复了多个缺少的 NULL 检查问题。
    • 修复了 bug GH-12835(在内部 __call 中,call->extra_named_params 泄漏)。
  • 日期
    • 修复了在解析非常大(或非常小)的 Unix 时间戳时发生的不可能的整数溢出。
  • DOM
    • 修复了错误 GH-12616(DOM:删除 XMLNS 命名空间节点会导致无效的默认:前缀)。
  • FPM
    • 修复了 bug GH-12705(fpm_status_export_to_zval 中的段错误)。
  • FTP
    • 修复了 bug GH-9348(FTP & SSL 会话重用)。
  • Intl
    • 修复了错误 GH-12635(测试 bug69398.phpt 在 ICU 74.1 中失败)。
  • LibXML
    • 修复了错误 GH-12702(libxml2 2.12.0 从源代码构建时出现问题)。
    • 修复了 libxml2 2.12.0 的测试失败问题。
  • MySQLnd
    • 避免使用未初始化的结构体。
    • 修复了 bug GH-12791(MySQLnd 调试代码中可能发生的空指针解除引用)。
  • Opcache
    • 修复了 JIT 错误(函数 JIT 在发出 "Uninitialized string offset" 警告的同时,也会发出无效偏移量错误)。
    • 修复了 JIT 错误(JIT 在抛出错误的同时发出“尝试为非对象分配属性”警告)。
  • OpenSSL
    • 修复了错误 #50713(openssl_pkcs7_verify() 可能会忽略不受信任的 CA)。
  • PCRE
    • 修复了错误 GH-12628(gh11374 测试在 Alpinelinux 上失败)。
  • PDO PGSQL
    • 修复了 PDO::pgsqlGetNotify() 中 $fetchMode 的默认值(kocsismate)。
  • PGSQL
    • 修复了错误 GH-12763,pg_untrace 的参数类型错误。
  • PHPDBG
    • 修复了错误 GH-12675(phpdbg_prompt.c 中的 MEMORY_LEAK)。
  • SOAP
    • 修复了 GH-12838([SOAP] 临时 WSDL 缓存文件未被删除)。
  • SPL
    • 修复了错误 GH-12721(SplFileInfo::getFilename() 与 GlobIterator 和没有目录分隔符的组合导致段错误)。
  • SQLite3
    • 修复了错误 GH-12633(sqlite3_defensive.phpt 在 sqlite 3.44.0 中失败)。
  • 标准
    • 修复了 syslog 设备处理中的内存泄漏。
    • 修复了错误 GH-12621(browscap 在虚拟主机中配置时出现段错误)。
    • 修复了错误 GH-12655(proc_open() 没有考虑描述符数组中的引用)。
    • 修复了错误 #79945(imagecreatefrompng 中的流包装器会导致段错误)。
  • Zip
    • 修复了错误 GH-12661(ZipArchive::addGlob remove_path 选项行为不一致)。

版本 8.2.13

  • 核心
    • 修复了未实习枚举情况名称的双重释放。
    • 修复了错误 GH-12457(使用单个字符针的 stripos 的结果不正确)。
    • 修复了错误 GH-12468(通过特征覆盖静态属性时的 doc_comment 的双重释放)。
    • 修复了由对 FFI 对象的弱引用引起的段错误。
    • 修复了 max_execution_time:不要删除未初始化的计时器。
    • 修复了错误 GH-12558(如果类名以 N 开头,则 Arginfo 会在命名空间类返回类型时出现软中断)。
  • DOM
    • 修复了使用抽象类时的 registerNodeClass 崩溃。
    • 添加了缺少的 NULL 指针错误检查。
    • 修复了 php:function() 回调的验证逻辑。
  • 纤维
    • 修复了错误 GH-11121(ReflectionFiber 段错误)。
  • FPM
    • 修复了错误 GH-9921(在 FPM 配置中加载 ext 不会注册模块处理程序)。
    • 修复了错误 GH-12232(FPM:在没有 opcache 的情况下动态加载扩展会导致段错误)。
    • 修复了错误 #76922(FastCGI 在 FCGI_GET_VALUES 后终止连接)。
  • Intl
    • 删除了对 IntlDateFormatter::construct 的 BC 中断,该中断在使用无效的语言环境时抛出异常。
  • Opcache
    • 在无法启用 JIT 时添加了警告。
    • 修复了错误 GH-8143(由于磁盘文件缓存损坏,升级到 8.1.3 后,zend_accel_inheritance_cache_find 中出现崩溃)。
  • OpenSSL
    • 修复了错误 GH-12489(openssl_cms_verify 中缺少 sigbio 创建检查)。
  • PCRE
    • 修复了错误 GH-11374(回退上游修复,启用 -d pcre.jit=0 的 PCRE 正则表达式会产生不同的结果)。
  • SOAP
    • 修复了错误 GH-12392(在 SoapClient::__getTypes 上出现段错误)。
    • 修复了错误 #66150(SOAP WSDL 缓存竞争条件会导致段错误)。
    • 修复了错误 #67617(SOAP 在 ENOSPC 上留下不完整的缓存文件)。
    • 修复了 SOAP 缓存中不正确的 uri 检查。
    • 修复了带有引用计数属性和数组的段错误和断言失败。
    • 修复了持久编码器边缘情况的潜在崩溃。
    • 修复了错误 #75306(SoapClient 中的内存泄漏)。
    • 修复了错误 #75708(getimagesize 使用 "&$imageinfo" 在流包装器上失败)。
  • XMLReader
    • 添加了缺少的 NULL 指针错误检查。
  • XMLWriter
    • 添加了缺少的 NULL 指针错误检查。
  • XSL
    • 添加了缺少的模块依赖项。
    • 修复了 php:function() 回调的验证逻辑。

版本 8.2.12

  • 核心
    • 修复了错误 GH-12207(使用带有 doc 块的特征的类时出现内存泄漏)。
    • 修复了错误 GH-12215(模块条目被覆盖会导致 ext/dom 中的类型错误)。
    • 修复了错误 GH-12273(__builtin_cpu_init 检查)。
    • 修复了错误 #80092(ZTS + 预加载 = 关闭时出现段错误)。
  • CLI
    • 确保存在单个 Date 标头。
  • CType
    • 修复了错误 GH-11997(ctype_alnum 在 PHP 8.1 或更高版本中慢 5 倍)。
  • DOM
    • 恢复旧的命名空间协调行为。
    • 修复了错误 GH-8996(PHP ^8.1 上的 DOMNode 序列化)。
  • Fileinfo
    • 修复了错误 GH-11891(fileinfo 为某些 svg 文件返回 text/xml)。
  • 过滤器
    • 修复了带有 FILTER_CALLBACK 的显式 FILTER_REQUIRE_SCALAR(ilutov)
  • 哈希
    • 修复了错误 GH-12186(复制/克隆已完成的 HashContext 时出现段错误)。
  • Intl
    • 修复了错误 GH-12243(在 IntlDateFormatter::construct 上出现段错误)。
    • 修复了错误 GH-12282(IntlDateFormatter::construct 应该在无效的区域设置上抛出异常)。
  • MySQLnd
    • 修复了错误 GH-12297(PHP 启动:未知行上的无效库(可能不是 PHP 库)'mysqlnd.so')。
  • Opcache
    • 修复了已删除文件的 opcache_invalidate()。
    • 修复了错误 GH-12380(JIT + 私有数组属性访问在闭包内部访问子类中的私有属性)。
  • PCRE
    • 修复了错误 GH-11956(回退上游修复,启用 JIT 的 PCRE 正则表达式会产生不同的结果)。
  • SimpleXML
    • 修复了错误 GH-12170(无法在 SimpleXML 中使用 xpath 和注释)。
    • 修复了错误 GH-12223(实体引用在 var_dump/print_r 中产生无限循环)。
    • 修复了错误 GH-12167(无法在 SimpleXML 中获取处理指令内容)。
    • 修复了错误 GH-12169(无法在 SimpleXML 中获取注释内容)。
    • 修复了错误 GH-12190(使用地址和端口均为 0 绑定 ipv4 地址)。
  • XML
    • 修复了 xml_parse_into_struct() 存根的返回类型。
    • 修复了调用 xml_parse_into_struct() 两次时的内存泄漏。
  • XSL
    • 修复了使用 SimpleXML 时 XSLTProcessor::transformToDoc 返回值上的类型错误。

版本 8.2.11

  • 核心
    • 修复了错误 GH-11937(包含对象的常量 AST)。
    • 修复了错误 GH-11790(在 riscv64 上,如果确实需要,则需要 libatomic)。
    • 修复了错误 GH-11876:ini_parse_quantity() 接受无效的量。
    • 修复了错误 GH-12073(释放未完全初始化的闭包时出现段错误)。
    • 修复了错误 GH-12060(内部迭代器回绕处理程序被调用两次)。
    • 修复了错误 GH-12102(在函数调用中对 TMP 值使用数组访问时出现错误的编译错误)。
  • DOM
    • 修复了设置无效 DOMDocument 编码时的内存泄漏问题。
  • Iconv
    • 修复了 NetBSD 的构建问题,该问题仍然使用旧的 iconv 签名。
  • Intl
    • 修复了错误 GH-12020(MessageFormatter::formatMessage() 失败后,intl_get_error_message() 出现故障)。
  • MySQLnd
    • 修复了错误 GH-10270(通过 SSL 连接失败时出现无效的错误消息:“尝试通过 (null) 连接”)。
  • ODBC
    • 修复了 SQLPrepare 失败时的内存泄漏问题。
    • 修复了持久的过程式 ODBC 连接未关闭的问题。
  • SimpleXML
    • 修复了错误 #52751(不支持 XPath processing-instruction() 函数)。
  • SPL
    • 修复了错误 GH-11972(8.1.18 中的 RecursiveCallbackFilterIterator 回归问题)。
  • SQLite3
    • 修复了错误 GH-11878(SQLite3 回调函数会导致可调用数组出现内存泄漏)。

版本 8.2.10

  • CLI
    • 修复了错误 GH-11716(使用 ZEND_RC_DEBUG=1 编译时,cli 服务器在 SIGINT 时崩溃)。
    • 修复了错误 GH-10964(改进关于内置服务器的手册页)。
  • 日期
    • 修复了错误 GH-11416(当传递未初始化的对象时,DatePeriod 会崩溃)。
  • 核心
    • 修复了配置时 strerror_r 的检测问题。
    • 修复了使用 DNF 类型的特征类型属性无法正确绑定。
    • 修复了如果从内部特征复制,特征属性类型不会被分配到区域。
    • 修复了在延迟类加载期间属性 DNF 类型的深度复制问题。
    • 修复了未分配区域类型的 DNF 类型的内存释放问题。
  • DOM
    • 修复了 DOMEntity 字段获取器错误。
    • 修复了 DOMElement::setAttributeNodeNS 中的错误属性存在性检查。
    • 修复了 DOMCharacterData::replaceWith() 使用自身的情况。
    • 修复了 DOMParentNode 方法的空参数情况。
    • 修复了错误 GH-11791(DOMDocument::xmlStandalone 的默认值错误)。
    • 修复了 DOMDocument 上的 json_encode 结果。
    • 修复了手动在 DOM 类上调用 __construct()。
    • 修复了错误 GH-11830(ParentNode 方法应该提前执行其检查)。
    • 修复了 replaceWith 的可行下一个兄弟节点搜索。
    • 修复了在子节点消失时调用 DOMParentNode::prepend() 时的段错误。
  • FFI
    • 修复了使用 FFI::cdef()->new(...) 时泄漏定义的问题。
  • 哈希
    • 修复了 hash_pbkdf2() 中的未初始化值使用,修复了签名中缺少 $options 参数。
  • MySQLnd
    • 修复了错误 GH-11440(通过 SSL 对 sha256_password 帐户进行身份验证失败)。
    • 修复了错误 GH-11438(mysqlnd 无法使用超过 19 个字符的密码对使用 sha256_password 帐户进行身份验证)。
    • 修复了错误 GH-11550(当响应字段发生变化时,MySQL 语句具有空的查询结果,也会出现段错误)。
    • 修复了连接断开时的无效错误消息“无效数据包”。
  • Opcache
    • 修复了错误 GH-11715(opcache.interned_strings_buffer 既没有效果,也没有 opcache_get_status() / phpinfo() 错误)。
    • 如果在重启过程中无法分配加速的全局变量,则避免添加不必要的读锁。
  • PCNTL
    • 将接收 SIGCHLD 信号的行为恢复到 8.1.22 之前的行为。
  • SPL
    • 修复了错误 #81992(SplFixedArray::setSize() 导致使用已释放的内存)。
  • 标准
    • 防止 number_format 中的 $decimals 发生整数溢出。
    • 修复了错误 GH-11870(修复截断 tempnam 前缀时的越界错误)(athos-ribeiro)

版本 8.2.9

  • 构建
    • 修复了错误 GH-11522(PHP 版本检查使用 '-' 分隔符时失败)。
  • CLI
    • 修复了中断的 CLI 输出导致进程退出的问题。
  • 核心
    • 修复了 oss-fuzz #60011(按引用传递的空安全操作符的错误编译)。
    • 修复了 else 块上的 JMP 指令的行号。
    • 修复了对断言使用 ??= 时出现的未初始化值使用问题。
    • 修复了 oss-fuzz #60411(修复箭头函数的双重编译)。
    • 修复了在 11.0 版本之前的 FreeBSD 上的构建问题。
  • Curl
    • 修复了将无效回调函数传递给 CURLMOPT_PUSHFUNCTION 时出现的崩溃问题。
  • 日期
    • 修复了错误 GH-11368(日期修改返回无效的日期时间)。
    • 修复了错误 GH-11600(无法解析包含(窄)不间断空格字符的时间字符串)。
    • 修复了错误 GH-11854(DateTime:createFromFormat 停止解析包含额外空格的日期时间)。
  • DOM
    • 修复了错误 GH-11625(DOMElement::replaceWith() 不会将节点替换为 DOMDocumentFragment,而是仅删除节点或根据 libxml2 版本导致包装 <></>)。
  • Fileinfo
    • 修复了错误 GH-11298(finfo 为 xz 文件返回错误的 mime 类型)。
  • FTP
    • 修复了对“overwrite”的上下文选项检查。
    • 修复了错误 GH-10562(连续使用 ftp_nb_fget 导致内存泄漏和无效状态)。
  • GD
    • 修复了大多数外部 libgd 测试失败的问题。
  • Intl
    • 修复了 MessageFormatter::format() 失败时的内存泄漏问题。
  • Libxml
    • 修复了错误 GHSA-3qrf-m4j2-pcrr(在没有启用外部实体加载的情况下,XML 中存在外部实体加载的安全问题)。(CVE-2023-3823)
  • MBString
    • 修复了 GH-11300(许可证问题:受限的 unicode 许可证头)。
  • Opcache
    • 修复了错误 GH-10914(带有 Enum 和回调函数的 OPcache 会导致段错误)。
    • 如果无法分配加速的全局变量,则防止潜在的死锁。
  • PCNTL
    • 修复了错误 GH-11498(SIGCHLD 并不总是从 proc_open 返回)。
  • PDO
    • 修复了 GH-11587(在 php8.1 之后,当 PDO::ATTR_EMULATE_PREPARES 为 true 且 PDO::ATTR_STRINGIFY_FETCHES 为 true 时,小数点后的零不再填充)。
  • PDO SQLite
    • 修复了 GH-11492(使测试失败:ext/pdo_sqlite/tests/bug_42589.phpt)。
  • Phar
    • 在 phar 实用程序中添加了对 EVP_VerifyUpdate() 的缺失检查。
    • 修复了错误 GHSA-jqcx-ccgc-xwhv(phar_dir_read() 中的缓冲区管理错误)。(CVE-2023-3824)
  • PHPDBG
    • 修复了错误 GH-9669(phpdbg -h 选项未列出 -z 选项)。
  • Session
    • 删除了用于传输会话 ID 的已损坏的 URL 支持。
  • 标准
    • 修复了对象图中两次出现的 RC1 对象的序列化问题。
    • 修复了错误 GH-11735(从自身注销用户流包装器时出现使用已释放的内存)。
  • SQLite3
    • 修复了 SQLite3Stmt::__construct 中的已替换的错误处理。
  • XMLReader
    • 修复了 GH-11548(在观察者处于活动状态时,使用非静态方式调用 XMLReader::open 或 XMLReader::XML 时出现参数损坏)。

版本 8.2.8

  • CLI
    • 修复了错误 GH-11246(cli/get_set_process_title 在 MacOS 上失败)。
  • 核心
    • 修复了 riscv64 架构/GCC 12 的构建问题。
  • Curl
    • 修复了错误 GH-11433(无法将 CURLOPT_ACCEPT_ENCODING 设置为 NULL)。
  • 日期
    • 修复了错误 GH-11455(使用自定义对象日期属性时出现段错误)。
  • DOM
    • 修复了错误 GH-11288GH-11289GH-11290GH-9142(DOMExceptions 和使用 replaceWith 时出现的段错误)。
    • 修复了错误 GH-10234(设置 DOMAttr::textContent 会导致属性值为空)。
    • 修复了 DOMNodeList::item 的存根文件中的返回值。
    • 修复了 DOMDocument::getElementsByTagNameNS 对 '*' 命名空间的规范一致性错误。
    • 修复了 DOMElement::append() 和 DOMElement::prepend() 的层次结构检查。
    • 修复了错误 GH-11347(在 XPath 查询中调用静态方法时出现内存泄漏)。
    • 修复了错误 #67440(DOMDocumentFragment 的 append_node 不会协调命名空间)。
    • 修复了错误 #81642(使用自身替换节点时,DOMChildNode::replaceWith() 出现错误)。
    • 修复了错误 #77686(已删除的元素仍由 getElementById 返回)。
    • 修复了错误 #70359(DOMAttr 上的 print_r() 会导致 php_libxml_node_free_list() 中出现段错误)。
    • 修复了错误 #78577(DOMNameSpace 调试信息处理程序中出现崩溃)。
    • 修复了 getAttributeNodeNS() 的生命周期问题。
    • 修复了使用克隆的命名空间声明导致的“无效状态错误”。
    • 修复了错误 #55294 和 #47530 和 #47847(各种命名空间协调问题)。
    • 修复了错误 #80332(DOMNamedNodeMap 的数组访问功能完全损坏)。
  • Opcache
    • 修复了 zend_shared_alloc_startup() 中的分配循环。
    • 在使用 ALLOC_FALLBACK 时,smm_shared_globals 出现访问冲突。
    • 修复了错误 GH-11336(php 仍然尝试使用 opcache.file_cache_only=1 解锁共享内存 ZendSem,但它从未被锁定)。
  • OpenSSL
    • 修复了错误 GH-9356 对 subjectAltNames 中的 IPv6 地址字段的验证不完整(James Lucas,Jakub Zelenka)。
  • PCRE
    • 修复了 preg_replace_callback_array() 模式验证。
  • PGSQL
    • 修复了 pg_trace 出现的间歇性段错误。
  • Phar
    • 修复了 FreeBSD 中 phar 生成时的交叉编译检查。
  • SPL
    • 修复了错误 GH-11338(SplFileInfo 多个斜杠时 getBasename 为空)。
  • 标准
    • 修复了 array_merge_recursive() 中的 NULL 指针访问问题。
    • 修复了 array_multisort() 中的异常处理。
  • SQLite3
    • 修复了错误 GH-11451(包含重复键的无效关联数组)。

版本 8.2.7

  • 核心
    • 修复了错误 GH-11152(无法为包含保留类名的命名空间创建别名)。
    • 修复了错误 GH-9068(条件跳转或移动依赖于未初始化的值)。
    • 修复了错误 GH-11189(在 zend_hash_do_resize 中超过内存限制会导致数组处于无效状态)。
    • 修复了错误 GH-11063(在旧的 GCC 版本上出现编译错误)。
    • 修复了错误 GH-11222(按引用传递的 foreach 可能会在重新散列期间跳过键)。
  • 日期
    • 修复了错误 GH-11281(DateTimeZone::getName() 不包含偏移量中的秒数)。
  • Exif
    • 修复了错误 GH-10834(exif_read_data() 无法读取更小的流包装器块大小)。
  • FPM
    • 修复了错误 GH-10461(PHP-FPM 由于使用 child->ev_std(out|err) 后释放的内存而出现段错误)。
    • 修复了错误 #64539(FPM 状态页面:query_string 未正确进行 JSON 编码)。
    • 修复了无效主脚本文件句柄的内存泄漏问题。
  • 哈希
    • 修复了错误 GH-11180(hash_file() 似乎限制为 3 个参数)。
  • LibXML
    • 修复了错误 GH-11160(使用新的 libxml 2.11.0 构建时,一些测试失败)。
  • MBString
    • 修复了错误 GH-11217(使用负偏移量和 ASCII 编码时,mb_strrpos / mb_strripos 出现段错误)。
  • Opcache
    • 修复了错误 GH-11134(错误的匹配默认分支优化)。
    • 修复了过宽的 OR 和 AND 范围推断问题。
    • 修复了在启用 OPcache 时缺少的类重新声明错误。
    • 修复了错误 GH-11245(在某些特定情况下,使用一个默认语句的 SWITCH 会导致段错误)。
  • PCNTL
    • 修复了 pcntl_forkx() 的最大参数计数。
  • PGSQL
    • 修复了 pg_lo_export() 的参数解析。
  • Phar
    • 修复了错误 GH-11099(在交叉编译期间无法生成 phar.php)。
  • Soap
    • 修复了错误 GHSA-76gg-c692-v2mw(SOAP 的 HTTP Digest 身份验证中缺少错误检查和随机字节不足)。(CVE-2023-3247)
    • 修复了错误 GH-8426(构建 soap 扩展时,make 测试失败)。
  • SPL
    • 修复了错误 GH-11178(spl_array_it_get_current_data(PHP 8.1.18)中出现段错误)。
  • 标准
    • 修复了错误 GH-11138(move_uploaded_file() 为源文件发出 open_basedir 警告)。
    • 修复了 bug GH-11274(POST/PATCH 请求在 HTTP 308 重定向后切换到 GET)。
    • 修复了 bug GH-10031([Stream] STREAM_NOTIFY_PROGRESS 通过 HTTP 对最后一块数据的发出不规则)。
    • 修复了 bug GH-11175(流套接字超时)。
    • 修复了 bug GH-11177(当超时 = -1 传递给 stream_socket_accept/stream_socket_client 时,ASAN UndefinedBehaviorSanitizer)。

版本 8.2.6

  • 核心
    • 修复常量表达式中不一致的浮点数取反。
    • 修复了 bug GH-8841(php-cli 核心转储调用格式错误的函数)。
    • 修复了 bug GH-10737(PHP 8.1.16 在 sapi/apache2handler/sapi_apache2.c 的第 597 行发生段错误)。
    • 修复了 bug GH-11028(zval_undefined_cv 中的堆缓冲区溢出)。
    • 修复了 bug GH-11108(在 ??= 中,在退出后,CG(memoize_mode) 状态不正确)。
  • 日期
    • 修复了 diff() 方法在与时区标识符相关的日期/时间发生夏令时转换时,不会返回正确结果的错误。
    • 修复了在转换到/从 LONG_MIN unix 时间戳附近时的越界错误。
  • DOM
    • 修复了 bug #80602(使用 DOMChildNode::before() 时发生段错误)。
    • 修复了 dom_zvals_to_fragment() 中的错误处理。
  • Exif
    • 修复了 bug GH-9397(exif 读取:警告和错误:潜在的无效字节序、非法 IFD 大小和未定义索引)。
  • Intl
    • 修复了 bug GH-11071(不再显示 TZData 版本)。
  • PCRE
    • 修复了 bug GH-10968(在 preg_replace_callback_array() 中发生段错误)。
  • 反射
    • 修复了 bug GH-10983(ReflectionObject::getProperties 中发生与状态相关的段错误)。
  • SPL
    • 处理间接 zvals 并使用最新的属性在 SplFixedArray::__serialize 中。
  • 标准
    • 修复了 bug GH-10990(在通过引用遍历 $additional_headers 数组后,mail() 抛出 TypeError)。
    • 修复了 bug GH-9775(使用枚举时,array_unique 返回重复项)。
    • 修复了 bug GH-10406(基于 UNIX 的套接字资源的 feof() 行为更改)。

版本 8.2.5

  • 核心
    • 在 ZTS/Linux 版本中添加了对 max_execution_time 的可选支持(Kévin Dunglas)
    • 修复了递归 AST 评估中的使用后释放错误。
    • 修复了 bug GH-8646(PHP FPM 8.1 内存泄漏)。
    • 重新添加了一些被错误地从 CTE 中删除的 CTE 函数。
    • 从 array_diff_ukey() 中删除 CTE 标志,该标志是错误添加的。
    • 修复了 bug GH-10801(CTE 函数中的命名参数会导致段错误)。
    • 修复了 bug GH-8789(PHP 8.0.20 (ZTS) zend_signal_handler_defer 在 apache 上崩溃)。
    • 修复了 bug GH-10015(zend_signal_handler_defer 在 apache 关闭时崩溃)。
    • 修复了 bug GH-10810(修复 NUL 字节终止 Exception::__toString())。
    • 修复了在混合 __callStatic() 和 FFI 时可能发生的内存损坏。
  • 日期
    • 修复了 bug GH-10747(序列化 Date* 对象中的私有和受保护属性抛出异常)。
  • FPM
    • 修复了 bug GH-10611(fpm_env_init_main 泄漏 environ)。
    • 在 fpm_main 中销毁 file_handle。
    • 修复了 bug #74129(当路径中存在空格时,apache ProxyPassMatch 的 SCRIPT_NAME 不正确)。
  • FTP
    • 传播 ftp_close() 的成功状态。
    • 修复了 bug GH-10521(ftp_get/ftp_nb_get resumepos 偏移量最大为 10GB)。
  • IMAP
    • 修复了 Clang 16 构建失败。
  • MySQLnd
    • 修复了 bug GH-8979(启用 SSL 的 MySQL 连接可能发生内存泄漏)。
  • Opcache
    • 修复了 macOS 的构建以满足 pkg-config 设置。
    • 修复了 bug GH-8065(opcache.consistency_checks > 0 在 fpm 上下文中会导致 PHP >= 8.1.5 中发生段错误)。
  • OpenSSL
    • 在文件写入函数中添加了缺少的错误检查。
  • PDO Firebird
    • 修复了 bug GH-10908(在带有 64 位内核和 32 位用户空间的 RPI 上,PDO Firebird 发生总线错误)。
  • Phar
    • 修复了 bug GH-10766(使用 Phar::Zip 格式创建的 PharData 档案不会保留文件元数据(日期时间))。
    • 在 EVP_MD_CTX_create() 和 EVP_VerifyInit() 上添加了缺少的错误检查。
  • PDO ODBC
    • 修复了 SQLAllocHandle 上缺少的和不一致的错误检查。
  • PGSQL
    • 修复了从 pg_meta_data(扩展模式)返回的数组中的拼写错误。
  • SPL
    • 修复了 bug GH-10519(数组数据地址引用问题)。
    • 修复了 bug GH-10907(无法在 PHP 8.2.4 中序列化已处理的 SplFixedArrays)。
    • 修复了 bug GH-10844(ArrayIterator 允许修改只读属性)。
  • 标准
    • 修复了 bug GH-10885(stream_socket_server 上下文泄漏)。
    • 修复了 bug GH-10052(Browscap 在请求关闭时(apache2)使 PHP 8.1.12 崩溃)。
    • 修复了 oss-fuzz #57392(php_fgetcsv() 中的缓冲区溢出,使用 \0 分隔符和引号)。
    • 修复了 unpack() 中的未定义行为。

版本 8.2.4

  • 核心
    • 修复了 ZEND_YIELD 中的错误检查条件。
    • 修复了类型推断中的错误检查条件。
    • 修复了 zend_internal_call_should_throw() 中的错误检查。
    • 修复了 OnUpdateMemoryConsumption 中的溢出检查。
    • 修复了 bug GH-9916(在关闭序列中,使用一个在生成器中挂起的纤维会发出一个不可避免的致命错误或崩溃)。
    • 修复了 bug GH-10437(在退出后,在关闭函数中使用纤维会导致段错误/断言)。
    • 修复了复合赋值操作码的 SSA 对象类型更新。
    • 修复了语言扫描器生成构建。
    • 修复了 zend_update_static_property() 误导性地使用错误的返回值类型调用 zend_update_static_property_ex()。
    • 修复了 bug GH-10570(修复了使用整数常量名称的属性获取时出现的未知字符串哈希)。
    • 修复了 php_fopen_primary_script() 调用导致 zend_destroy_file_handle() 释放句柄上的悬空指针,因为句柄未初始化。
  • Curl
    • 修复了编译时的弃用警告。
    • 修复了 bug GH-10270(无法在 readfunc 回调中返回 CURL_READFUNC_PAUSE)。
  • 日期
    • 修复了 GH-10447('p' 格式说明符不会为 00:00 生成 'Z')。
    • 修复了 GH-10152(Date 子类的自定义属性未序列化)。
    • 修复了 bug GH-10747(序列化 Date* 对象中的私有和受保护属性抛出异常)。
  • FFI
    • 修复了 ffi 位域中的错误移位和掩码。
  • 纤维
    • 修复了 alpine x86 上的汇编。
    • 修复了 bug GH-10496(在纤维内部调用垃圾收集器时发生段错误)。
  • FPM
    • 修复了 bug GH-10315(FPM 未知子进程警报无效)。
    • 修复了 bug GH-10385(FPM 成功配置测试提前退出)。
  • GMP
    • 正确地实现 GMP::__construct()。
  • Intl
    • 修复了 bug GH-10647(Spoolchecker isSuspicious/areConfusable 方法错误代码的参数始终返回 NULL0)。
  • JSON
    • 修复了 JSON 扫描器和解析器生成构建。
  • MBString
    • ext/mbstring:修复 new_value 长度检查。
    • 修复了 bug GH-10627(mb_convert_encoding 在 Windows 上使 PHP 崩溃)。
  • Opcache
    • 修复了错误的 page_size 检查。
  • OpenSSL
    • 修复了 php_openssl_set_server_dh_param() DH 参数错误处理。
  • PDO OCI
    • 修复了 bug #60994(读取多字节 CLOB 在 8192 个字符处截断)。
  • PHPDBG
    • 修复了 bug GH-10715(在 --run 选项误用时发生堆缓冲区溢出)。
  • PGSQL
    • 修复了 GH-10672(pg_lo_open 在 strict_types 模式下发生段错误)。
  • Phar
    • 修复了 phar tar 解析中的错误检查。
  • Random
    • 修复了 GH-10390(不要信任 glibc 上的 arc4random_buf())。
    • 修复了 GH-10292(使 srand() 和 mt_srand() 的第一个参数的默认值变为未知)。
  • 反射
    • 修复了 bug GH-10623(Reflection::getClosureUsedVariables 操作码修复,带有可变参数)。
    • 修复了使用由内部函数挂起的 ReflectionFiber 时发生的段错误。
  • Session
    • 修复了 ps_files_cleanup_dir() 在失败代码路径上的错误代码,使用 -1 而不是 0,因为后者被调用者视为成功。(nielsdos)。
  • 标准
    • 修复了 bug GH-8086(引入 mail.mixed_lf_and_crlf INI)。
    • 修复了 bug GH-10292(使 srand() 和 mt_srand() 的第一个参数的默认值变为未知)。
    • 修复了 map_from_unicode() 中 cs_8559_5 的错误检查。
    • 修复了 bug GH-9697,针对 reset/end/next/prev() 尝试为某些内部类(如 FFI 类)移动属性表的指针。
    • 修复了 browsecap 中针对 pcre2_match() 的错误错误检查。
    • 修复了 bug GH-10370(在使用 copy_file_range 时,_php_stream_copy_to_stream_ex 中的文件损坏)。
    • 修复了 bug GH-10548(copy() 在 cifs 挂载上失败,因为 copy_file_range() len 不正确)。
  • Tidy
    • 修复了在尝试打开不存在的文件或超过 4GB 的文件时发生的内存泄漏。
    • 在 tidyLoadConfig 上添加了缺少的错误检查。
  • Zlib
    • 修复了 output_handler 指令值的长度,该值计算了字符串终止符。

版本 8.2.3

  • 核心
    • 修复了 bug #81744(Password_verify() 在某些哈希值的情况下始终返回 true)。(CVE-2023-0567)
    • 修复了 bug #81746(在常见路径解析代码中发生 1 字节数组越界)。(CVE-2023-0568)
  • SAPI
    • 修复了 bug GHSA-54hq-v5wp-fqgv(在解析多部分请求主体时发生的 DOS 漏洞)。(CVE-2023-0662)

版本 8.2.2

  • 核心
    • 修复了 bug GH-10200(zif_get_object_vars: 断言 `!(((__ht)->u.flags & (1<<2)) != 0)` 失败)。
    • 修复了 GH-10251(断言 `(flag & (1<<3)) == 0` 失败)。
    • 修复了 GH-10240(在将超过 2**30 个元素添加到解压缩的数组时发生断言失败)。
    • 修复了 GH-9735(纤维堆栈变量不参与循环收集器)。
    • 修复了 GH-9675(内部枚举方法的 run_time_cache 初始化损坏)。
  • FPM
    • 修复了 bug #77106(FPM FastCGI 错误中缺少分隔符)。
    • 修复了 bug GH-9981(FPM 不会重置 fastcgi.error_header)。
    • 修复了 bug #68591(配置测试不会执行 UID 查找)。
    • 修复了在运行 FPM 配置测试时发生的内存泄漏。
    • 修复了 bug #67244(监听的 unix 套接字的拥有者/组错误)。
  • 哈希
    • 处理来自 XXH3 初始化的 __toString 的异常(nielsdos)
  • LDAP
    • 修复了 bug GH-10112(LDAP\Connection::__construct() 引用 ldap_create())。
  • Opcache
    • 修复了 zend_runtime_jit() 中的倒置退出值(Max Kellermann)。
    • 修复了 accel_preload() 中对未初始化变量的访问。
    • 修复了 zend_jit_find_trace() 崩溃。
    • 在 zend_jit_trace_exit 中为 EXIT_INVALIDATE 添加了缺少的锁。
  • Phar
    • 修复了 phar_object.c 中对压缩方法的错误标志检查(nielsdos)
  • PHPDBG
    • 修复了 phpdbg_load_module_or_extension() 中的未定义行为。
    • 修复了 phpdbg_create_conditional_breal() 中的 NULL 指针解除引用。
    • 修复了 GH-9710:phpdbg 由于选项“-h”导致内存泄漏(nielsdos)
    • 修复了 phpdbg 在遇到格式错误的输入时发生的段错误(nielsdos)
  • Posix
    • 修复了 posix_ttyname() 中的内存泄漏(girgias)
  • Random
    • 修复了 bug GH-10247(对 /dev/urandom 的理论文件描述符泄漏)。
  • 标准
    • 修复了 GH-10187(在 stripslashes() 中使用 arm64 时发生段错误)。
    • 修复了 bug GH-10214(在反序列化时,对对象语法的验证不完整)。
    • 修复了 repl_ht 中的槽为 UNDEF 时发生的 substr_replace。
  • XMLWriter
    • 修复了 xmlTextWriterEndElement 中的缺少检查(nielsdos)

版本 8.2.1

  • 核心
    • 修复了 bug GH-9905(当类未定义时,constant() 的行为不一致)。
    • 修复了 GH-9918 错误(README.REDIST.BINS 文件中未包含 xxHash 的许可证信息)。
    • 修复了 GH-9890 错误(Windows 上不可用 OpenSSL 遗留提供程序)。
    • 修复了 GH-9650 错误(无法初始化堆:[0x000001e7])。
    • 修复了 Windows ftok(3) 模拟中可能存在的未定义行为。
    • 修复了 GH-9769 错误(解包对象时误导性错误消息)。
  • Apache
    • 修复了 GH-9949 错误(不完整 POST 请求上的部分内容)。
  • FPM
    • 修复了 GH-9959 错误(Solaris 端口事件机制在 bug #66694 之后仍然存在问题)。
    • 修复了 #68207 错误(设置 fastcgi.error_header 可能导致 WARNING)。
    • 修复了 #80669 错误(FPM 数字用户无法设置组)。
    • 修复了 GH-8517 错误(FPM 主进程在 fpm_stdio_child_said 中随机崩溃)。
  • Imap
    • 修复了 GH-10051 错误(IMAP:无法检查 IMAP\Connection 是否仍然打开)。
  • MBString
    • 修复了 GH-9535 错误(PHP 8.1 中 mbstring 中 mb_strcut 的行为已更改)。
  • Opcache
    • 修复了 GH-9968 错误(OPCache 预加载期间出现段错误)。
  • OpenSSL
    • 修复了 GH-9997 错误(OpenSSL 引擎清理段错误)。
    • 修复了 GH-9064 错误(如果 openssl 使用 --no-ec 构建,PHP 无法构建)。
    • 修复了 GH-10000 错误(使用 no-dsa 编译 OpenSSL 时,OpenSSL 测试失败)。
  • Pcntl
    • 修复了 GH-9298 错误(在 rshutdown 之后调用信号处理程序会导致崩溃)。
  • PDO_Firebird
    • 修复了 GH-9971 错误(PDO_Firebird 返回的 NUMERIC 值不正确)。
  • PDO/SQLite
    • 修复了 #81740 错误(PDO::quote() 可能返回未引用的字符串)。(CVE-2022-31631)
  • Session
    • 修复了 GH-9932 错误(会话名称在使用 . 和 [ 时会静默失败)。
  • SPL
    • 修复了 GH-9883 错误(SplFileObject::__toString() 读取下一行)。
    • 修复了 GH-10011 错误(跳板自动加载器将重新注册,无法取消注册)。
  • SQLite3
    • 修复了 #81742 错误(通过使用文件 URI 在 SQLite3 中绕过 open_basedir)。
  • TSRM
    • 修复了 Windows shmget() 关于 IPC_PRIVATE 的问题。

版本 8.2.0

  • CLI
    • 修复了 #81496 错误(服务器记录了不正确的请求方法)。
    • 更新了内置服务器的 mime 类型表。
    • 修复了通过 PHP_CLI_SERVER_WORKERS 环境变量对内置服务器的潜在溢出。
    • 通过更改 STDOUT、STDERR 和 STDIN 在资源销毁时不再关闭,修复了 GH-8575 错误。
    • 实现内置 Web 服务器在对静态资源发出 HEAD 请求时不带正文进行响应。
    • 实现内置 Web 服务器在对静态资源发出 DELETE/PUT/PATCH 请求时以 HTTP 状态 405 进行响应。
    • 修复了 GH-9709 错误(使用 -w/-s 选项会导致空指针解引用)。
  • COM
    • 修复了 GH-8750 错误(无法创建 VT_ERROR 变体类型)。
  • 核心
    • 修复了 #81380 错误(观察者可能未正确初始化)。
    • 修复了 GH-7771 错误(修复常量表达式的文件名/行号)。
    • 修复了 GH-7792 错误(改进错误消息中的类类型)。
    • 在 macOS 上支持大页面。
    • 修复了 GH-8655 错误(将对象转换为数组不会取消包装 refcount=1 的引用)。
    • 修复了 GH-8661 错误(合并中的空安全会触发未定义变量警告)。
    • 修复了 GH-7821GH-8418 错误(允许支持枚举中使用任意常量表达式)。
    • 修复了 GH-8810 错误(多行函数调用的回溯中行号不正确)。
    • 针对使用流普通包装器新创建的文件优化了代码路径。
    • 使用 safe_perealloc 代替 perealloc 针对 ZEND_PTR_STACK_RESIZE_IF_NEEDED 来避免可能发生的溢出。
    • 减少了 var_export()、json_encode()、serialize()、iconv_*()、mb_ereg*()、session_create_id()、http_build_query()、strstr()、Reflection*::__toString() 返回的字符串的内存占用。
    • 修复了 GH-8995 错误(弱映射对象引用偏移导致类型错误)。
    • 添加了 error_log_mode ini 设置。
    • 更新了请求启动消息。
    • 修复了 GH-7900 错误(具有永不返回值类型的箭头函数的编译时错误)。
    • 修复了最新的 clang 中的双精度数到长整型数的错误转换。
    • 添加了在特征中定义常量的支持。
    • 停止针对 `"{$g{'h'}}"` 错误地发出假阳性弃用通知,该通知与不支持的语法致命错误并存。
    • 修复了意外的弃用动态属性警告,该警告是在抛出异常后,在 finally 块中执行 exit() 且未捕获该异常时发生的。
    • 修复了 GH-9323 错误(ZEND_RETURN/GC/zend_call_function 中发生崩溃)(Tim Starling)
    • 修复了 GH-9227 错误(文件名中的尾随点和空格被忽略)。
    • 修复了 GH-9285 错误(特征无法在只读类中使用)。
    • 修复了 GH-9186 错误(可以使用反序列化绕过 @strict-properties)。
    • 修复了 GH-9500 错误(在只读关键字后使用括号的 dnf 类型会导致解析错误)。
    • 修复了 GH-9516 错误((A&B)|D 作为参数应允许 AB 或 D,而不仅仅是 A)。
    • 修复了 Opcache file_cache_only=1 情况下观察者类通知的问题。
    • 修复了 FreeBSD i386 架构上 Fiber 出现的段错误。
    • 修复了 GH-9655 错误(纯交叉类型不能隐式为空)(Girgias)
    • 修复了 GH-9589 错误(当模块已加载时,dl() 会出现段错误)。
    • 修复了 GH-9752 错误(当在使用额外命名参数进行参数评估期间中断时,生成器会崩溃)。
    • 修复了 GH-9801 错误(当在初始化期间超过内存限制时,生成器会崩溃)。
    • 修复了预加载枚举可能导致段错误的错误。
    • 修复了 GH-9823 错误(不要在 zend_closure_internal_handler 中重置 func)。
    • 修复了 Windows shm*() 函数中可能出现的空指针解引用问题。
    • 修复了使用构造函数属性提升的内部属性的目标验证。
    • 修复了 GH-9750 错误(在参数评估期间中断时,生成器内存泄漏)。
    • 将 observer_declared_function_notify 移动到 pass_two() 之后。
    • 不要在扩展中报告 MINIT 阶段的内部类别名。
  • Curl
    • 添加了对 CURLOPT_XFERINFOFUNCTION 的支持。
    • 添加了对 CURLOPT_MAXFILESIZE_LARGE 的支持。
    • 添加了 cURL 7.62 到 7.80 的新常量。
    • 新增函数 curl_upkeep()。
  • 日期
    • 修复了 GH-8458 错误(DateInterval::createFromDateString 在存在非相对项时不会抛出异常)。
    • 修复了 #52015 错误(允许在 DatePeriod 迭代中包含结束日期)(Daniel Egeberg, Derick)
    • idate() 现在接受格式说明符 "N"(ISO 星期几)和 "o"(ISO 年份)。
    • 修复了 GH-8730 错误(DateTime::diff 在时区类型不同时会错误计算)。
    • 修复了 GH-8964 错误(在应用小于 1 秒的增量后,DateTime 对象比较)。
    • 修复了 GH-9106 错误(从 PHP 8.1.0 开始,将 1.5 秒的 DateInterval 添加到 DateTimeInterface 会被向下取整)。
    • 修复了 #75035 错误(Datetime 无法反序列化 "极端" 日期)。
    • 修复了 #80483 错误(具有 5 位数年份的 DateTime 对象无法反序列化)。
    • 修复了 #81263 错误(DateTimeImmutable::diff 返回的结果错误)。
    • 修复了 GH-9431 错误(DateTime::getLastErrors() 在没有错误/警告时没有返回 false)。
    • 修复了使用 @ 符号解析大负数时的错误。
  • DBA
    • 修复了尝试删除不存在的键时 LMDB 驱动程序挂起的问题(Girgias)
    • 修复了 LMDB 驱动程序在 DB 创建失败时的内存泄漏问题(Girgias)
    • 修复了 GH-8856 错误(dba:lmdb:允许覆盖 MDB_NOSUBDIR 标志)。
  • FFI
    • 修复了 GH-9090 错误(支持在 FFI 中分配函数指针)。
  • Fileinfo
    • 修复了 GH-8805 错误(finfo 返回 woff/woff2 文件的错误 mime 类型)。
  • 过滤器
    • 添加了 FILTER_FLAG_GLOBAL_RANGE 用于过滤全局 IP。
  • FPM
    • 对无效的端口设置发出错误。
    • 添加了针对基于 SELinux 的系统的 FPM proc 可转储的额外检查。
    • 添加了对 macOS 上监听队列的支持。
    • 将 Linux 上 listen.backlog 的默认值更改为 -1。
    • 添加了 listen.setfib 池选项以在 FreeBSD 上设置路由 FIB。
    • 添加了 access.suppress_path 池选项以过滤访问日志条目。
    • 修复了 fpm 记分板在获取失败时偶尔出现的警告。
    • 修复了 GH-9754 错误(SaltStack(使用 Python 子进程)在运行 php-fpm 8.1.11 时会挂起)。
  • FTP
    • 修复了 ftp_mdtm() 中的日期时间格式字符串以遵循 POSIX 规范。
  • GD
    • 修复了 #81739 错误:imageloadfont() 中由于输入验证不足导致的 OOB 读取。(CVE-2022-31630)
  • GMP
    • 修复了 GH-9308 错误(当将 GMP 对象传递给 gmp_init() 时,GMP 会抛出错误的错误)。
  • 哈希
    • 修复了 #81738 错误:hash_update() 在长参数上的缓冲区溢出。(CVE-2022-37454)
  • Intl
    • 使用首选值更新所有已废弃的语言标签。
    • 修复了 GH-7939 错误(无法反序列化 IntlTimeZone 对象)。
    • 修复了针对 ICU 69.x 及更高版本的构建。
    • 将 Transliterator::$id 声明为只读以解锁对其进行子类化。
    • 修复了 GH-9421 错误(NumberFormatter 中的 ValueError 的参数数量不正确)。
  • MBString
    • 修复了 GH-9248 错误(mb_strimwidth() 中出现段错误)。
  • mysqli
    • 修复了 GH-9841 错误(mysqli_query 抛出警告,尽管使用了静默错误模式)。
  • MySQLnd
    • 修复了由于对齐不匹配导致的潜在堆损坏。
  • OCI8
    • 添加了 oci8.prefetch_lob_size 指令以调整 LOB 查询性能。
    • 对 Oracle Client 库 10.1 和 10.2 的构建支持已停止。现在需要 Oracle Client 库 11.2 或更高版本。
  • ODBC
    • 修复了 GH-8300 错误(在构建连接字符串时,用户输入未转义)。
    • 修复了 GH-9347 错误(当前的 ODBC 存活性检查可能不足)。
  • Opcache
    • 在 PHP .text 段附近分配 JIT 缓冲区,以允许使用直接 IP 相对调用和跳转。
    • 添加了对用于 macOs Instrument 的 JIT 性能分析生成的基本支持。
    • 修复了 GH-8030 错误(在使用 JIT 和大型匹配/switch 语句时出现段错误)。
    • 添加了针对 macOs 的 JIT 支持改进,用于段和可执行权限位的处理。
    • 在 FreeNSD 上添加了在 .text 部分附近分配 JIT 缓冲区的支持。
    • 修复了 GH-9371 错误(在 mac arm64 上使用 JIT 会崩溃)(jdp1024/David Carlier)
    • 修复了错误 GH-9259(opcache.interned_strings_buffer 设置整数溢出)。
    • 为 x86 架构上的 jit 添加了间接调用减少。
    • 修复了错误 GH-9164(zend_accel_class_hash_copy 中的段错误)。
    • 修复了启用观察者时的 opcache 预加载。
  • OpenSSL
    • 在没有超时/非阻塞/MSG_DONTWAIT 时,丢弃套接字上的轮询调用。
    • 修复了错误 GH-9310(SSL local_cert 和 local_pk 不尊重 open_basedir)。
    • 实现 FR #76935(“chacha20-poly1305” 是 AEAD 但不像 AEAD 那样工作)。
    • 添加了 openssl_cipher_key_length 函数。
    • 修复了错误 GH-9517(与 PR GH-9366 相关的 OpenSSL 扩展编译错误)。
    • 修复了 OpenSSL 引擎列表的清理遗漏 - 尝试修复 GH-8620
    • 修复了错误 GH-8430(使用 no-md2、no-md4 或 no-rmd160 编译的 OpenSSL 无法构建)。
  • PCNTL
    • 修复了 MacOS 上 pcntl_(get|set)priority 错误处理。
  • PCRE
    • 实现 FR #77726(允许正则表达式模式中的空字符)。
    • 将捆绑的 libpcre 更新到 10.40。
  • PDO
    • 修复了错误 GH-9818(在 PDO 方法中初始化运行时缓存)。
  • PDO_Firebird
    • 修复了错误 GH-8576(字符为 UTF-8 时长度的错误解释)。
  • PDO_ODBC
    • 修复了错误 #80909(PDO_ODBC 中使用持久连接时崩溃)。
    • 修复了 GH-8300 错误(在构建连接字符串时,用户输入未转义)。
    • 修复了 GH-9347 错误(当前的 ODBC 存活性检查可能不足)。
    • 修复了错误 GH-9372(绑定超长参数时出现 HY010)。
  • PDO_PGSQL
    • 修复了错误 GH-9411(PgSQL 大对象资源被错误地关闭)。
  • Random
    • 添加了新的随机扩展。
    • 修复了错误 GH-9067(随机扩展不是线程安全的)。
    • 修复了错误 GH-9055(如果用户引擎抛出,则出现段错误)。
    • 修复了错误 GH-9066(有符号整数溢出)。
    • 修复了错误 GH-9083(移位期间出现未定义的行为)。
    • 修复了错误 GH-9088GH-9056(在给定范围内生成均匀整数时,字节的错误扩展)。
    • 修复了错误 GH-9089(修复 Randomizer::__construct() 调用两次时的内存泄漏)。
    • 修复了错误 GH-9212(PcgOneseq128XslRr64::jump() 不应该允许负数 $advance)。
    • 将 Mt19937 更改为抛出 ValueError 而不是 InvalidArgumentException 以用于无效的 $mode。
    • 将 Random\Randomizer::getInt()(没有参数)拆分为 Random\Randomizer::nextInt()。
    • 修复了错误 GH-9235(PcgOneseq128XslRr64::__construct() 的存根中不存在 $sequence 参数)。
    • 修复了错误 GH-9190GH-9191(MT_RAND_PHP 处理大范围时的未定义行为)。
    • 修复了错误 GH-9249(Xoshiro256StarStar 不拒绝无效的全零状态)。
    • 从 Randomizer 方法中删除了多余的 RuntimeExceptions。引擎抛出的异常将直接暴露。
    • 添加了扩展特定的异常/错误(RandomException、RandomError、BrokenRandomEngineError)。
    • 修复了错误 GH-9415(使用 Mt19937 的 Randomizer::getInt(0, 2**32 - 1) 始终返回 1)。
    • 修复了 32 位引擎的 Randomizer::getInt() 一致性。
    • 修复了错误 GH-9464(在旧版本的 macOs 上构建)。
    • 修复了错误 GH-9839(对于 MT_RAND_PHP,非 mt_rand() 函数的 PHP 8.2 之前的输出兼容性)。
  • 反射
    • 添加了 ReflectionFunction::isAnonymous()。
    • 添加了 ReflectionMethod::hasPrototype()。
    • 将 ReflectionEnum::getBackingType() 返回类型缩小到 ReflectionNamedType。
    • 修复了错误 GH-8932(ReflectionFunction 没有提供获取 Closure 的调用类的方法)。
  • Session
    • 修复了错误 GH-7787(为用户错误处理程序改进会话写入失败消息)。
    • 修复了 GH-9200(setcookie 具有过时的过期日期格式)。
    • 修复了 GH-9584(在不注销自定义会话处理程序时避免内存损坏)。
    • 修复了错误 GH-9583(session_create_id() 在使用没有 validateId() 方法的用户定义保存处理程序时失败)。
  • SOAP
    • 修复了错误 GH-9720(序列化响应时出现空指针解引用)。
  • 套接字
    • 添加了 TCP_NOTSENT_LOWAT 套接字选项。
    • 添加了 SO_MEMINFO 套接字选项。
    • 添加了 SO_RTABLE 套接字选项(OpenBSD),等效于 SO_MARK(Linux)。
    • 添加了 TCP_KEEPALIVE、TCP_KEEPIDLE、TCP_KEEPINTVL、TCP_KEEPCNT 套接字选项。
    • 添加了对 FreeBSD 的辅助数据支持。
    • 添加了对 NetBSD 的辅助数据支持。
    • 添加了 SO_BPF_EXTENSIONS 套接字选项。
    • 添加了 SO_SETFIB 套接字选项。
    • 添加了 TCP_CONGESTION 套接字选项。
    • 添加了 SO_ZEROCOPY/MSG_ZEROCOPY 选项。
    • 为 Solaris 添加了 SOL_FILTER 套接字选项。
    • 修复了 PHP 8.2.0beta3 及更高版本中的套接字常量回归。
  • Sodium
    • 添加了 sodium_crypto_stream_xchacha20_xor_ic()。
  • SPL
    • 使用 safe_erealloc 而不是 erealloc 来处理 SplHeap::insert 方法的堆增长,以避免可能的溢出。
    • 将 iterator_to_array() 和 iterator_count() 的 $iterator 参数扩展到 iterable。
    • 修复了错误 #69181(READ_CSV|DROP_NEW_LINE 丢弃字段中的换行符)。
    • 修复了错误 #65069(GlobIterator 对 open_basedir 检查的错误处理)。
  • SQLite3
    • 将 sqlite3.defensive 从 PHP_INI_SYSTEM 更改为 PHP_INI_USER。
  • 标准
    • net_get_interfaces() 也会在 Windows 上报告无线网络接口。
    • 完成了 getimagesize() 中的 AVIF 支持。
    • 修复了错误 GH-7847(使用大型 haystack 的 stripos 性能很差)。
    • 新函数 memory_reset_peak_usage()。
    • 修复了 parse_url():无法识别没有方案的端口。
    • 已弃用 utf8_encode() 和 utf8_decode()。
    • 修复了 clang > 12 时 crypt_sha256/512 api 的构建。
    • 使用 safe_erealloc 而不是 erealloc 来处理 getopt 中的选项,以避免可能的溢出。
    • 实现 FR GH-8924(对于空字符串,str_split 应该返回空数组)。
    • 添加了 ini_parse_quantity 函数,用于将 ini 量级速记符号转换为 int。
    • 为 Linux glibc 2.36 及更高版本启用 arc4random_buf 以用于 random_bytes。
    • 在 macOs 上使用 CCRandomGenerateBytes 而不是 arc4random_buf。(David Carlier)。
    • 修复了错误 #65489(glob() 基目录检查不一致)。
    • 修复了 GH-9200(setcookie 具有过时的过期日期格式)。
    • 修复了 GH-9244(使用 array_multisort + array_shift 时出现段错误)。
    • 修复了错误 GH-9296(`ksort` 在具有混合键的数组上的行为不正确)。
    • 将 crypt() 的 $string 参数标记为 #[\SensitiveParameter]。
    • 修复了错误 GH-9464(在旧版本的 macOs 上构建)。
    • 修复了错误 GH-9518(禁用 IPv6 支持会禁用无关的常量)。
    • 恢复“修复了 parse_url():无法识别没有方案的端口。”(andypost)
    • 修复了在模块已加载时,在 DL_UNLOAD() 之后读取 module_entry 时的崩溃。
    • 在连接到远程主机时,如果可用,则设置 IP_BIND_ADDRESS_NO_PORT。
    • 修复了错误 GH-8548(stream_wrapper_unregister() 会泄漏内存)。
    • 在没有超时/非阻塞/MSG_DONTWAIT 时,丢弃套接字上的轮询调用。
    • 修复了错误 GH-9316(对于长状态行,$http_response_header 是错误的)。
    • 修复了错误 GH-9590(stream_select 在出现异常或空有效 fd 集时不会中止)。
    • 修复了错误 GH-9653(不同文件系统之间的文件复制)。
    • 修复了错误 GH-9779(如果目标处于追加模式,则 stream_copy_to_stream 失败)。
  • Windows
    • 添加了对 ARM64 的(交叉)构建的初步支持。
  • XML
    • 添加了 libxml_get_external_entity_loader() 函数。
  • Zip
    • 添加 ZipArchive::clearError() 方法
    • 添加 ZipArchive::getStreamName() 方法
    • 添加 ZipArchive::getStreamIndex() 方法
    • 在 Windows 上,Zip 扩展现在默认情况下作为共享库 (DLL) 构建。
    • 在可能的情况下,使用 libzip 1.9.1 为 zip 流实现 fseek。

版本 8.1.29

  • CGI
    • 修复了 bug GHSA-3qgc-jrrr-25jv (绕过 CVE-2012-1823,PHP-CGI 中的参数注入)。(CVE-2024-4577)
  • 过滤器
    • 修复了 bug GHSA-w8qr-v226-r27w (filter_var FILTER_VALIDATE_URL 中的过滤器绕过)。(CVE-2024-5458)
  • OpenSSL
    • PHP 中的 openssl_private_decrypt 函数在使用 PKCS1 填充 (OPENSSL_PKCS1_PADDING,这是默认值) 时,容易受到 Marvin 攻击,除非它与包含此拉取请求更改的 OpenSSL 版本一起使用:https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection)。这些更改是 OpenSSL 3.2 的一部分,并且也已移植到各种 Linux 发行版的稳定版本,以及自上次发布以来为 Windows 提供的 PHP 构建。所有发行版和构建者应确保使用此版本,以防止 PHP 易受攻击。
  • 标准
    • 修复了 bug GHSA-9fcc-425m-g385 (绕过 CVE-2024-1874)。(CVE-2024-5585)

版本 8.1.28

  • 标准
    • 修复了 bug GHSA-pc52-254m-w9w7(通过 proc_open 的类数组 $command 参数进行命令注入)。(CVE-2024-1874)
    • 修复了 bug GHSA-wpj3-hf5j-x4v4(由于对 CVE-2022-31629 修复的补丁不完整,导致 __Host-/__Secure- Cookie 绕过)。(CVE-2024-2756)
    • 修复了 bug GHSA-h746-cjrr-wfmr(password_verify 可能错误地返回 true,导致 ATO 风险)。(CVE-2024-3096)

版本 8.1.27

  • 核心
    • 修复了 oss-fuzz #54325(在使用恶意错误处理程序的 var-var 中释放后使用 name)。
    • 修复了 oss-fuzz #64209(在 php_message_handler_for_zend 中就地修改文件名)。
    • 修复了 bug GH-12758 / GH-12768(ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 内部的 OOM 处理程序中的无效 opline)。
  • DOM
    • 修复了错误 GH-12616(DOM:删除 XMLNS 命名空间节点会导致无效的默认:前缀)。
  • FPM
    • 修复了 bug GH-12705(fpm_status_export_to_zval 中的段错误)。
  • Intl
    • 修复了错误 GH-12635(测试 bug69398.phpt 在 ICU 74.1 中失败)。
  • LibXML
    • 修复了错误 GH-12702(libxml2 2.12.0 从源代码构建时出现问题)。
  • MySQLnd
    • 避免使用未初始化的结构体。
  • OpenSSL
    • 修复了错误 #50713(openssl_pkcs7_verify() 可能会忽略不受信任的 CA)。
  • PCRE
    • 修复了错误 GH-12628(gh11374 测试在 Alpinelinux 上失败)。
  • PGSQL
    • 修复了错误 GH-12763,pg_untrace 的参数类型错误。
  • PHPDBG
    • 修复了错误 GH-12675(phpdbg_prompt.c 中的 MEMORY_LEAK)。
  • SQLite3
    • 修复了错误 GH-12633(sqlite3_defensive.phpt 在 sqlite 3.44.0 中失败)。
  • 标准
    • 修复了 syslog 设备处理中的内存泄漏。
    • 修复了错误 GH-12621(browscap 在虚拟主机中配置时出现段错误)。
    • 修复了错误 GH-12655(proc_open() 没有考虑描述符数组中的引用)。
    • 修复了错误 #79945(imagecreatefrompng 中的流包装器会导致段错误)。
  • Zip
    • 修复了错误 GH-12661(ZipArchive::addGlob remove_path 选项行为不一致)。

版本 8.1.26

  • 核心
    • 修复了错误 GH-12468(通过特征覆盖静态属性时的 doc_comment 的双重释放)。
    • 修复了由对 FFI 对象的弱引用引起的段错误。
    • 修复了 max_execution_time:不要删除未初始化的计时器。
  • DOM
    • 修复了使用抽象类时的 registerNodeClass 崩溃。
    • 添加了缺少的 NULL 指针错误检查。
    • 修复了 php:function() 回调的验证逻辑。
  • 纤维
    • 修复了错误 GH-11121(ReflectionFiber 段错误)。
  • FPM
    • 修复了错误 GH-9921(在 FPM 配置中加载 ext 不会注册模块处理程序)。
    • 修复了错误 GH-12232(FPM:在没有 opcache 的情况下动态加载扩展会导致段错误)。
  • Intl
    • 删除了对 IntlDateFormatter::construct 的 BC 中断,该中断在使用无效的语言环境时抛出异常。
  • Opcache
    • 在无法启用 JIT 时添加了警告。
    • 修复了错误 GH-8143(由于磁盘文件缓存损坏,升级到 8.1.3 后,zend_accel_inheritance_cache_find 中出现崩溃)。
  • OpenSSL
    • 修复了错误 GH-12489(openssl_cms_verify 中缺少 sigbio 创建检查)。
  • PCRE
    • 修复了错误 GH-11374(回退上游修复,启用 -d pcre.jit=0 的 PCRE 正则表达式会产生不同的结果)。
  • SOAP
    • 修复了错误 GH-12392(在 SoapClient::__getTypes 上出现段错误)。
    • 修复了错误 #66150(SOAP WSDL 缓存竞争条件会导致段错误)。
    • 修复了错误 #67617(SOAP 在 ENOSPC 上留下不完整的缓存文件)。
    • 修复了 SOAP 缓存中不正确的 uri 检查。
    • 修复了带有引用计数属性和数组的段错误和断言失败。
    • 修复了持久编码器边缘情况的潜在崩溃。
    • 修复了错误 #75306(SoapClient 中的内存泄漏)。
    • 修复了错误 #75708(getimagesize 使用 "&$imageinfo" 在流包装器上失败)。
  • XMLReader
    • 添加了缺少的 NULL 指针错误检查。
  • XMLWriter
    • 添加了缺少的 NULL 指针错误检查。
  • XSL
    • 添加了缺少的模块依赖项。
    • 修复了 php:function() 回调的验证逻辑。

版本 8.1.25

  • 核心
    • 修复了错误 GH-12207(使用带有 doc 块的特征的类时出现内存泄漏)。
    • 修复了错误 GH-12215(模块条目被覆盖会导致 ext/dom 中的类型错误)。
    • 修复了错误 GH-12273(__builtin_cpu_init 检查)。
    • 修复了错误 #80092(ZTS + 预加载 = 关闭时出现段错误)。
  • CLI
    • 确保存在单个 Date 标头。
  • CType
    • 修复了错误 GH-11997(ctype_alnum 在 PHP 8.1 或更高版本中慢 5 倍)。
  • DOM
    • 恢复旧的命名空间协调行为。
    • 修复了错误 GH-8996(PHP ^8.1 上的 DOMNode 序列化)。
  • Fileinfo
    • 修复了错误 GH-11891(fileinfo 为某些 svg 文件返回 text/xml)。
  • 过滤器
    • 修复了带有 FILTER_CALLBACK 的显式 FILTER_REQUIRE_SCALAR(ilutov)
  • 哈希
    • 修复了错误 GH-12186(复制/克隆已完成的 HashContext 时出现段错误)。
  • Intl
    • 修复了错误 GH-12243(在 IntlDateFormatter::construct 上出现段错误)。
    • 修复了错误 GH-12282(IntlDateFormatter::construct 应该在无效的区域设置上抛出异常)。
  • MySQLnd
    • 修复了错误 GH-12297(PHP 启动:未知行上的无效库(可能不是 PHP 库)'mysqlnd.so')。
  • Opcache
    • 修复了已删除文件的 opcache_invalidate()。
    • 修复了错误 GH-12380(JIT + 私有数组属性访问在闭包内部访问子类中的私有属性)。
  • PCRE
    • 修复了错误 GH-11956(回退上游修复,启用 JIT 的 PCRE 正则表达式会产生不同的结果)。
  • SimpleXML
    • 修复了错误 GH-12170(无法在 SimpleXML 中使用 xpath 和注释)。
    • 修复了错误 GH-12223(实体引用在 var_dump/print_r 中产生无限循环)。
    • 修复了错误 GH-12167(无法在 SimpleXML 中获取处理指令内容)。
    • 修复了错误 GH-12169(无法在 SimpleXML 中获取注释内容)。
    • 修复了错误 GH-12190(使用地址和端口均为 0 绑定 ipv4 地址)。
  • XML
    • 修复了 xml_parse_into_struct() 存根的返回类型。
    • 修复了调用 xml_parse_into_struct() 两次时的内存泄漏。
  • XSL
    • 修复了使用 SimpleXML 时 XSLTProcessor::transformToDoc 返回值上的类型错误。
  • 套接字
    • 修复了使用错误协议的 socket_export_stream()(twosee)

版本 8.1.24

  • 核心
    • 修复了错误 GH-11937(包含对象的常量 AST)。
    • 修复了错误 GH-11790(在 riscv64 上,如果确实需要,则需要 libatomic)。
    • 修复了错误 GH-12073(释放未完全初始化的闭包时出现段错误)。
    • 修复了错误 GH-12060(内部迭代器回绕处理程序被调用两次)。
    • 修复了错误 GH-12102(在函数调用中对 TMP 值使用数组访问时出现错误的编译错误)。
  • DOM
    • 修复了设置无效 DOMDocument 编码时的内存泄漏问题。
  • Iconv
    • 修复了 NetBSD 的构建问题,该问题仍然使用旧的 iconv 签名。
  • Intl
    • 修复了错误 GH-12020(MessageFormatter::formatMessage() 失败后,intl_get_error_message() 出现故障)。
  • MySQLnd
    • 修复了错误 GH-10270(通过 SSL 连接失败时出现无效的错误消息:“尝试通过 (null) 连接”)。
  • ODBC
    • 修复了 SQLPrepare 失败时的内存泄漏问题。
    • 修复了持久的过程式 ODBC 连接未关闭的问题。
  • SimpleXML
    • 修复了错误 #52751(不支持 XPath processing-instruction() 函数)。
  • SPL
    • 修复了错误 GH-11972(8.1.18 中的 RecursiveCallbackFilterIterator 回归问题)。
  • SQLite3
    • 修复了错误 GH-11878(SQLite3 回调函数会导致可调用数组出现内存泄漏)。

版本 8.1.23

  • CLI
    • 修复了错误 GH-11716(使用 ZEND_RC_DEBUG=1 编译时,cli 服务器在 SIGINT 时崩溃)。
    • 修复了错误 GH-10964(改进关于内置服务器的手册页)。
  • 核心
    • 修复了配置时 strerror_r 的检测问题。
  • 日期
    • 修复了错误 GH-11416:在传递未初始化的对象时,DatePeriod 会崩溃。
  • DOM
    • 修复了 DOMEntity 字段获取器错误。
    • 修复了 DOMElement::setAttributeNodeNS 中的错误属性存在性检查。
    • 修复了 DOMCharacterData::replaceWith() 使用自身的情况。
    • 修复了 DOMParentNode 方法的空参数情况。
    • 修复了错误 GH-11791(DOMDocument::xmlStandalone 的默认值错误)。
    • 修复了 DOMDocument 上的 json_encode 结果。
    • 修复了手动在 DOM 类上调用 __construct()。
    • 修复了错误 GH-11830(ParentNode 方法应该提前执行其检查)。
    • 修复了在子节点消失时调用 DOMParentNode::prepend() 时的段错误。
  • FFI
    • 修复了使用 FFI::cdef()->new(...) 时泄漏定义的问题。
  • MySQLnd
    • 修复了错误 GH-11440(通过 SSL 对 sha256_password 帐户进行身份验证失败)。
    • 修复了错误 GH-11438(mysqlnd 无法使用超过 19 个字符的密码对使用 sha256_password 帐户进行身份验证)。
    • 修复了错误 GH-11550(当响应字段发生变化时,MySQL 语句具有空的查询结果,也会出现段错误)。
    • 修复了连接断开时的无效错误消息“无效数据包”。
  • Opcache
    • 修复了错误 GH-11715(opcache.interned_strings_buffer 既没有效果,也没有 opcache_get_status() / phpinfo() 错误)。
    • 如果在重启过程中无法分配加速的全局变量,则避免添加不必要的读锁。
  • PCNTL
    • 将接收 SIGCHLD 信号的行为恢复到 8.1.22 之前的行为。
  • SPL
    • 修复了错误 #81992(SplFixedArray::setSize() 导致使用已释放的内存)。
  • 标准
    • 防止 number_format 中的 $decimals 发生整数溢出。
    • 修复了错误 GH-11870(修复截断 tempnam 前缀时的越界错误)(athos-ribeiro)

版本 8.1.22

  • 构建
    • 修复了错误 GH-11522(PHP 版本检查使用 '-' 分隔符时失败)。
  • CLI
    • 修复了中断的 CLI 输出导致进程退出的问题。
  • 核心
    • 修复了 oss-fuzz #60011(按引用传递的空安全操作符的错误编译)。
    • 修复了对断言使用 ??= 时出现的未初始化值使用问题。
    • 修复了在 11.0 版本之前的 FreeBSD 上的构建问题。
  • Curl
    • 修复了将无效回调函数传递给 CURLMOPT_PUSHFUNCTION 时出现的崩溃问题。
  • 日期
    • 修复了错误 GH-11368(日期修改返回无效的日期时间)。
  • DOM
    • 修复了错误 GH-11625(DOMElement::replaceWith() 不会将节点替换为 DOMDocumentFragment,而是仅删除节点或根据 libxml2 版本导致包装 <></>)。
  • Fileinfo
    • 修复了错误 GH-11298(finfo 为 xz 文件返回错误的 mime 类型)。
  • FTP
    • 修复了对“overwrite”的上下文选项检查。
    • 修复了错误 GH-10562(连续使用 ftp_nb_fget 导致内存泄漏和无效状态)。
  • GD
    • 修复了大多数外部 libgd 测试失败的问题。
  • 哈希
    • 修复了 hash_pbkdf2() 中的未初始化值使用,修复了签名中缺少 $options 参数。
  • Intl
    • 修复了 MessageFormatter::format() 失败时的内存泄漏问题。
  • Libxml
    • 修复了错误 GHSA-3qrf-m4j2-pcrr(在没有启用外部实体加载的情况下,XML 中存在外部实体加载的安全问题)。(CVE-2023-3823)
  • MBString
    • 修复了 GH-11300(许可证问题:受限的 unicode 许可证头)。
  • Opcache
    • 修复了错误 GH-10914(带有 Enum 和回调函数的 OPcache 会导致段错误)。
    • 如果无法分配加速的全局变量,则防止潜在的死锁。
  • PCNTL
    • 修复了错误 GH-11498(SIGCHLD 并不总是从 proc_open 返回)。
  • PCRE
    • 使用 JIT 选项对 PCRE 正则表达式缓存键进行混淆。
  • PDO
    • 修复了 GH-11587(在 php8.1 之后,当 PDO::ATTR_EMULATE_PREPARES 为 true 且 PDO::ATTR_STRINGIFY_FETCHES 为 true 时,小数点后的零不再填充)。
  • PDO SQLite
    • 修复了 GH-11492(使测试失败:ext/pdo_sqlite/tests/bug_42589.phpt)。
  • Phar
    • 在 phar 实用程序中添加了对 EVP_VerifyUpdate() 的缺失检查。
    • 修复了错误 GHSA-jqcx-ccgc-xwhv(phar_dir_read() 中的缓冲区管理错误)。(CVE-2023-3824)
  • PHPDBG
    • 修复了错误 GH-9669(phpdbg -h 选项未列出 -z 选项)。
  • Session
    • 删除了用于传输会话 ID 的已损坏的 URL 支持。
  • 标准
    • 修复了对象图中两次出现的 RC1 对象的序列化问题。
  • SQLite3
    • 修复了 SQLite3Stmt::__construct 中的已替换的错误处理。

版本 8.1.21

  • CLI
    • 修复了错误 GH-11246(cli/get_set_process_title 在 MacOS 上失败)。
  • 核心
    • 修复了 riscv64 架构/GCC 12 的构建问题。
  • Curl
    • 修复了错误 GH-11433(无法将 CURLOPT_ACCEPT_ENCODING 设置为 NULL)。
  • DOM
    • 修复了错误 GH-11288GH-11289GH-11290GH-9142(DOMExceptions 和使用 replaceWith 时出现的段错误)。
    • 修复了错误 GH-10234(设置 DOMAttr::textContent 会导致属性值为空)。
    • 修复了 DOMNodeList::item 的存根文件中的返回值。
    • 修复了 DOMDocument::getElementsByTagNameNS 对 '*' 命名空间的规范一致性错误。
    • 修复了 DOMElement::append() 和 DOMElement::prepend() 的层次结构检查。
    • 修复了错误 GH-11347(在 XPath 查询中调用静态方法时出现内存泄漏)。
    • 修复了错误 #67440(DOMDocumentFragment 的 append_node 不会协调命名空间)。
    • 修复了错误 #81642(使用自身替换节点时,DOMChildNode::replaceWith() 出现错误)。
    • 修复了错误 #77686(已删除的元素仍由 getElementById 返回)。
    • 修复了错误 #70359(DOMAttr 上的 print_r() 会导致 php_libxml_node_free_list() 中出现段错误)。
    • 修复了错误 #78577(DOMNameSpace 调试信息处理程序中出现崩溃)。
    • 修复了 getAttributeNodeNS() 的生命周期问题。
    • 修复了使用克隆的命名空间声明导致的“无效状态错误”。
    • 修复了错误 #55294 和 #47530 和 #47847(各种命名空间协调问题)。
    • 修复了错误 #80332(DOMNamedNodeMap 的数组访问功能完全损坏)。
  • Opcache
    • 修复了 zend_shared_alloc_startup() 中的分配循环。
    • 在使用 ALLOC_FALLBACK 时,smm_shared_globals 出现访问冲突。
    • 修复了错误 GH-11336(php 仍然尝试使用 opcache.file_cache_only=1 解锁共享内存 ZendSem,但它从未被锁定)。
  • OpenSSL
    • 修复了错误 GH-9356 对 subjectAltNames 中的 IPv6 地址字段的验证不完整(James Lucas,Jakub Zelenka)。
  • PGSQL
    • 修复了 pg_trace 出现的间歇性段错误。
  • Phar
    • 修复了 FreeBSD 中 phar 生成时的交叉编译检查。
  • SPL
    • 修复了错误 GH-11338(SplFileInfo 多个斜杠时 getBasename 为空)。
  • 标准
    • 修复了 array_merge_recursive() 中的 NULL 指针访问问题。
    • 修复了 array_multisort() 中的异常处理。

版本 8.1.20

  • 核心
    • 修复了错误 GH-9068(条件跳转或移动依赖于未初始化的值)。
    • 修复了错误 GH-11189(在 zend_hash_do_resize 中超过内存限制会导致数组处于无效状态)。
    • 修复了错误 GH-11222(按引用传递的 foreach 可能会在重新散列期间跳过键)。
  • 日期
    • 修复了错误 GH-11281(DateTimeZone::getName() 不包含偏移量中的秒数)。
  • Exif
    • 修复了错误 GH-10834(exif_read_data() 无法读取更小的流包装器块大小)。
  • FPM
    • 修复了错误 GH-10461(PHP-FPM 由于使用 child->ev_std(out|err) 后释放的内存而出现段错误)。
    • 修复了错误 #64539(FPM 状态页面:query_string 未正确进行 JSON 编码)。
    • 修复了无效主脚本文件句柄的内存泄漏问题。
  • 哈希
    • 修复了错误 GH-11180(hash_file() 似乎限制为 3 个参数)。
  • LibXML
    • 修复了错误 GH-11160(使用新的 libxml 2.11.0 构建时,一些测试失败)。
  • Opcache
    • 修复了错误 GH-11134(错误的匹配默认分支优化)。
    • 修复了过宽的 OR 和 AND 范围推断问题。
    • 修复了错误 GH-11245(在某些特定情况下,使用一个默认语句的 SWITCH 会导致段错误)。
  • PGSQL
    • 修复了 pg_lo_export() 的参数解析。
  • Phar
    • 修复了错误 GH-11099(在交叉编译期间无法生成 phar.php)。
  • Soap
    • 修复了错误 GHSA-76gg-c692-v2mw(SOAP 的 HTTP Digest 身份验证中缺少错误检查和随机字节不足)。(CVE-2023-3247)
    • 修复了错误 GH-8426(构建 soap 扩展时,make 测试失败)。
  • SPL
    • 修复了错误 GH-11178(spl_array_it_get_current_data(PHP 8.1.18)中出现段错误)。
  • 标准
    • 修复了错误 GH-11138(move_uploaded_file() 为源文件发出 open_basedir 警告)。
    • 修复了 bug GH-11274(POST/PATCH 请求在 HTTP 308 重定向后切换到 GET)。
    • 修复了 bug GH-10031([Stream] STREAM_NOTIFY_PROGRESS 通过 HTTP 对最后一块数据的发出不规则)。
    • 修复了 bug GH-11175(流套接字超时)。
    • 修复了 bug GH-11177(当超时 = -1 传递给 stream_socket_accept/stream_socket_client 时,ASAN UndefinedBehaviorSanitizer)。

版本 8.1.19

  • 核心
    • 修复常量表达式中不一致的浮点数取反。
    • 修复了 bug GH-8841(php-cli 核心转储调用格式错误的函数)。
    • 修复了 bug GH-10737(PHP 8.1.16 在 sapi/apache2handler/sapi_apache2.c 的第 597 行发生段错误)。
    • 修复了 bug GH-11028(zval_undefined_cv 中的堆缓冲区溢出)。
    • 修复了 bug GH-11108(在 ??= 中,在退出后,CG(memoize_mode) 状态不正确)。
  • DOM
    • 修复了 bug #80602(使用 DOMChildNode::before() 时发生段错误)。
    • 修复了 dom_zvals_to_fragment() 中的错误处理。
  • Exif
    • 修复了 bug GH-9397(exif 读取:警告和错误:潜在的无效字节序、非法 IFD 大小和未定义索引)。
  • Intl
    • 修复了 bug GH-11071(不再显示 TZData 版本)。
  • PCRE
    • 修复了 bug GH-10968(在 preg_replace_callback_array() 中发生段错误)。
  • 标准
    • 修复了 bug GH-10990(在通过引用遍历 $additional_headers 数组后,mail() 抛出 TypeError)。
    • 修复了 bug GH-9775(使用枚举时,array_unique 返回重复项)。

版本 8.1.18

  • 核心
    • 在 ZTS/Linux 构建中添加了对 max_execution_time 的可选支持。
    • 修复了递归 AST 评估中的使用后释放错误。
    • 修复了 bug GH-8646(PHP FPM 8.1 内存泄漏)。
    • 修复了 bug GH-10801(CTE 函数中的命名参数会导致段错误)。
    • 修复了 bug GH-8789(PHP 8.0.20 (ZTS) zend_signal_handler_defer 在 apache 上崩溃)。
    • 修复了 bug GH-10015(zend_signal_handler_defer 在 apache 关闭时崩溃)。
    • 修复了 bug GH-10810(修复 NUL 字节终止 Exception::__toString())。
    • 修复了在混合 __callStatic() 和 FFI 时可能发生的内存损坏。
  • 日期
    • 修复了错误 GH-10583(使用 tz 模式的 DateTime 修改不应该更新链接的时区)。
  • FPM
    • 修复了 bug GH-10611(fpm_env_init_main 泄漏 environ)。
    • 在 fpm_main 中销毁 file_handle。
    • 修复了 bug #74129(当路径中存在空格时,apache ProxyPassMatch 的 SCRIPT_NAME 不正确)。
  • FTP
    • 传播 ftp_close() 的成功状态。
    • 修复了 bug GH-10521(ftp_get/ftp_nb_get resumepos 偏移量最大为 10GB)。
  • IMAP
    • 修复了 Clang 16 构建失败。
  • MySQLnd
    • 修复了 bug GH-8979(启用 SSL 的 MySQL 连接可能发生内存泄漏)。
  • Opcache
    • 修复了 macOS 的构建以满足 pkg-config 设置。
    • 修复了 bug GH-8065(opcache.consistency_checks > 0 在 fpm 上下文中会导致 PHP >= 8.1.5 中发生段错误)。
  • OpenSSL
    • 在文件写入函数中添加了缺少的错误检查。
  • PDO Firebird
    • 修复了 bug GH-10908(在带有 64 位内核和 32 位用户空间的 RPI 上,PDO Firebird 发生总线错误)。
  • PDO ODBC
    • 修复了 SQLAllocHandle 上缺少的和不一致的错误检查。
  • Phar
    • 修复了 bug GH-10766(使用 Phar::Zip 格式创建的 PharData 档案不会保留文件元数据(日期时间))。
    • 在 EVP_MD_CTX_create() 和 EVP_VerifyInit() 上添加了缺少的错误检查。
  • PGSQL
    • 修复了从 pg_meta_data(扩展模式)返回的数组中的拼写错误。
  • SPL
    • 修复了 bug GH-10519(数组数据地址引用问题)。
    • 修复了 bug GH-10844(ArrayIterator 允许修改只读属性)。
  • 标准
    • 修复了 bug GH-10885(stream_socket_server 上下文泄漏)。
    • 修复了 bug GH-10052(Browscap 在请求关闭时(apache2)使 PHP 8.1.12 崩溃)。
    • 修复了 oss-fuzz #57392(php_fgetcsv() 中的缓冲区溢出,使用 \0 分隔符和引号)。
    • 修复了 unpack() 中的未定义行为。

版本 8.1.17

  • 核心
    • 修复了 ZEND_YIELD 中的错误检查条件。
    • 修复了类型推断中的错误检查条件。
    • 修复了 OnUpdateMemoryConsumption 中的溢出检查。
    • 修复了 bug GH-9916(在关闭序列中,使用一个在生成器中挂起的纤维会发出一个不可避免的致命错误或崩溃)。
    • 修复了 bug GH-10437(在退出后,在关闭函数中使用纤维会导致段错误/断言)。
    • 修复了复合赋值操作码的 SSA 对象类型更新。
    • 修复了语言扫描器生成构建。
    • 修复了 zend_update_static_property() 误导性地使用错误的返回值类型调用 zend_update_static_property_ex()。
    • 修复了 bug GH-10570(修复了使用整数常量名称的属性获取时出现的未知字符串哈希)。
    • 修复了 php_fopen_primary_script() 调用导致 zend_destroy_file_handle() 释放句柄上的悬空指针,因为句柄未初始化。
  • Curl
    • 修复了编译时的弃用警告。
    • 修复了 bug GH-10270(无法在 readfunc 回调中返回 CURL_READFUNC_PAUSE)。
  • 日期
    • 修复了 GH-10447('p' 格式说明符不会为 00:00 生成 'Z')。
  • FFI
    • 修复了 ffi 位域中的错误移位和掩码。
  • 纤维
    • 修复了 alpine x86 上的汇编。
    • 修复了 bug GH-10496(在纤维内部调用垃圾收集器时发生段错误)。
  • FPM
    • 修复了 bug GH-10315(FPM 未知子进程警报无效)。
    • 修复了 bug GH-10385(FPM 成功配置测试提前退出)。
  • Intl
    • 修复了 bug GH-10647(Spoolchecker isSuspicious/areConfusable 方法错误代码的参数始终返回 NULL0)。
  • JSON
    • 修复了 JSON 扫描器和解析器生成构建。
  • MBString
    • ext/mbstring:修复 new_value 长度检查。
    • 修复了 bug GH-10627(mb_convert_encoding 在 Windows 上使 PHP 崩溃)。
  • Opcache
    • 修复了错误的 page_size 检查。
  • OpenSSL
    • 修复了 php_openssl_set_server_dh_param() DH 参数错误处理。
  • PDO OCI
    • 修复了 bug #60994(读取多字节 CLOB 在 8192 个字符处截断)。
  • PHPDBG
    • 修复了 bug GH-10715(在 --run 选项误用时发生堆缓冲区溢出)。
  • PGSQL
    • 修复了 GH-10672(pg_lo_open 在 strict_types 模式下发生段错误)。
  • Phar
    • 修复了 phar tar 解析中的错误检查。
  • 反射
    • 修复了 bug GH-10623(Reflection::getClosureUsedVariables 操作码修复,带有可变参数)。
    • 修复了使用由内部函数挂起的 ReflectionFiber 时发生的段错误。
  • Session
    • 修复了 ps_files_cleanup_dir() 在失败代码路径上的错误代码,使用 -1 而不是 0,因为后者被调用者视为成功。(nielsdos)。
  • 标准
    • 修复了 bug GH-10292(使 srand() 和 mt_srand() 的第一个参数的默认值变为未知)。
    • 修复了 map_from_unicode() 中 cs_8559_5 的错误检查。
    • 修复了 bug GH-9697,针对 reset/end/next/prev() 尝试为某些内部类(如 FFI 类)移动属性表的指针。
    • 修复了 browsecap 中针对 pcre2_match() 的错误错误检查。
  • Tidy
    • 修复了在尝试打开不存在的文件或超过 4GB 的文件时发生的内存泄漏。
    • 在 tidyLoadConfig 上添加了缺少的错误检查。
  • Zlib
    • 修复了 output_handler 指令值的长度,该值计算了字符串终止符。

版本 8.1.16

  • 核心
    • 修复了错误 #81744(Password_verify() 始终使用某些哈希返回 true)。
    • 修复了错误 #81746(常见路径解析代码中出现 1 字节数组溢出)。
  • SAPI
    • 修复了 bug GHSA-54hq-v5wp-fqgv(在解析多部分请求主体时发生的 DOS 漏洞)。(CVE-2023-0662)

版本 8.1.15

  • Apache
    • 修复了 GH-9949 错误(不完整 POST 请求上的部分内容)。
  • 核心
    • 修复了错误 GH-10072(当 execute_ex 被覆盖并且从内部代码使用 __call 跳板时,PHP 会崩溃)。
    • 修复了 GH-10251(断言 `(flag & (1<<3)) == 0` 失败)。
    • 修复了在操作码更新后,在块优化传递中进行错误比较。
  • 日期
    • 修复了错误 GH-9891(使用 unixtimestamp (@) 的 DateTime 修改必须与 setTimestamp 相同)。
    • 修复了错误 GH-10218(DateTimeZone 无法解析包含“+”字符的时区)。
  • 纤维
    • 修复了堆栈分配大小的断言。
  • FPM
    • 修复了 bug GH-9981(FPM 不会重置 fastcgi.error_header)。
    • 修复了 bug #67244(监听的 unix 套接字的拥有者/组错误)。
  • 哈希
    • 处理来自 XXH3 初始化的 __toString 的异常(nielsdos)
  • LDAP
    • 修复了 bug GH-10112(LDAP\Connection::__construct() 引用 ldap_create())。
  • MBString
    • 修复:mb_strlen(以及其他一些 mbstring 函数)会错误地将 0x80、0xFD、0xFE、0xFF 和某些其他字节值视为 2 字节 SJIS 字符的第一个字节。
  • Opcache
    • 修复了 zend_runtime_jit() 中的倒置退出值(Max Kellermann)。
    • 修复了 accel_preload() 中对未初始化变量的访问。
    • 修复了 zend_jit_find_trace() 崩溃。
    • 在 zend_jit_trace_exit 中为 EXIT_INVALIDATE 添加了缺少的锁。
  • Phar
    • 修复了 phar_object.c 中对压缩方法的错误标志检查(nielsdos)
  • PHPDBG
    • 修复了 phpdbg_load_module_or_extension() 中的未定义行为。
    • 修复了 phpdbg_create_conditional_breal() 中的 NULL 指针解除引用。
    • 修复了 GH-9710:phpdbg 由于选项“-h”导致内存泄漏(nielsdos)
    • 修复了 phpdbg 在遇到格式错误的输入时发生的段错误(nielsdos)
  • Posix
    • 修复了 posix_ttyname() 中的内存泄漏(girgias)
  • 标准
    • 修复了 GH-10187(在 stripslashes() 中使用 arm64 时发生段错误)。
    • 修复了 repl_ht 中的槽为 UNDEF 时发生的 substr_replace。
  • TSRM
    • 修复了 Windows shmget() 关于 IPC_PRIVATE 的问题。
  • XMLWriter
    • 修复了 xmlTextWriterEndElement 中的缺少检查(nielsdos)

版本 8.1.14

  • 核心
    • 修复了 bug GH-9905(当类未定义时,constant() 的行为不一致)。
    • 修复了 GH-9918 错误(README.REDIST.BINS 文件中未包含 xxHash 的许可证信息)。
    • 修复了 GH-9650 错误(无法初始化堆:[0x000001e7])。
    • 修复了 Windows ftok(3) 模拟中可能存在的未定义行为。
  • 日期
    • 修复了错误 GH-9699(DateTimeImmutable::diff 从 8.1.10 开始的差异 - 与时区相关)。
    • 修复了错误 GH-9700(DateTime::createFromFormat:解析 TZID 字符串过于贪婪)。
    • 修复了错误 GH-9866(使用 \DateTimeInterface::diff() 时出现时区错误)。
    • 修复了错误 GH-9880(DateTime diff 在使用时区时,对天数的符号返回错误的结果)。
  • FPM
    • 修复了 GH-9959 错误(Solaris 端口事件机制在 bug #66694 之后仍然存在问题)。
    • 修复了 #68207 错误(设置 fastcgi.error_header 可能导致 WARNING)。
    • 修复了 GH-8517 错误(FPM 主进程在 fpm_stdio_child_said 中随机崩溃)。
  • MBString
    • 修复了 GH-9535 错误(PHP 8.1 中 mbstring 中 mb_strcut 的行为已更改)。
  • Opcache
    • 修复了 GH-9968 错误(OPCache 预加载期间出现段错误)。
  • OpenSSL
    • 修复了 GH-9064 错误(如果 openssl 使用 --no-ec 构建,PHP 无法构建)。
    • 修复了 GH-10000 错误(使用 no-dsa 编译 OpenSSL 时,OpenSSL 测试失败)。
  • Pcntl
    • 修复了 GH-9298 错误(在 rshutdown 之后调用信号处理程序会导致崩溃)。
  • PDO_Firebird
    • 修复了 GH-9971 错误(PDO_Firebird 返回的 NUMERIC 值不正确)。
  • PDO/SQLite
    • 修复了 #81740 错误(PDO::quote() 可能返回未引用的字符串)。(CVE-2022-31631)
  • Session
    • 修复了 GH-9932 错误(会话名称在使用 . 和 [ 时会静默失败)。
  • SPL
    • 修复了 GH-9883 错误(SplFileObject::__toString() 读取下一行)。
    • 修复了 GH-10011 错误(跳板自动加载器将重新注册,无法取消注册)。
  • SQLite3
    • 修复了 #81742 错误(通过使用文件 URI 在 SQLite3 中绕过 open_basedir)。

版本 8.1.13

  • CLI
    • 修复了 GH-9709 错误(使用 -w/-s 选项会导致空指针解引用)。
  • 核心
    • 修复了 GH-9752 错误(当在使用额外命名参数进行参数评估期间中断时,生成器会崩溃)。
    • 修复了 GH-9801 错误(当在初始化期间超过内存限制时,生成器会崩溃)。
    • 修复了 Windows shm*() 函数中可能出现的空指针解引用问题。
    • 修复了 GH-9750 错误(在参数评估期间中断时,生成器内存泄漏)。
  • 日期
    • 修复了错误 GH-9763(DateTimeZone ctr 错误地处理输入,如果参数是大于 100*60 分钟的偏移量,则会添加空字节)。
  • FPM
    • 修复了 GH-9754 错误(SaltStack(使用 Python 子进程)在运行 php-fpm 8.1.11 时会挂起)。
  • mysqli
    • 修复了 GH-9841 错误(mysqli_query 抛出警告,尽管使用了静默错误模式)。
  • MySQLnd
    • 修复了由于对齐不匹配导致的潜在堆损坏。
  • OpenSSL
    • 修复了错误 GH-8430(使用 no-md2、no-md4 或 no-rmd160 编译的 OpenSSL 无法构建)。
  • SOAP
    • 修复了 GH-9720(序列化响应时出现空指针解引用)。

版本 8.1.12

  • 核心
    • 修复了 FreeBSD i386 架构上 Fiber 出现的段错误。
  • Fileinfo
    • 修复了 GH-8805 错误(finfo 返回 woff/woff2 文件的错误 mime 类型)。
  • GD
    • 修复了 #81739 错误:imageloadfont() 中由于输入验证不足导致的 OOB 读取。(CVE-2022-31630)
  • 哈希
    • 修复了 #81738 错误:hash_update() 在长参数上的缓冲区溢出。(CVE-2022-37454)
  • MBString
    • 修复了错误 GH-9683(在 mb_ encode_mimeheader 中指定 ISO-2022-JP-MS 时出现问题)。
  • Opcache
    • 为 x86 架构上的 jit 添加了间接调用减少。
  • Session
    • 修复了错误 GH-9583(session_create_id() 在使用没有 validateId() 方法的用户定义保存处理程序时失败)。
    • 修复了错误 GH-9590(stream_select 在出现异常或空有效 fd 集时不会中止)。

版本 8.1.11

  • 核心
    • 修复了错误 #81726:phar 包装器:使用 quine gzip 文件时的 DOS。(CVE-2022-31628)
    • 修复了错误 #81727:不要对与具有特定语义含义的变量名冲突的 HTTP 变量名进行混淆。(CVE-2022-31629)
    • 修复了 GH-9323 错误(ZEND_RETURN/GC/zend_call_function 中发生崩溃)(Tim Starling)
    • 修复了错误 GH-9361(脚本退出时的段错误 #9379)。
    • 修复了错误 GH-9447(AST 转储为常量表达式中的 new 和类常量发出的无效类 FQN)。
  • DOM
    • 修复了错误 #79451(DOMDocument->replaceChild 在 doctype 上导致双重释放)。
  • FPM
    • 修复了错误 GH-8885(具有 stderr 的 FPM access.log 在守护进程重新加载后开始将日志写入 error_log)。
    • 修复了错误 #77780(先前连接中止时出现“已发送标头…”)。
  • GMP
    • 修复了 GH-9308 错误(当将 GMP 对象传递给 gmp_init() 时,GMP 会抛出错误的错误)。
  • Intl
    • 修复了 GH-9421 错误(NumberFormatter 中的 ValueError 的参数数量不正确)。
  • PCRE
    • 修复了 Apple Silicon 上的 pcre.jit。
  • PDO_PGSQL
    • 修复了错误 GH-9411(PgSQL 大对象资源被错误地关闭)。
  • 反射
    • 修复了错误 GH-8932(ReflectionFunction 没有提供获取 Closure 的调用类的方法)。
    • 修复了错误 GH-9316(对于长状态行,$http_response_header 是错误的)。

版本 8.1.10

  • 核心
    • 修复了 run-tests.php 的 --CGI-- 支持。
    • 修复了最新的 clang 中的双精度数到长整型数的错误转换。
    • 修复了错误 GH-9266(当存在 dtor 时,GC 根缓冲区会不断增长)。
  • 日期
    • 修复了 GH-8730 错误(DateTime::diff 在时区类型不同时会错误计算)。
    • 修复了 GH-8964 错误(在应用小于 1 秒的增量后,DateTime 对象比较)。
    • 修复了错误 GH-9106: (自 PHP 8.1.0 以来,向 DateTimeInterface 添加 1.5 秒会被舍入)。
    • 修复了 #81263 错误(DateTimeImmutable::diff 返回的结果错误)。
  • DBA
    • 修复了 LMDB 驱动程序在数据库创建失败时的内存泄漏。
    • 修复了错误 GH-9155(dba_open("non-existing", "c-", "flatfile") 会出现段错误)。
  • IMAP
    • 修复了错误 GH-9309(在 imap_close() 之后使用连接时出现段错误)。
  • Intl
    • 修复了 IntlDateFormatter::formatObject() 参数类型。
  • MBString
    • 修复了错误 GH-9008(mb_detect_encoding():使用空 $encodings 时结果错误)。
  • OPcache
    • 修复了错误 GH-9033(加载黑名单文件可能会由于负长度而失败)。
    • 修复了错误 GH-9164(zend_accel_class_hash_copy 中的段错误)。
  • PDO_SQLite
    • 修复了错误 GH-9032(SQLite3 授权程序在 NULL 值上崩溃)。
  • SQLite3
    • 修复了错误 GH-9032(SQLite3 授权程序在 NULL 值上崩溃)。
    • 修复了 bug GH-8472(stream_socket_accept 返回的资源可能具有不正确的元数据)。
    • 修复了 bug GH-8409(SSL 握手超时会导致持久连接挂起)。

版本 8.1.9

  • CLI
    • 修复了通过 PHP_CLI_SERVER_WORKERS 环境变量对内置服务器的潜在溢出。
    • 修复了 GH-8952(不再可能故意关闭 std 句柄)。
  • 核心
    • 修复了 bug GH-8923(Windows 上的 error_log 可能持有文件写入锁)。
    • 修复了 GH-8995 错误(弱映射对象引用偏移导致类型错误)。
  • 日期
    • 修复了 bug #80047(DatePeriod 不会在使用自定义 DateTimeImmutable 时发出警告)。
  • FPM
    • 修复了 zlog 消息前缀,在错误地址上释放。
    • 修复了配置加载失败时的潜在双重释放。(Heiko Weber)。
  • GD
    • 修复了 bug GH-8848(imagecopyresized() 错误引用了错误的参数)。
  • Intl
    • 修复了针对 ICU 69.x 及更高版本的构建。
  • OPcache
    • 修复了 bug GH-8847(当检查有效文件的 php 语法时,PHP 会无限期地以 100% 的 cpu 占用率挂起)。
    • 修复了 GH-8030 错误(在使用 JIT 和大型匹配/switch 语句时出现段错误)。
  • 反射
    • 修复了 bug GH-8943(修复了带有只读修饰符的 Reflection::getModifierNames())。
  • 标准
    • 修复了 clang > 12 时 crypt_sha256/512 api 的构建。
    • 在 macOs 上使用 CCRandomGenerateBytes 而不是 arc4random_buf。(David Carlier)。
    • 修复了 bug GH-9017(php_stream_sock_open_from_socket 可能返回 NULL)。

版本 8.1.8

  • 核心
    • 修复了 bug GH-8338(Intel CET 被意外地禁用)。
    • 修复了使用 JIT 时,在内部枚举中使用 Enum::from/tryFrom 时发生的泄漏。
    • 修复了从扩展代码调用具有静态返回值类型的内部方法。
    • 修复了 GH-8655 错误(将对象转换为数组不会取消包装 refcount=1 的引用)。
    • 修复了 php_binary_init() 中潜在的释放后使用。
  • CLI
    • 修复了 GH-8827(不再可能故意关闭 std 句柄)。
  • COM
    • 修复了 bug GH-8778(使用大数字变体进行整数算术运算失败)。
  • Curl
    • 修复了 CURLOPT_TLSAUTH_TYPE 未被视为字符串选项。
  • 日期
    • 修复了 bug #72963(CreateFromFormat 和相关函数中的空字节注入)。
    • 修复了 bug #74671(DST 时区缩写具有不正确的偏移量)。
    • 修复了 bug #77243(负年中的星期几计算不正确)。
    • 修复了 bug #78139(timezone_open 接受无效的时区字符串参数)。
  • Fileinfo
    • 修复了 bug #81723(finfo_buffer 中的堆缓冲区溢出)。(CVE-2022-31627)
  • FPM
    • 修复了 bug #67764(fpm: syslog.ident 不起作用)。
  • GD
    • 修复了 imagecreatefromavif() 内存泄漏。
  • MBString
    • mb_detect_encoding 识别捷克字母表中的所有字母。
    • mb_detect_encoding 识别匈牙利字母表中的所有字母。
    • 修复了 bug GH-8685(mbstring 启动时 pcre 未准备好)。
    • 在 8.1.0 中更改后,恢复了 Shift-JIS 中 0x5C/0x7E 的向后兼容映射。
  • ODBC
    • 修复了对单键连接字符串的处理。
  • OPcache
    • 修复了 bug GH-8591(更改私有实例方法后,跟踪 JIT 崩溃)。
  • OpenSSL
    • 修复了 bug #50293(几个 openssl 函数忽略了 VCWD)。
    • 修复了 bug #81713(几个使用证书的 OpenSSL 函数中的空字节注入)。
  • PDO_ODBC
    • 修复了对单键连接字符串的处理。
  • Zip
    • 修复了 bug GH-8781(ZipArchive::close 删除 zip 文件而不更新状态缓存)。

版本 8.1.7

  • CLI
    • 修复了 bug GH-8575(CLI 过早关闭标准流)。
  • 日期
    • 修复了 bug #51934(strtotime 复数/不正确的时间)。
    • 修复了 bug #51987(Datetime 无法解析 ISO 8601 序数日期(扩展格式))。
    • 修复了 bug #66019(DateTime 对象不支持短 ISO 8601 时间格式 - YYYY-MM-DDTHH)。
    • 修复了 bug #68549(在处理日期时,时区和偏移量没有被正确使用)。
    • 修复了 bug #81565(当提供包含秒的时区时,日期解析失败)。
    • 修复了 bug GH-7758(负时间戳和小数的问题)。
  • FPM
    • 修复了 macOS 上的 ACL 构建检查。
    • 修复了 bug #72185:php-fpm 编写空 fcgi 记录导致 nginx 502 错误。
  • mysqlnd
    • 修复了 bug #81719:mysqlnd/pdo 密码缓冲区溢出。(CVE-2022-31626)
  • OPcache
    • 修复了 bug GH-8461(更改函数/方法后,跟踪 JIT 崩溃)。
  • OpenSSL
    • 修复了 bug #79589(错误:14095126:SSL 例程:ssl3_read_n:读取时遇到意外的 eof)。
  • Pcntl
    • 修复了 Haiku 构建。
  • pgsql
    • 修复了 bug #81720:pg_query_params() 中的未初始化数组。(CVE-2022-31625)
  • Soap
    • 修复了 bug GH-8578(在 SoapHeader 构造函数中使用错误的参数时发生错误)。
    • 修复了 bug GH-8538(SoapClient 可能会剥离 nmtoken 的部分内容)。
  • SPL
    • 修复了 bug GH-8235(iterator_count() 可能无限期运行)。
  • 标准
    • 修复了 bug GH-8185(在 ZTS 中,在 dl() 之后卸载扩展时崩溃)。
  • Zip
    • 修复了 ZipArchive::replaceFile 中索引的类型。

版本 8.1.6

  • 核心
    • 修复了 bug GH-8310(不再识别注册表设置)。
    • 修复了资源 ID 分配期间的潜在竞争条件。
    • 修复了 bug GH-8133(预加载包含带有枚举的数组的常量会导致段错误)。
    • 修复了 Haiku ZTS 构建。
  • 日期
    • 修复了 bug GH-7752(DateTimeZone::getTransitions() 返回的数据不足)。
    • 修复了 bug GH-8108(时区没有按预期工作)。
    • 修复了 bug #81660(DateTimeZone::getTransitions() 返回无效数据)。
    • 修复了 bug GH-8289(在 yield from 迭代器中抛出的异常不会重新抛回生成器中)。
  • FFI
    • 修复了 bug GH-8433(在 FFI 中将函数指针分配给结构会导致泄漏)。
  • FPM
    • 修复了 bug #76003(FPM /status 报告的活动进程数不正确)。
    • 修复了 bug #77023(FPM 无法关闭进程)。
    • 修复了 kqueue 删除回调日志消息中的注释。
  • 哈希
    • 修复了 bug #81714(序列化最终 HashContext 时发生段错误)。
  • Iconv
    • 修复了 bug GH-8218(ob_end_clean 不会重置 Content-Encoding 标头)。
  • Intl
    • 修复了 bug GH-8364(msgfmt_format $values 可能不支持引用)。
  • MBString
    • 为无效 UTF-8 文本发出的错误标记数量与 WHATWG 规范匹配。这是对 PHP 8.0 及更早版本的行为的回归。
  • MySQLi
    • 修复了 bug GH-8267(MySQLi 在 Windows 上使用不受支持的格式说明符)。
  • SPL
    • 修复了 bug GH-8366(ArrayIterator 在调用 __construct() 时可能泄漏)。
    • 修复了 bug GH-8273(SplFileObject:key() 返回错误的值)。
    • 修复了 php://temp 在切换到临时文件时没有保留文件位置。
  • zlib
    • 修复了 bug GH-8218(ob_end_clean 不会重置 Content-Encoding 标头)。

版本 8.1.5

  • 核心
    • 修复了 bug GH-8176(属性初始化器中的枚举值泄漏)。
    • 修复了内部属性参数的释放。
    • 修复了 bug GH-8070(内部函数属性散列的内存泄漏)。
    • 修复了 bug GH-8160(Alpine 上的 ZTS 支持已损坏)。
  • 过滤器
    • 修复了 php_filter_validate_domain() 中的符号混淆。
  • Intl
    • 修复了 bug GH-8115(在实例化 Intl 类时无法捕获参数类型弃用)。
    • 修复了 bug GH-8142(在 cygwin 上出现编译错误)。
    • 修复了 bug GH-7734(修复了 IntlPartsIterator 键的越界错误和第一个键)。
  • MBString
    • 修复了 bug GH-8208(mb_encode_mimeheader:$indent 功能已损坏)。
  • MySQLi
    • 修复了 bug GH-8068(mysqli_fetch_object 创建不可访问的属性)。
  • Pcntl
    • 修复了 bug GH-8142(在 cygwin 上出现编译错误)。
  • PgSQL
    • 修复了 LLP64 架构上的 result_type 相关的堆栈损坏。
    • 修复了 bug GH-8253(pg_insert() 对引用失败)。
  • 套接字
    • 修复了 Solaris 构建。
  • SPL
    • 修复了 bug GH-8121(SplFileObject - seek 和 key 与 csv 文件不一致)。
    • 修复了 bug GH-8192(在 8.1 中,不能在没有返回类型提示的情况下覆盖 DirectoryIterator::current())。
  • 标准
    • 修复了 bug GH-8048(强制 macOS 使用 statfs)。

版本 8.1.4

  • 核心
    • 修复了 Haiku ZTS 构建。
    • 修复了 bug GH-8059 扩展的 arginfo 未重新生成。
    • 修复了 bug GH-8083 使用具有静态变量的未调用伪闭包进行转储时发生段错误。
    • 修复了 bug GH-7958(嵌套的 CallbackFilterIterator 正在泄漏内存)。
    • 修复了 bug GH-8074(range() 结果的类型推断错误)。
    • 修复了 bug GH-8140(错误的按名称优化的第一类可调用函数)。
    • 修复了 bug GH-8082(当观察到时,具有临时 run_time_cache 的 op_arrays 会泄漏内存)。
  • GD
    • 修复了加载隔行扫描图像时 libpng 警告。
  • FPM
    • 修复了 bug #76109(对 fpm 记分板的不安全访问)。
  • Iconv
    • 修复了 bug GH-7953(ob_clean() 仅不会设置 Content-Encoding)。
    • 修复了 bug GH-7980(iconv_mime_decode 的意外结果)。
  • MBString
    • 修复了 bug GH-8128(mb_check_encoding 对 7bit 的结果错误)。
  • MySQLnd
    • 修复了 bug GH-8058(mysqlnd 包中的空指针解引用)。
  • 反射
    • 修复了 bug GH-8080(ReflectionClass::getConstants() 依赖于 def. order)。
  • Zlib
    • 修复了 bug GH-7953(ob_clean() 仅不会设置 Content-Encoding)。

版本 8.1.3

  • 核心
    • 修复了 bug #81430(属性实例化会留下悬空指针)。
    • 修复了 bug GH-7896(Windows 上的环境变量可能被破坏)。
    • 修复了 bug GH-7883(当 INI 文件不可读时发生段错误)。
  • FFI
    • 修复了 bug GH-7867(FFI::cast() 从指针到数组已损坏)。
  • 过滤器
    • 修复 #81708:由于 php_filter_float() 对 int 失败而导致的 UAF。(CVE-2021-21708)
  • FPM
    • 修复了无效端口上的内存泄漏。
    • 修复了 bug GH-7842(FPM 状态页返回的 OpenMetrics 响应格式无效)。
  • MBString
    • 修复了 bug GH-7902(mb_send_mail 可能仅使用 LF 分隔标头)。
  • MySQLnd
    • 修复了 bug GH-7972(MariaDB 版本前缀 5.5.5- 未被剥离)。
  • pcntl
    • 修复了 DragonFlyBSD 的 pcntl_rfork 构建。
  • 套接字
    • 修复了 bug GH-7978(sockets 扩展编译错误)。
  • 标准
    • 修复了 bug GH-7899(unpack 对负 int 值的回归)。
    • 修复了 bug GH-7875(即使日志记录失败抛出异常,邮件也会被发送)。

版本 8.1.2

  • 核心
    • 修复了 bug #81216(空安全运算符泄漏动态属性名称)。
    • 修复了 bug #81684(使用带有 $GLOBALS["x"] 的空合并赋值会产生操作码错误)。
    • 修复了 bug #81656(GCC-11 默默地忽略 -R)。
    • 修复了 bug #81683(在最终或抽象接口方法上,误导性的“访问类型...必须是公共的”错误消息)。
    • 修复了 bug #81585(关闭时,cached_chunks 没有计入 real_size)。
    • 修复了 bug GH-7757(多重继承的 final 常量会导致致命错误)。
    • 修复了 zend_fibers.c 在 ZEND_FIBER_UCONTEXT 下的构建。
    • 为 fibers 添加了 riscv64 支持。
  • 过滤器
    • 修复了 FILTER_FLAG_NO_RES_RANGE 标志。
  • 哈希
    • 修复了 bug GH-7759(hash() 和 hash_hmac() 的返回值类型不正确)。
    • 修复了 bug GH-7826(hash_hmac_file 和 hash_file 中的参数名称不一致)。
  • MBString
    • 修复了 bug #81693(mb_check_encoding(7bit) 会导致段错误)。
  • MySQLi
    • 修复了 bug #81658(MariaDB 中没有 MYSQL_OPT_LOAD_DATA_LOCAL_DIR)。
    • 引入了 MYSQLI_IS_MARIADB。
    • 修复了 bug GH-7746(mysqli_sql_exception->getSqlState())。
  • MySQLnd
    • 修复了可能导致大型 bigint 被截断的 bug。
  • OCI8
    • 修复了 bug GH-7765(php_oci_cleanup_global_handles 在第二次调用时会引发段错误)。
  • OPcache
    • 修复了 bug #81679(跟踪 JIT 在重新附加时崩溃)。
  • Readline
    • 修复了 bug #81598(PHP 8 交互式 shell 无法输入 Unicode 字符)。
  • 反射
    • 修复了 bug #81681(ReflectionEnum 抛出异常)。
  • PDO_PGSQL
    • 修复了 PDO PgSQL 的错误消息分配。
  • 套接字
    • 避免在 NetBSD 的 sockets/multicast.c 中使用 void* 运算。
    • 修复了 Haiku 上 ext/sockets 的构建。
  • Spl
    • 修复了 bug #75917(SplFileObject::seek 在使用 CSV 标志时出现问题)。
    • 修复了 bug GH-7809(克隆伪造的 SplFileInfo 对象可能会导致段错误)。
  • 标准
    • 修复了 bug GH-7748(gethostbyaddr 输出二进制字符串)。
    • 修复了 bug GH-7815(php_uname 无法识别最新的 Windows 版本)。

版本 8.1.1

  • IMAP
    • 修复了 bug #81649(imap_(un)delete 接受的是序列,而不是单个数字)。
  • PCRE
    • 将捆绑的 PCRE2 更新至 10.39。
    • 修复了 bug #74604(php_pcre_replace_impl 中出现越界)。
  • 标准
    • 修复了 bug #81659(stream_get_contents() 可能不必要地过度分配内存)。

版本 8.1.0

  • 核心
    • 修复了 Windows 上 phpize 构建的包含顺序。
    • 为 arr/obj/ref 添加了缺失的哈希表插入 API。
    • 实现了 FR #77372(从上传的文件中删除了相对文件路径)。
    • 修复了 bug #81607(在并发访问时出现 CE_CACHE 分配错误)。
    • 修复了 bug #81507(Fiber 在 AIX 上无法编译)。
    • 修复了 bug #78647(zend_do_perform_implementation_check 中出现 SEGFAULT)。
    • 修复了 bug #81518(通过 default_mimetype/default_charset 进行 header 注入)。
    • 修复了 bug #75941(使用 clang 在 Solaris 上出现编译失败)。
    • 修复了 #81380 错误(观察者可能未正确初始化)。
    • 修复了 bug #81514(在 WeakMap 中使用 Enum 作为键会导致 GC+段错误)。
    • 修复了 bug #81520(run-tests.php 中 TEST_PHP_CGI_EXECUTABLE 设置错误)。
    • 修复了 bug #81377($GLOBALS 子键的 unset() 会导致警告)。
    • 修复了 bug #81342(新的 & 符号的解析依赖于其后的换行符)。
    • 修复了 bug #81280(cli.prompt 中的 Unicode 字符会导致段错误)。
    • 修复了 bug #81192(“声明应与…兼容”在使用 traits 时给出错误的行号)。
    • 修复了 bug #78919(CLI 服务器:如果请求启动失败,则清理不足)。
    • 修复了 bug #81303(match 错误消息改进)。
    • 修复了 bug #81238(Solaris Sparc 缺少 Fiber 支持)。
    • 修复了 bug #81237(伪闭包的比较不起作用)。
    • 修复了 bug #81202(powerpc64 在 fibers 上构建失败)。
    • 修复了 bug #80072(TMPVAR 操作数中的循环反序列化可能会导致内存泄漏)。
    • 修复了 bug #81163(__sleep 允许返回非数组)。
    • 修复了 bug #75474(函数范围的静态变量没有绑定到唯一的函数)。
    • 修复了 bug #53826(如果方法是私有的,则 __callStatic 在基类中通过父级调用被触发)。
    • 修复了 bug #81076(带有隐式绑定的闭包的调试信息不正确)。
  • CLI
    • 修复了 #81496 错误(服务器记录了不正确的请求方法)。
  • COM
    • 使用 LANG_NEUTRAL 而不是 LOCALE_SYSTEM_DEFAULT 进行调度。
  • Curl
    • 修复了 bug #81085(支持 CURLOPT_SSLCERT_BLOB 用于证书字符串)。
  • 日期
    • 修复了 bug #81458(回归:时区更改后的差异不正确)。
    • 修复了 bug #81500(自 7.3.14/7.4.2 以来,Interval 序列化出现回归)。
    • 修复了 bug #81504(POSIX 数据的时区转换详细信息不正确)。
    • 修复了 bug #80998(倒置时间间隔时缺少秒)。
    • 加快查找时区偏移信息的速度。
    • 修复了 bug #79580(date_create_from_format 漏掉了闰年)。
    • 修复了 bug #80963(DateTimeZone::getTransitions() 被截断)。
    • 修复了 bug #80974(不同时区内两个日期之间的差异错误)。
    • 修复了 bug #80998(倒置时间间隔时缺少秒)。
    • 修复了 bug #81097(DateTimeZone 在提供带有秒的偏移量时,会静默回退到 UTC)。
    • 修复了 bug #81106(8.1 中的回归:add() 现在会截断 ->f)。
    • 修复了 bug #81273(日期时间间隔计算不正确)。
    • 修复了 bug #52480(使用 DateInterval 进行差异计算不正确)。
    • 修复了 bug #62326(date_diff() 函数返回错误的结果)。
    • 修复了 bug #64992(2038 年之后没有处理 DST)。
    • 修复了 bug #65003(日期差异错误)。
    • 修复了 bug #66545(DateTime. diff 返回负值)。
    • 修复了 bug #68503(两个设置了本地化时区的日期的 date_diff 返回错误的结果)。
    • 修复了 bug #69806(从时间戳获取的日期不正确)。
    • 修复了 bug #71700(2016 年 3 月开始和结束之间的差异出现额外的日期)。
    • 修复了 bug #71826(DateTime::diff 在时区 'Asia/Tokyo' 中出现混淆)。
    • 修复了 bug #73460(Datetime add 没有意识到它已经应用了 DST 更改)。
    • 修复了 bug #74173(DateTimeImmutable::getTimestamp() 在不正确的时间触发 DST 切换)。
    • 修复了 bug #74274(正确处理 DST 转换)。
    • 修复了 bug #74524(日期差异计算错误,在同一时区内)。
    • 修复了 bug #75167(DateTime::add 仅关心向后的 DST 转换,而不关心向前的 DST 转换)。
    • 修复了 bug #76032(DateTime->diff 在 UTC 之前的时间区域中,对于闰年的处理存在问题)。
    • 修复了 bug #76374(日期差异根据一天中的时间而变化)。
    • 修复了 bug #77571(DateTime 的 diff DateInterval 在 UTC+01:00 到 UTC+12:00 之间的时间区域中不正确)。
    • 修复了 bug #78452(diff 在 'Asia/Tehran' 的小时计算中出现错误)。
    • 修复了 bug #79452(DateTime::diff() 在不同时间区域之间生成月份的方式不同)。
    • 修复了 bug #79698(timelib 错误地处理了未来的时间戳(由 'zic -b slim' 触发)。
    • 修复了 bug #79716(创建了无效的日期时间(日期为“00”)。
    • 修复了 bug #80610(DateTime 使用 DateInterval 进行计算错误)。
    • 修复了 bug #80664(DateTime 对象在 DST 转换前后表现不正常)。
    • 修复了 bug #80913(DateTime(Immutable)::sub 在 DST 周围产生错误的时间)。
  • DBA
    • 修复了 bug #81588(TokyoCabinet 驱动程序出现内存泄漏)。
  • DOM
    • 修复了 bug #81433(DOMElement::setIdAttribute() 被调用两次可能会删除 ID)。
  • FFI
    • 修复了 bug #79576(“TYPE *”在类型未定义时显示无用的消息)。
  • 过滤器
    • 修复了 bug #61700(FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE 失败)。
  • FPM
    • 修复了 bug #81513(FPM zlog 中可能出现的堆溢出)。
    • 修复了 bug #81026(PHP-FPM 在根进程中出现 OOB R/W,可能导致权限提升)(CVE-2021-21703)。
    • 添加了 openmetrics 状态格式。
    • 在 macOS 上启用进程重命名。
    • 添加了 pm.max_spawn_rate 选项,用于配置最大生成子进程的速率。
    • 修复了 bug #65800(事件端口机制)。
  • FTP
    • 将 resource<ftp> 转换为对象 \FTP\Connection。
  • GD
    • 修复了 bug #71316(imagecreatefromstring 来自 libpng 的警告)。
    • 将 resource<gd font> 转换为对象 \GdFont。
    • 添加了对 Avif 图像的支持
  • hash
    • 实现了 FR #68109(添加 MurmurHash V3)。
    • 实现了 FR #73385(添加 xxHash 支持)。
  • JSON
    • 修复了 bug #81532(PHP 8.1 中 json_encode() 的 $depth 行为更改)。
  • LDAP
    • 将 resource<ldap link> 转换为对象 \LDAP\Connection。
    • 将 resource<ldap result> 转换为对象 \LDAP\Result。
    • 将 resource<ldap result entry> 转换为对象 \LDAP\ResultEntry。
  • MBString
    • 修复了 bug #76167(mbstring 可能使用来自先前请求的指针)。
    • 修复了 bug #81390(mb_detect_encoding() 回归)。
    • 修复了 bug #81349(mb_detect_encoding 在某些情况下会错误地检测 ASCII)。
    • 修复了 bug #81298(mb_detect_encoding() 在指定 7bit 编码时出现段错误)。
  • MySQLi
    • 修复了 bug #70372(为 libmysqlclient 模拟 mysqli_fetch_all())。
    • 修复了 bug #80330(替换 API 和源代码/文档中的语言)。
    • 修复了 bug #80329(添加选项以指定 LOAD DATA LOCAL 白名单文件夹(包括 libmysql))。
  • MySQLnd
    • 修复了 bug #63327(mysqlnd 由于错误的对齐导致崩溃(总线错误))。
    • 修复了 bug #80761(PDO 使用了过多的内存)。
  • Opcache
    • 修复了 bug #81409(对数组的引用进行 ADD 操作的 JIT 代码不正确)。
    • 修复了 bug #81255(PHPUnit 在使用功能性 JIT 时出现内存泄漏)。
    • 修复了 bug #80959(在 JIT 编译过程中构建 cfg 时出现无限循环)。
    • 修复了 bug #81225(在启用 JIT 的情况下,使用 pow 操作符时结果错误)。
    • 修复了 bug #81249(在启用 JIT 的情况下,属性赋值偶尔失败)。
    • 修复了 bug #81256(断言 `zv != ((void *)0)` 在 "preload" 使用 JIT 时失败)。
    • 修复了 bug #81133(使用 phpize 构建 opcache 失败)。
    • 修复了 bug #81136(opcache 头文件未安装)。
    • 添加了继承缓存。
  • OpenSSL
    • 修复了 bug #81502(openssl_decrypt() 的 $tag 参数应该接受 null/空字符串)。
    • 将最小 OpenSSL 版本提升至 1.0.2。
  • PCRE
    • 修复了 bug #81424(PCRE2 10.35 的 JIT 性能出现回归)。
    • 捆绑的 PCRE2 版本为 10.37。
  • PDO
    • 修复了 bug #40913(PDO_MYSQL:PDO::PARAM_LOB 不会绑定到流以获取 BLOB)。
  • PDO MySQL
    • 修复了 bug #80908(PDO::lastInsertId() 返回错误的结果)。
    • 修复了 bug #81037(PDO 从预处理语句中丢弃了错误消息文本)。
  • PDO OCI
    • 修复了 bug #77120(在连接时支持“成功并包含信息”)。
  • PDO ODBC
    • 为 PDO::getAttribute() 实现了 PDO_ATTR_SERVER_VERSION 和 PDO_ATTR_SERVER_INFO。
  • PDO PgSQL
    • 修复了 bug #81343(pdo_pgsql:在调用 closeCursor() 后,布尔值转换不一致)。
  • PDO SQLite
    • 修复了 bug #38334(对 PDO_SQLITE 的数据类型支持正确)。
  • PgSQL
    • 修复了 bug #81509(pg_end_copy 仍然需要一个资源)。
    • 将 resource<pgsql link> 转换为对象 \PgSql\Connection。
    • 将 resource<pgsql result> 转换为对象 \PgSql\Result。
    • 将资源<pgsql 大对象> 转换为对象 \PgSql\Lob。
  • Phar
    • 默认使用 SHA256 进行签名。
    • 添加对 OpenSSL_SHA256 和 OpenSSL_SHA512 签名的支持。
  • phpdbg
    • 修复了 bug #81135(未知帮助主题导致断言失败)。
  • PSpell
    • 将资源<pspell> 转换为对象 \PSpell\Dictionary。
    • 将资源<pspell 配置> 转换为对象 \PSpell\Config。
  • readline
    • 修复了 bug #72998(readline 完成中的无效读取)。
  • 反射
    • 修复了 bug #81611(从使用 new 的 ReflectionParameter 获取默认值时出现 ArgumentCountError)。
    • 修复了 bug #81630(PHP 8.1: ReflectionClass->getTraitAliases() 在使用内部错误时崩溃)。
    • 修复了 bug #81457(枚举:ReflectionMethod->getDeclaringClass() 返回 ReflectionClass)。
    • 修复了 bug #81474(使 ReflectionEnum 和相关类非 final)。
    • 修复了 bug #80821(ReflectionProperty::getDefaultValue() 返回静态变量的当前值)。
    • 修复了 bug #80564(ReflectionProperty::__toString() 渲染当前值,而不是默认值)。
    • 修复了 bug #80097(ReflectionAttribute 不是 Reflector)。
    • 修复了 bug #81200(无法确定 Closure 是否为静态)。
    • 实现 ReflectionFunctionAbstract::getClosureUsedVariables。
  • Shmop
    • 修复了 bug #81407(shmop_open 不会附加,会导致 php 崩溃)。
  • SimpleXML
    • 修复了 bug #81325(zif_simplexml_import_dom 中的段错误)。
  • SNMP
    • 为安全协议实现 SHA256 和 SHA512。
  • Sodium
    • 添加了 XChaCha20 流密码函数。
    • 添加了 Ristretto255 函数,这些函数在 libsodium 1.0.18 中可用。
  • SPL
    • 修复了 bug #66588(SplFileObject::fgetcsv 在过早的 EOF 时错误地返回一行)。
    • 修复了 bug #80663(递归 SplFixedArray::setSize() 可能导致双重释放)。
    • 修复了 bug #81477(LimitIterator + SplFileObject 在 8.0.1 中出现回归)。
    • 修复了 bug #81112(SplFixedArray 的特殊 json_encode 行为)。
    • 修复了 bug #80945(在 unset() ArrayObject 不存在的键上出现“Notice: Undefined index”)。
    • 修复了 bug #80724(FilesystemIterator::FOLLOW_SYMLINKS 从位掩码中删除 KEY_AS_FILE)。
  • 标准
    • 修复了 bug #81441(gethostbyaddr('::1') 在调用其他方法后返回 ip 而不是名称)。
    • 修复了 bug #81491(错误地使用 libsodium 进行 argon2 哈希)。
    • 修复了 bug #81142(PHP 7.3+ 在对关联数组使用 unserialize() 时出现内存泄漏)。
    • 修复了 bug #81111(在具有 __serialize() 的匿名类上意外允许序列化)。
    • 修复了 bug #81137(hrtime 在 Sierra 之前的 OSX 上导致构建中断)。
    • 修复了 bug #77627(Closure::__invoke 上的 method_exists 不一致)。
    • 修复了 bug #81475(stream_isatty 在附加流包装器时发出警告)。
  • XML
    • 修复了 bug #79971(特殊字符正在 xml 函数中的路径中出现问题)(CVE-2021-21707)。
    • 修复了 bug #70962(XML_OPTION_SKIP_WHITE 删除嵌入的空格)。
  • Zip
    • 修复了 bug #81490(ZipArchive::extractTo() 可能出现内存泄漏)。
    • 修复了 bug #77978(以冒号结尾的目录名解压缩到错误的目录)。
    • 修复了 bug #81420(ZipArchive::extractTo 在目标之外解压缩)(CVE-2021-21706)。
    • 修复了 bug #80833(ZipArchive::getStream 不使用 setPassword)。

版本 8.0.30

  • Libxml
    • 修复了错误 GHSA-3qrf-m4j2-pcrr(在没有启用外部实体加载的情况下,XML 中存在外部实体加载的安全问题)。(CVE-2023-3823)
  • Phar
    • 修复了错误 GHSA-jqcx-ccgc-xwhv(phar_dir_read() 中的缓冲区管理错误)。(CVE-2023-3824)

版本 8.0.29

  • Soap
    • 修复了错误 GHSA-76gg-c692-v2mw(SOAP 的 HTTP Digest 身份验证中缺少错误检查和随机字节不足)。(CVE-2023-3247)

版本 8.0.28

  • 核心
    • 修复了错误 #81744(Password_verify() 始终使用某些哈希返回 true)。
    • 修复了错误 #81746(常见路径解析代码中出现 1 字节数组溢出)。
  • SAPI
    • 修复了 bug GHSA-54hq-v5wp-fqgv(在解析多部分请求主体时发生的 DOS 漏洞)。(CVE-2023-0662)

版本 8.0.27

  • PDO/SQLite
    • 修复了 #81740 错误(PDO::quote() 可能返回未引用的字符串)。(CVE-2022-31631)

版本 8.0.26

  • CLI
    • 修复了 GH-9709 错误(使用 -w/-s 选项会导致空指针解引用)。
  • 核心
    • 修复了 GH-9752 错误(当在使用额外命名参数进行参数评估期间中断时,生成器会崩溃)。
    • 修复了 GH-9801 错误(当在初始化期间超过内存限制时,生成器会崩溃)。
    • 修复了 Windows shm*() 函数中的潜在 NULL 指针解引用。
    • 修复了 GH-9750 错误(在参数评估期间中断时,生成器内存泄漏)。
  • 日期
    • 修复了错误 GH-9763(DateTimeZone ctr 错误地处理输入,如果参数是大于 100*60 分钟的偏移量,则会添加空字节)。
  • FPM
    • 修复了 GH-9754 错误(SaltStack(使用 Python 子进程)在运行 php-fpm 8.1.11 时会挂起)。
  • mysqli
    • 修复了 GH-9841 错误(mysqli_query 抛出警告,尽管使用了静默错误模式)。
  • OpenSSL
    • 修复了错误 GH-8430(使用 no-md2、no-md4 或 no-rmd160 编译的 OpenSSL 无法构建)。
  • SOAP
    • 修复了 GH-9720(序列化响应时出现空指针解引用)。

版本 8.0.25

  • GD
    • 修复了 #81739 错误:imageloadfont() 中由于输入验证不足导致的 OOB 读取。(CVE-2022-31630)
  • 哈希
    • 修复了 #81738 错误:hash_update() 在长参数上的缓冲区溢出。(CVE-2022-37454)
  • Session
    • 修复了错误 GH-9583(session_create_id() 在使用没有 validateId() 方法的用户定义保存处理程序时失败)。
    • 修复了错误 GH-9590(stream_select 在出现异常或空有效 fd 集时不会中止)。

版本 8.0.24

  • 核心
    • 修复了 GH-9323 错误(ZEND_RETURN/GC/zend_call_function 中发生崩溃)(Tim Starling)
    • 修复了错误 GH-9361(脚本退出时的段错误 #9379)。
    • 修复了 bug GH-9407(在 eval'd 代码中出现的 LSP 错误指的是静态类型的错误类)。
    • 修复了错误 #81727:不要对与具有特定语义含义的变量名冲突的 HTTP 变量名进行混淆。(CVE-2022-31629)
  • DOM
    • 修复了错误 #79451(DOMDocument->replaceChild 在 doctype 上导致双重释放)。
  • FPM
    • 修复了错误 GH-8885(具有 stderr 的 FPM access.log 在守护进程重新加载后开始将日志写入 error_log)。
    • 修复了错误 #77780(先前连接中止时出现“已发送标头…”)。
  • GMP
    • 修复了 GH-9308 错误(当将 GMP 对象传递给 gmp_init() 时,GMP 会抛出错误的错误)。
  • Intl
    • 修复了 GH-9421 错误(NumberFormatter 中的 ValueError 的参数数量不正确)。
  • Phar
    • 修复了错误 #81726:phar 包装器:使用 quine gzip 文件时的 DOS。(CVE-2022-31628)
  • PDO_PGSQL
    • 修复了错误 GH-9411(PgSQL 大对象资源被错误地关闭)。
  • 反射
    • 修复了错误 GH-8932(ReflectionFunction 没有提供获取 Closure 的调用类的方法)。
    • 修复了 bug GH-9409(私有方法被错误地转储为“覆盖”)。
    • 修复了错误 GH-9316(对于长状态行,$http_response_header 是错误的)。

版本 8.0.23

  • 核心
    • 修复了最新的 clang 中的双精度数到长整型数的错误转换。
  • DBA
    • 修复了 LMDB 驱动程序在数据库创建失败时的内存泄漏。
    • 修复了错误 GH-9155(dba_open("non-existing", "c-", "flatfile") 会出现段错误)。
  • Intl
    • 修复了 IntlDateFormatter::formatObject() 参数类型。
  • OPcache
    • 修复了错误 GH-9033(加载黑名单文件可能会由于负长度而失败)。
  • PDO_SQLite
    • 修复了错误 GH-9032(SQLite3 授权程序在 NULL 值上崩溃)。
  • SQLite3
    • 修复了错误 GH-9032(SQLite3 授权程序在 NULL 值上崩溃)。
  • 标准
    • 修复了 bug GH-9017(php_stream_sock_open_from_socket 可能返回 NULL)。
    • 修复了 bug GH-8472(stream_socket_accept 返回的资源可能具有不正确的元数据)。
    • 修复了 bug GH-8409(SSL 握手超时会导致持久连接挂起)。

版本 8.0.22

  • CLI
    • 修复了通过 PHP_CLI_SERVER_WORKERS 环境变量对内置服务器的潜在溢出。
  • 核心
    • 修复了 bug GH-8923(Windows 上的 error_log 可能持有文件写入锁)。
    • 修复了 GH-8995 错误(弱映射对象引用偏移导致类型错误)。
  • 日期
    • 修复了 bug #80047(DatePeriod 不会在使用自定义 DateTimeImmutable 时发出警告)。
  • DBA
    • 修复了 LMDB 驱动程序在尝试删除不存在的键时挂起的问题。
  • FPM
    • 修复了 zlog 消息前缀,在错误地址上释放。
    • 修复了配置加载失败时的潜在双重释放。
  • GD
    • 修复了 bug GH-8848(imagecopyresized() 错误引用了错误的参数)。
  • Intl
    • 修复了针对 ICU 69.x 及更高版本的构建。
  • OPcache
    • 修复了 bug GH-8847(PHP 在检查有效文件的 php 语法时无限期地挂起在 100% cpu)。
  • 标准
    • 修复了 clang > 12 时 crypt_sha256/512 api 的构建。
    • 在 macOs 上使用 CCRandomGenerateBytes 而不是 arc4random_buf。

版本 8.0.21

  • 核心
    • 修复了 php_binary_init() 中潜在的释放后使用。
  • CLI
    • 修复了 GH-8827(不再可能故意关闭 std 句柄)。
  • COM
    • 修复了 bug GH-8778(使用大数字变体进行整数算术运算失败)。
  • Curl
    • 修复了 CURLOPT_TLSAUTH_TYPE 未被视为字符串选项。
  • 日期
    • 修复了 bug #74671(DST 时区缩写具有不正确的偏移量)。
    • 修复了 bug #77243(负年中的星期几计算不正确)。
    • 修复了 bug #78139(timezone_open 接受无效的时区字符串参数)。
  • FPM
    • 修复了 bug #67764(fpm: syslog.ident 不起作用)。
  • MBString
    • 修复了 bug GH-8685(mbstring 启动时 pcre 未准备好)。
  • ODBC
    • 修复了对单键连接字符串的处理。
  • OpenSSL
    • 修复了 bug #50293(几个 openssl 函数忽略了 VCWD)。
    • 修复了 bug #81713(几个使用证书的 OpenSSL 函数中的空字节注入)。
  • PDO_ODBC
    • 修复了 PDOStatement->execute() 成功时的 errorInfo() 结果。
    • 修复了对单键连接字符串的处理。
  • Zip
    • 修复了 bug GH-8781(ZipArchive::close 删除 zip 文件而不更新状态缓存)。

版本 8.0.20

  • CLI
    • 修复了 bug GH-8575(CLI 过早关闭标准流)。
  • 核心
    • 修复了 Haiku ZTS 构建。
  • 日期
    • 修复了 bug GH-8471(使用反射创建不可变和可变 DateTime 实例时出现分段错误)。
  • FPM
    • 修复了 macOS 上的 ACL 构建检查。
    • 修复了 bug #72185:php-fpm 编写空 fcgi 记录导致 nginx 502 错误。
  • Mysqlnd
    • 修复了 bug #81719:mysqlnd/pdo 密码缓冲区溢出。(CVE-2022-31626)
  • OPcache
    • 修复了 bug GH-8466(ini_get() 在选项不存在时被优化掉)。
  • Pcntl
    • 修复了 Haiku 构建。
  • Pgsql
    • 修复了 bug #81720:pg_query_params() 中的未初始化数组。(CVE-2022-31625)
  • Soap
    • 修复了 bug GH-8578(在 SoapHeader 构造函数中使用错误的参数时发生错误)。
    • 修复了 bug GH-8538(SoapClient 可能会剥离 nmtoken 的部分内容)。
  • SPL
    • 修复了 bug GH-8235(iterator_count() 可能无限期运行)。
  • Zip
    • 修复了 ZipArchive::replaceFile 中索引的类型。

版本 8.0.19

  • 核心
    • 修复了 bug GH-8289(在 yield from 迭代器中抛出的异常不会重新抛回生成器中)。
  • 日期
    • 修复了 bug GH-7979(DatePeriod 迭代器在检查是否有效时前进)。
  • FFI
    • 修复了 bug GH-8433(在 FFI 中将函数指针分配给结构会导致泄漏)。
  • FPM
    • 修复了 bug #76003(FPM /status 报告的活动进程数不正确)。
    • 修复了 bug #77023(FPM 无法关闭进程)。
    • 修复了 kqueue 删除回调日志消息中的注释。
  • Iconv
    • 修复了 bug GH-8218(ob_end_clean 不会重置 Content-Encoding 标头)。
  • Intl
    • 修复了 bug GH-8364(msgfmt_format $values 可能不支持引用)。
  • MySQLi
    • 修复了 bug GH-8267(MySQLi 在 Windows 上使用不受支持的格式说明符)。
  • SPL
    • 修复了 bug GH-8366(ArrayIterator 在调用 __construct() 时可能泄漏)。
    • 修复了 bug GH-8273(SplFileObject:key() 返回错误的值)。
    • 修复了 php://temp 在切换到临时文件时没有保留文件位置。
  • zlib
    • 修复了 bug GH-8218(ob_end_clean 不会重置 Content-Encoding 标头)。

版本 8.0.18

  • 核心
    • 修复了内部属性参数的释放。
    • 修复了 bug GH-8070(内部函数属性散列的内存泄漏)。
    • 修复了 bug GH-8160(Alpine 上的 ZTS 支持已损坏)。
  • 过滤器
    • 修复了 php_filter_validate_domain() 中的符号混淆。
  • Intl
    • 修复了 bug GH-8142(在 cygwin 上出现编译错误)。
  • MBString
    • 修复了 bug GH-8208(mb_encode_mimeheader:$indent 功能已损坏)。
  • MySQLi
    • 修复了 bug GH-8068(mysqli_fetch_object 创建不可访问的属性)。
  • Pcntl
    • 修复了 bug GH-8142(在 cygwin 上出现编译错误)。
  • PgSQL
    • 修复了 LLP64 架构上的 result_type 相关的堆栈损坏。
    • 修复了 bug GH-8253(pg_insert() 对引用失败)。
  • 套接字
    • 修复了 Solaris 构建。
  • SPL
    • 修复了 bug GH-8121(SplFileObject - seek 和 key 与 csv 文件不一致)。
  • 标准
    • 修复了 bug GH-8048(强制 macOS 使用 statfs)。

版本 8.0.17

  • 核心
    • 修复了 Haiku ZTS 构建。
  • GD
    • 修复了加载隔行扫描图像时 libpng 警告。
  • FPM
    • 修复了 bug #76109(对 fpm 记分板的不安全访问)。
  • Iconv
    • 修复了 bug GH-7953(ob_clean() 仅不会设置 Content-Encoding)。
    • 修复了 bug GH-7980(iconv_mime_decode 的意外结果)。
  • MySQLnd
    • 修复了 bug GH-8058(mysqlnd 包中的空指针解引用)。
  • OPcache
    • 修复了 bug GH-8074(range() 结果的类型推断错误)。
  • 反射
    • 修复了 bug GH-8080(ReflectionClass::getConstants() 依赖于 def. order)。
  • Zlib
    • 修复了 bug GH-7953(ob_clean() 仅不会设置 Content-Encoding)。

版本 8.0.16

  • 核心
    • 修复了 bug #81430(属性实例化会留下悬空指针)。
    • 修复了 bug GH-7896(Windows 上的环境变量可能被破坏)。
  • FFI
    • 修复了 bug GH-7867(FFI::cast() 从指针到数组已损坏)。
  • 过滤器
    • 修复 #81708:由于 php_filter_float() 对整数失败导致的 UAF。
  • FPM
    • 修复了无效端口上的内存泄漏。
  • MBString
    • 修复了 bug GH-7902(mb_send_mail 可能仅使用 LF 分隔标头)。
  • MySQLnd
    • 修复了 bug GH-7972(MariaDB 版本前缀 5.5.5- 未被剥离)。
  • 套接字
    • 修复了 Haiku 上 ext/sockets 的构建。
    • 修复了 bug GH-7978(sockets 扩展编译错误)。
  • 标准
    • 修复了 bug GH-7875(即使日志记录失败抛出异常,邮件也会被发送)。

版本 8.0.15

  • 核心
    • 修复了 bug #81656(GCC-11 默默地忽略 -R)。
    • 修复了 bug #81585(关闭时,cached_chunks 没有计入 real_size)。
  • 过滤器
    • 修复了 FILTER_FLAG_NO_RES_RANGE 标志。
  • 哈希
    • 修复了 bug GH-7759(hash() 和 hash_hmac() 的返回值类型不正确)。
    • 修复了 bug GH-7826(hash_hmac_file 和 hash_file 中的参数名称不一致)。
  • MySQLnd
    • 修复了可能导致大型 bigint 被截断的 bug。
  • OCI8
    • 修复了 bug GH-7765(php_oci_cleanup_global_handles 在第二次调用时会引发段错误)。
  • OPcache
    • 修复了 bug #81679(跟踪 JIT 在重新附加时崩溃)。
  • PDO_PGSQL
    • 修复了 PDO PgSQL 的错误消息分配。
  • 套接字
    • 避免在 NetBSD 的 sockets/multicast.c 中使用 void* 运算。
  • Spl
    • 修复了 bug #75917(SplFileObject::seek 在使用 CSV 标志时出现问题)。

版本 8.0.14

  • 核心
    • 修复了 bug #81582(如果 __toString() 来自特征,则不会隐式声明 Stringable)。
    • 修复了 bug #81591(在特定情况下,致命错误没有正确记录)。
    • 修复了 bug #81626(在使用 static:: 的 __сallStatic() 包裹到 Closure::fromCallable() 时出现错误)。
    • 修复了 bug #81631(使用动态类名的 ::class 可能会产生错误的行号)。
  • FPM
    • 修复了 bug #81513(FPM zlog 中可能出现的堆溢出)。
  • GD
    • 修复了 bug #71316(imagecreatefromstring 来自 libpng 的警告)。
  • IMAP
    • 修复了 bug #81649(imap_(un)delete 接受的是序列,而不是单个数字)。
  • OpenSSL
    • 修复了 bug #75725(./configure: 检测 RAND_egd)。
  • PCRE
    • 修复了 bug #74604(php_pcre_replace_impl 中出现越界)。
  • SPL
    • 修复了 bug #81587(MultipleIterator 在附加 SimpleXMLElement 时出现分段错误)。
  • 标准
    • 修复了 bug #81618(dns_get_record 在 FreeBSD 上由于缺少类型而失败)。
    • 修复了 bug #81659(stream_get_contents() 可能不必要地过度分配内存)。

版本 8.0.13

  • 核心
    • 修复了 bug #81518(通过 default_mimetype/default_charset 进行 header 注入)。
  • 日期
    • 修复了 bug #81500(自 7.3.14/7.4.2 以来,Interval 序列化出现回归)。
  • DBA
    • 修复了 bug #81588(TokyoCabinet 驱动程序出现内存泄漏)。
  • MBString
    • 修复了 bug #76167(mbstring 可能使用来自先前请求的指针)。
  • Opcache
    • 修复了 bug #81512(数组和 JIT 的意外行为)。
  • PCRE
    • 修复了 bug #81424(PCRE2 10.35 的 JIT 性能出现回归)。
  • XML
    • 修复了 bug #79971(特殊字符正在 xml 函数中的路径中出现问题)。(CVE-2021-21707)
  • XMLReader
    • 修复了 bug #81521(XMLReader::getParserProperty 可能在使用有效属性时抛出异常)。

版本 8.0.12

  • CLI
    • 修复了 #81496 错误(服务器记录了不正确的请求方法)。
  • 核心
    • 修复了 bug #81435(观察者 current_observed_frame 可能指向旧的(被覆盖的)帧)。
    • 修复了 #81380 错误(观察者可能未正确初始化)。
  • DOM
    • 修复了 bug #81433(DOMElement::setIdAttribute() 被调用两次可能会删除 ID)。
  • FFI
    • 修复了 bug #79576(“TYPE *”在类型未定义时显示无用的消息)。
  • FPM
    • 修复了 bug #81026(PHP-FPM 在根进程中出现 OOB R/W,可能导致权限提升)(CVE-2021-21703)。
  • Fileinfo
    • 修复了 bug #78987(在编码检测期间出现高内存使用率)。
  • 过滤器
    • 修复了 bug #61700(FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE 失败)。
  • Opcache
    • 修复了 bug #81472(在读取 /proc/self/maps 时,无法支持大型 Linux 主/次设备号)。
  • 反射
    • ReflectionAttribute 现在不再是 final。
  • SPL
    • 修复了 bug #80663(递归 SplFixedArray::setSize() 可能导致双重释放)。
    • 修复了 bug #81477(LimitIterator + SplFileObject 在 8.0.1 中出现回归)。
  • 标准
    • 修复了 bug #69751(更改 sprintf/printf 对于缺少/错误位置说明符的错误消息)。
    • 修复了 bug #81475(stream_isatty 在附加流包装器时发出警告)。
  • XML
    • 修复了 bug #70962(XML_OPTION_SKIP_WHITE 删除嵌入的空格)。
  • Zip
    • 修复了 bug #81490(ZipArchive::extractTo() 可能出现内存泄漏)。
    • 修复了 bug #77978(以冒号结尾的目录名解压缩到错误的目录)。

版本 8.0.11

  • 核心
    • 修复了 bug #81302(删除流过滤器后的流位置)。
    • 修复了 bug #81346(非可搜索流在写入后不更新位置)。
    • 修复了 bug #73122(连接字符串时的整数溢出)。
  • GD
    • 修复了 bug #53580(在调整大小期间,gdImageCopyResampled 会导致颜色变化)。
  • Opcache
    • 修复了 bug #81353(使用预加载和静态绑定闭包时出现段错误)。
  • Shmop
    • 修复了 bug #81407(shmop_open 不会附加,会导致 php 崩溃)。
  • 标准
    • 修复了 bug #71542(disk_total_space 对相对路径不起作用)。
    • 修复了 bug #81400(dns_get_record() 结果中的未终止字符串)。
  • SysVMsg
    • 修复了 bug #78819(msg_send 中的堆溢出)。
  • XML
    • 修复了 bug #81351(xml_parse 可能失败,但没有错误代码)。
  • Zip
    • 修复了 bug #80833(ZipArchive::getStream 不使用 setPassword)。
    • 修复了 bug #81420(ZipArchive::extractTo 在目标之外解压缩)。

版本 8.0.10

  • 核心
    • 修复了 bug #72595(php_output_handler_append 非法写入访问)。
    • 修复了 bug #66719(在使用 call_user_func() 时,get_called_class() 的奇怪行为)。
    • 修复了 bug #81305(内置 Web 服务器使用“Upgrade”标头删除请求)。
  • BCMath
    • 修复了 bug #78238(BCMath 返回“-0”)。
  • CGI
    • 修复了 bug #80849(HTTP 状态标头截断)。
  • 日期
    • 修复了 bug #64975(AM/PM 不在末尾时出现解析错误)。
    • 修复了 bug #78984(DateTimeZone 接受无效的 UTC 时区)。
    • 修复了 bug #79580(date_create_from_format 漏掉了闰年)。
    • 修复了 bug #80409(DateTime::modify() 在使用“weekday”参数时丢失时间)。
  • GD
    • 修复了 bug #51498(imagefilledellipse 对大型圆形不起作用)。
  • MySQLi
    • 修复了 bug #74544(mysqli_real_escape_string() 中的整数溢出)。
  • Opcache
    • 修复了 bug #81225(在启用 JIT 的情况下,使用 pow 操作符时结果错误)。
    • 修复了 bug #81249(在启用 JIT 的情况下,属性赋值偶尔失败)。
    • 修复了 bug #81206(多个 PHP 进程在启用 JIT 时崩溃)。
    • 修复了 bug #81272(在使用 JIT 的 array_slice 后,var[] 中出现段错误)。
    • 修复了 bug #81255(PHPUnit 在使用功能性 JIT 时出现内存泄漏)。
    • 修复了 bug #80959(在 JIT 编译期间构建 cfg 时出现无限循环)(Nikita,Dmitry)
    • 修复了 bug #81226(启用 JIT 时整数溢出行为不同)。
  • OpenSSL
    • 修复了 bug #81327(在 php 7.4.22 上构建 openssl 扩展出现错误)。
  • PDO_ODBC
    • 修复了 bug #81252(PDO_ODBC 不会考虑 SQL_NO_TOTAL)。
  • Phar
    • 修复了 bug #81211: 创建 PHAR 档案时会遵循符号链接
  • Shmop
    • 修复了 bug #81283(shmop 无法读取超过 2147483647 字节)。
  • SimpleXML
    • 修复了 bug #81325(zif_simplexml_import_dom 中的段错误)。
  • 标准
    • 修复了 bug #72146(substr_replace 上的整数溢出)。
    • 修复了 bug #81265(getimagesize 对 256px ICO 图像返回 0)。
    • 修复了 bug #74960(通过 str_repeat 导致堆缓冲区溢出)。
    • 修复了 bug #81294(删除过滤器时出现段错误)。

版本 8.0.9

  • 核心
    • 修复了 bug #81145(copy() 和 stream_copy_to_stream() 对 +4GB 文件失败)。
    • 修复了 bug #81163(在 __sleep 中错误地处理间接变量)。
    • 修复了 bug #81159(在将对象用作字符串偏移量时出现对象到整数的警告)。
    • 修复了 bug #80728(PHP 内置 Web 服务器在可以终止进程时重置超时)。
    • 修复了 bug #73630(内置 Web 服务器 - 覆盖 $_SERVER['request_uri'])。
    • 修复了 bug #80173(使用 zend_assign_to_variable() 的返回值不安全)。
    • 修复了 bug #73226(--r[fcez] 始终返回零退出代码)。
  • Intl
    • 修复了 bug #72809(Locale::lookup() 在使用规范化选项时出现错误结果)。
    • 修复了 bug #68471(IntlDateFormatter 对“GMT+00:00”时区失败)。
    • 修复了 bug #74264(grapheme_strrpos() 对负偏移量失效)。
  • OpenSSL
    • 修复了 bug #52093(openssl_csr_sign 截断 $serial)。
  • PCRE
    • 修复了 bug #81101(PCRE2 10.37 显示意外结果)。
    • 修复了 bug #81243(为 preg_replace() 分配了过多的内存)。
  • 反射
    • 修复了 bug #81208(从属性创建 newInstance 时出现分段错误)。
  • 标准
    • 修复了 bug #81223(flock() 仅锁定文件的第一个字节)。

版本 8.0.8

  • 核心
    • 修复了 bug #81076(带有隐式绑定的闭包的调试信息不正确)。
    • 修复了错误 #81068 (realpath_cache_clean() 中的双重释放)。
    • 修复了错误 #76359 (通过添加“..”绕过 open_basedir)。
    • 修复了错误 #81090 (使用 .= 运算符时,类型化属性性能下降)。
    • 修复了错误 #81070 (内存限制比较中的整数下溢)。
    • 修复了错误 #81122 (FILTER_VALIDATE_URL 中的 SSRF 绕过)。(CVE-2021-21705)
  • Bzip2
    • 修复了错误 #81092 (在 stream_filter_remove 之前 fflush 会破坏流)。
  • Fileinfo
    • 修复了错误 #80197 (函数“magic_stream”的隐式声明无效)。
  • GMP
    • 修复了错误 #81119 (GMP 运算符使用错误的参数名称抛出错误)。
  • OCI8
    • 修复了错误 #81088 (oci_fetch_object() 和 oci_fetch_array() 的回归测试中的错误)。
  • Opcache
    • 修复了错误 #81051 (增加引用后,属性类型处理出现问题)。
    • 修复了错误 #80968 (JIT 在从所需文件返回时出现段错误)。
  • OpenSSL
    • 修复了错误 #76694 (本机 Windows 证书验证使用 CN 作为服务器名称)。
  • MySQLnd
    • 修复了 bug #80761(PDO 使用了过多的内存)。
  • PDO_Firebird
    • 修复了错误 #76448 (firebird_info_cb 中的堆栈缓冲区溢出)。(CVE-2021-21704)
    • 修复了错误 #76449 (firebird_handle_doer 中的 SIGSEGV)。(CVE-2021-21704)
    • 修复了错误 #76450 (firebird_stmt_execute 中的 SIGSEGV)。(CVE-2021-21704)
    • 修复了错误 #76452 (在 firebird_fetch_blob 中解析 blob 数据时崩溃)。(CVE-2021-21704)
  • readline
    • 修复了 bug #72998(readline 完成中的无效读取)。
  • 标准
    • 修复了错误 #81048 (phpinfo(INFO_VARIABLES) “数组到字符串转换”)。
    • 修复了 bug #77627(Closure::__invoke 上的 method_exists 不一致)。
  • Windows
    • 修复了错误 #81120 (主 PHP DLL 的 PGO 数据未被使用)。

版本 8.0.7

  • 核心
    • 修复了错误 #80960 (opendir() 在 Windows 上失败时,警告信息错误)。
    • 修复了错误 #67792 (HTTP 授权方案被视为区分大小写)。
    • 修复了错误 #80972 (无效字符串偏移导致内存耗尽)。
  • FPM
    • 修复了 bug #65800(事件端口机制)。
  • FTP
    • 修复了错误 #80901 (ftp 扩展中的信息泄露)。
    • 修复了错误 #79100 (错误的 FTP 错误消息)。
  • GD
    • 修复了错误 #81032 (GD 安装受外部 libgd 安装影响)。
  • Intl
    • 修复了错误 #81019 (parse() 失败后无法克隆 NumberFormatter)。
  • MBString
    • 修复了错误 #81011 (mb_convert_encoding 从数组中删除引用)。
  • ODBC
    • 修复了错误 #80460 (ODBC 没有考虑 SQL_NO_TOTAL 指示符)。
  • Opcache
    • 修复了错误 #81007 (JIT 在 32 位 x86 上“不支持”-- 构建问题?)。
    • 修复了错误 #81015 (Opcache 优化假设 if 条件中三元运算符的错误部分)。
    • 修复了错误 #81046 (字面量压缩合并了不相等的关联字面量)。
  • PDO_MySQL
    • 修复了 bug #81037(PDO 从预处理语句中丢弃了错误消息文本)。
  • PDO_ODBC
    • 修复了错误 #44643 (绑定参数忽略显式类型定义)。
  • pgsql
    • 修复了 php_pgsql_fd_cast() 相对于 php_stream_can_cast() 的问题。
  • SPL
    • 修复了错误 #80933 (SplFileObject::DROP_NEW_LINE 对于 NUL 和 CR 来说是无效的)。
  • XMLReader
    • 修复了错误 #73246 (XMLReader:未检查编码长度)。
  • Zip
    • 修复了错误 #80863 (ZipArchive::extractTo() 忽略引用)。

版本 8.0.6

  • PDO_pgsql
    • 恢复“修复了错误 #80892 (PDO::PARAM_INT 被视为与 PDO::PARAM_STR 相同)”

版本 8.0.5

  • 核心
    • 修复了错误 #75776 (使用压缩过滤器的流冲洗已损坏)。
    • 修复了错误 #80811 (没有 $output 但使用 $restult_code 参数的函数 exec 会崩溃)。
    • 修复了错误 #80814 (线程化的 mod_php 无法在 FreeBSD 上加载:静态线程本地存储空间不足)。
    • 更改了 Zend VM 使用的 PowerPC CPU 寄存器以解决 GCC 错误。旧寄存器 (r28/r29) 可能被用于从使用 -Os 编译的 C 函数返回的 _restgpr 例程覆盖。
  • Dba
    • 修复了错误 #80817 (dba_popen() 在 RSHUTDOWN 期间可能会导致段错误)。
  • DOM
    • 修复了错误 #66783 (将 DOMDocument 追加到元素时出现 UAF)。
  • FFI
    • 修复了错误 #80847 (具有类型为结构体的字段的 CData 结构体无法作为 C 函数参数传递)。
  • FPM
    • 修复了错误 #80024 (在池删除后,关于继承套接字的信息重复)。
  • FTP
    • 修复了错误 #80880 (SSL_read 在关闭时,ftp/proc_open)。
  • IMAP
    • 修复了错误 #80800 (imap_open() 当 flags 参数包含 CL_EXPUNGE 时失败)。
    • 修复了错误 #80710 (imap_mail_compose() 注入头)。
  • Intl
    • 修复了错误 #80763 (msgfmt_format() 不接受 DateTime 引用)。
  • LibXML
    • 修复了错误 #73533 (php_libxml_xmlCheckUTF8 中的无效内存访问)。
    • 修复了错误 #51903 (simplexml_load_file() 不使用 HTTP 头)。
  • MySQLnd
    • 修复了错误 #80837 (在 fetch 之后调用 stmt_store_result 不会抛出错误)。
  • Opcache
    • 修复了错误 #80839 (PHP 与 JIT 的问题)。
    • 修复了错误 #80861 (使用 JIT 时,二维数组中的错误数组键溢出)。
    • 修复了错误 #80786 (PHP 使用 JIT 崩溃)。
    • 修复了错误 #80782 (DASM_S_RANGE_VREG 在 PHP_INT_MIN-1 上)。
  • Pcntl
    • 修复了错误 #79812 (pcntl_exec() 中潜在的整数溢出)。
  • PCRE
    • 修复了错误 #80866 (当模式包含 \K 并且具有 0 宽度全字符串匹配时,preg_split 忽略 limit 标志)。
  • PDO_ODBC
    • 修复了错误 #80783 (PDO ODBC 每 256 个字节截断一次 BLOB 记录)。
  • PDO_pgsql
    • 修复了错误 #80892 (PDO::PARAM_INT 被视为与 PDO::PARAM_STR 相同)。
  • Session
    • 修复了错误 #80889 (当 save_handler 无效时,无法设置保存处理程序)。
    • 修复了错误 #80774 (session_name() 与反斜杠的问题)。
  • SOAP
    • 修复了错误 #69668 (SOAP 命名空间 URI 中的特殊 XML 字符未编码)。
  • 标准
    • 修复了错误 #80915 (对 $_SERVER 获取引用会隐藏其值在 phpinfo() 中)。
    • 修复了错误 #80914 ( 'getdir' 错误地定义为 'dir' 的别名)。
    • 修复了错误 #80771 (phpinfo(INFO_CREDITS) 在 CLI 中没有显示任何内容)。
    • 修复了错误 #78719 (http 包装器静默忽略了长的 Location 头)。
    • 修复了错误 #80838 (HTTP 包装器在 HTTP 101 之后等待 HTTP 1 响应)。
  • Zip
    • 修复了错误 #80825 (ZipArchive::isCompressionMethodSupported 不存在)。

版本 8.0.3

  • 核心
    • 修复了错误 #80706 (mail():Bcc 头之后的头部可能会被忽略)。
  • DOM
    • 修复了错误 #80600 (DOMChildNode::remove() 对 CharacterData 节点无效)。
  • Gettext
    • 修复了错误 #53251 (bindtextdomain 使用 null 目录不返回旧值)。
  • MySQLnd
    • 修复了错误 #78680 (mysqlnd 的 mysql_clear_password 不会传输以 null 结尾的密码)。
    • 修复了错误 #80713 (禁用 ATTR_EMULATE_PREPARES 和 MySQL 8.0 时出现段错误)。
  • MySQLi
    • 修复了错误 #74779 (x() 和 y() 将浮点数截断为整数)。
  • Opcache
    • 修复了错误 #80634 (内部类的 write_property 处理程序在预加载的 JIT 代码中被跳过)。
    • 修复了错误 #80682 (opcache 不遵守 pcre.jit 选项)。
    • 修复了错误 #80742 (Opcache JIT 使一些布尔逻辑意外地变为真)。
    • 修复了错误 #80745 (JIT 产生断言失败和未知:0 在涉及位移的代码中 var_dumps)。
  • OpenSSL
    • 修复了错误 #80747 (提供 RSA 密钥大小 < 512 会生成导致 PHP 崩溃的密钥)。
  • Phar
    • 修复了错误 #75850 (关于 __halt_compiler() 没有分号的错误消息不清楚)。
    • 修复了错误 #70091 (Phar 在 ZIP 档案中没有标记 UTF-8 文件名)。
    • 修复了错误 #53467 (Phar 无法压缩大型档案)。
  • Socket
    • 修复了错误 #80723 (不同的套接字比较为相等 (8.0 中的回归))。
  • SPL
    • 修复了错误 #80719 (在 ArrayObject::setIteratorClass() 失败后进行迭代会导致段错误)。
  • 标准
    • 修复了错误 #80654 (file_get_contents() maxlen 在超过 (2**31)-1 字节时失败)。
    • 修复了错误 #80718 (ext/standard/dl.c 回退代码路径中的语法错误)。

版本 8.0.2

  • 核心
    • 修复了错误 #80523 (在 >4GB 源代码上出现错误的解析错误)。
    • 修复了错误 #80384 (过滤器缓冲整个读取直到文件关闭)。
    • 修复了错误 #80596 (匿名类中的无效联合类型 TypeError)。
    • 修复了错误 #80617 (GCC 在 ZEND_TYPE_INIT_CODE 中抛出关于类型缩小的警告)。
  • BCMath
    • 修复了错误 #80545 (bcadd('a', 'a') 不会抛出异常)。
  • Curl
    • 修复了错误 #80595 (将 POSTFIELDS 重置为空数组会破坏请求)。
  • 日期
    • 修复了错误 #80376 (本月的最后一天导致 CPU 占用率过高)。
  • DOM
    • 修复了错误 #80537 (DOMElement::removeAttributeNode 存根中的错误参数类型)。
  • 过滤器
    • 修复了错误 #80584 (0x 和 0X 被 filter_var() 视为有效的十六进制数字)。
  • GMP
    • 修复了错误 #80560 (仅包含基数前缀的字符串返回 0 对象)。
  • Intl
    • 修复了错误 #80644 (缺少资源导致后续的 get() 调用失败)。
  • MySQLi
    • 修复了错误 #67983 (mysqlnd 使用 MYSQLI_OPT_INT_AND_FLOAT_NATIVE 无法解释位列)。
    • 修复了错误 #64638 (从使用游标的存储过程获取结果集失败)。
    • 修复了错误 #72862 (使用游标的存储过程上的预处理语句出现段错误)。
    • 修复了错误 #77935 (在调用使用游标的 SP 时,mysqlnd_fetch_stmt_row_cursor 崩溃)。
  • ODBC
    • 修复了错误 #80592 (ODBC 参数中的所有浮点数都是相同的)。
  • Opcache
    • 修复了错误 #80422 (php_opcache.dll 在使用 Apache 2.4 与 JIT 时崩溃)。
  • PDO_Firebird
    • 修复了错误 #80521 (带下划线的参数不再被识别)。
  • Phar
    • 修复了错误 #76929 (基于 zip 的 phar 不遵守 phar.require_hash)。
    • 修复了错误 #77565 (基于 ZIP 的 phar 中的错误定位器检测)。
    • 修复了错误 #69279 (压缩的 ZIP Phar extractTo() 创建垃圾文件)。
  • Phpdbg
    • 恢复了对错误 #76813 (在源操作数附近访问空值) 的修复。
  • SOAP
    • 修复了错误 #80672 (SoapClient 中的空指针取消引用)。(CVE-2021-21702)

版本 8.0.1

  • 核心
    • 修复了错误 #80345 (PHPIZE 配置中的 PHP_RELEASE_VERSION 已过时)。
    • 修复了错误 #72964 (CC/Bcc 头部中的空格未展开)。
    • 修复了错误 #80391 (可迭代的不是混合类型的协变)。
    • 修复了错误 #80393(由于 libtool 配置差异导致 PHP 扩展构建失败)。
    • 修复了错误 #77069(流过滤器丢失最后一块数据)。
  • Fileinfo
    • 修复了错误 #77961(finfo_open 恶意 magic 解析导致 SIGABRT)。
  • FPM
    • 修复了错误 #69625(FPM 在没有 SCRIPT_FILENAME 环境变量的情况下返回 200 状态码)。
  • IMAP
    • 修复了错误 #80438(imap_msgno() 在 PHP 8 中对有效 UID 错误地发出警告并返回 false)。
    • 修复了 imap_savebody() 中对有效 UID 的回归问题。
    • 使函数之间对无效消息编号/UID 的警告一致。
  • Intl
    • 修复了错误 #80425(MessageFormatAdapter::getArgTypeList 被重新定义)。
  • Opcache
    • 修复了错误 #80404(当除法结果为浮点数时,范围推断结果不正确)。
    • 修复了错误 #80377(Opcache 错过 executor_globals)。
    • 修复了错误 #80433(使用 JIT 时无法禁用 AVX 指令的使用)。
    • 修复了错误 #80447(使用 JIT 运行时出现奇怪的内存不足错误)。
    • 修复了错误 #80480(启用 JIT 导致段错误)。
    • 修复了错误 #80506(立即出现 SIGSEGV,在 ini_set("opcache.jit_debug", 1) 之后)。
  • OpenSSL
    • 修复了错误 #80368(由于缺少 OCB 支持,OpenSSL 扩展无法在 LibreSSL 上构建)。
  • PDO MySQL
    • 修复了错误 #80458(PDOStatement::fetchAll() 对 upsert 查询抛出异常)。
    • 修复了错误 #63185(nextRowset() 忽略使用原生预处理语句的 MySQL 错误)。
    • 修复了错误 #78152(PDO::exec() - 多个命令的错误处理不当)。
    • 修复了错误 #66878(除非 PDO 语句对象被 unset(),否则不会返回多个结果集)。
    • 修复了错误 #70066(意外的“在其他未缓冲查询正在执行时无法执行查询”)。
    • 修复了错误 #71145(init 命令中的多个语句会触发未缓冲查询错误)。
    • 修复了错误 #76815(当 PROCEDURE 结果集 SIGNAL 时,PDOStatement 无法被 GC/closeCursor)。
    • 修复了错误 #79872(无法执行带有待处理结果集的查询)。
    • 修复了错误 #79131(当参数值缺失时,PDO 不会抛出异常)。
    • 修复了错误 #72368(PdoStatement->execute() 失败但没有抛出异常)。
    • 修复了错误 #62889(LOAD DATA INFILE 损坏)。
    • 修复了错误 #67004(多次执行 PDOStatement::fetch() 会阻止释放结果集)。
    • 修复了错误 #79132(PDO 重用先前对 execute() 的调用的参数值)。
  • Phar
    • 修复了错误 #73809(Phar Zip 解析崩溃 - mmap 失败)。
    • 修复了错误 #75102(`PharData` 对有效 tar 报错校验和无效)。
    • 修复了错误 #77322(PharData::addEmptyDir('/') 可能出现整数溢出)。
  • Phpdbg
    • 修复了错误 #76813(在源操作数上访问接近 NULL 处出现访问冲突)。
  • SPL
    • 修复了错误 #62004(SplFileObject: 在 seek 之后 fgets 返回错误的行)。
  • 标准
    • 修复了错误 #80366(zend_fstat() 的返回值未检查)。
    • 修复了错误 #77423(FILTER_VALIDATE_URL 接受包含无效用户信息的 URL)。(CVE-2020-7071)
  • Tidy
    • 修复了错误 #77594(ob_tidyhandler 从未重置)。
  • 词法分析器
    • 修复了错误 #80462(使用 TOKEN_PARSE 标志的 Nullsafe 操作符词法分析失败)。
  • XML
    • XmlParser 不透明对象为了与其他 XML 对象保持一致而重命名为 XMLParser。
  • Zlib
    • 修复了错误 #48725(支持 zlib 流中的刷新)。

版本 8.0.0

  • BZ2
    • 修复了错误 #71263(fread() 不会报告 bzip2.decompress 错误)。
  • CLI
    • 允许调试服务器通过 `-S localhost:0` 绑定到一个临时的端口。
  • COM
    • 修复了错误 #55847(DOTNET .NET 4.0 GAC 新位置)。
    • 修复了错误 #62474(com_event_sink 在某些参数上崩溃)。
  • 日历
    • 修复了错误 #80007(unixtojd() 参数解析中潜在的类型混淆)。
  • 核心
    • 修复了错误 #36365(scandir 在每 65535 个文件处重复文件名)。
    • 修复了错误 #49555(致命错误“函数必须是字符串”消息应该重命名)。
    • 修复了错误 #62294(register_shutdown_function() 未正确处理退出代码)。
    • 修复了错误 #62609(允许在抽象类中实现 Traversable)。
    • 修复了错误 #65274(使用类名增强未定义类常量的错误)。
    • 修复了错误 #65275(在关闭函数中调用 exit() 不会在 CLI 中改变退出值)。
    • 修复了错误 #69084(在未实现重命名的抽象特征函数时,错误消息不明确)。
    • 修复了错误 #70839(LSP 检查禁止将可选参数转换为可变参数)。
    • 修复了错误 #74558(无法重新绑定由 Closure::fromCallable() 返回的闭包)。
    • 修复了错误 #77561(没有为非主脚本剥离 Shebang 行)。
    • 修复了错误 #77619(MultipleIterator::__construct 的错误反射)。
    • 修复了错误 #77966(无法为名为“namespace”的方法创建别名)。
    • 修复了错误 #78236(在接收变量时出现重复 [ 时的转换错误)。
    • 修复了错误 #78770(内部方法中的可调用性检查不正确)。
    • 修复了错误 #79108(在函数中引用参数会使其在堆栈跟踪中成为引用)。
    • 修复了错误 #79368(“意外的文件结尾”不是一个可接受的错误消息)。
    • 修复了错误 #79462(method_exists 和 property_exists 行为不一致)。
    • 修复了错误 #79467(data:// 包装器是可写的)。
    • 修复了错误 #79521(检查 __set_state 结构)。
    • 修复了错误 #79790(AST 评估期间的“非法偏移类型”异常处理不当)。
    • 修复了错误 #79791(在二元运算期间取消设置变量时出现断言失败)。
    • 修复了错误 #79828(尝试访问不存在的变量时出现段错误)。
    • 修复了错误 #79841(configure 中的语法错误/php.m4 中未转义的“[]")。
    • 修复了错误 #79852(count(DOMNodeList) 与 count(IteratorIterator(DOMNodeList)) 不匹配)。
    • 修复了错误 #79867(提升的无类型属性应该获得 null 默认值)。
    • 修复了错误 #79897(带有属性的提升的构造函数参数会导致崩溃)。
    • 修复了错误 #79927(生成器在多次 yield from 可迭代对象后不会抛出异常)。
    • 修复了错误 #79946(由于未声明 UINT32_C 导致构建失败)。
    • 修复了错误 #79948(自动预置文件中的 Exit 不会中止 PHP 执行)。
    • 修复了错误 #80045(两次使用 __call 调用 set_exception_handler 后出现内存泄漏)。
    • 修复了错误 #80096(在嵌套调用中使用具名参数导致段错误)。
    • 修复了错误 #80109(启用扩展调试时无法跳过参数)。
    • 修复了错误 #80225(eval 代码中的命名空间使用错误)。
    • 修复了错误 #80258(Windows 重复数据启用,随机权限错误)。
    • 修复了错误 #80280(ADD_EXTENSION_DEP() 对 ext/standard 和 ext/date 失败)。
    • 修复了错误 #80334(assert() 与具名参数 - 令人困惑的错误)。
    • 修复了错误 #80055(返回“self”的抽象特征方法无法由特征满足)。
    • 修复了使用 yield from 的生成器清理错误。
    • 根据 RFC https://wiki.php.net/rfc/shorter_attribute_syntax_change 中的最终投票结果,实现了 #[Attr] 属性语法。
    • 实现了 FR #47074(phpinfo() 为某些扩展报告“On”为 1)。
    • 实现了 FR #72089(require() 抛出致命错误而不是异常)。
    • 删除了 pdo_odbc.db2_instance_name php.ini 指令。
    • 使用 SSE2 指令进行与区域设置无关的 strtolower。
  • Curl
    • 将所需的 libcurl 版本提升到 7.29.0。
    • 修复了错误 #80121(如果直接实例化 CurlHandle,则出现空指针解除引用)。
  • DOM
    • 添加了属性 DOMXPath::$registerNodeNamespaces 和构造函数参数,允许全局标志配置 query() 或 evaluate() 调用。
    • 修复了错误 #79968(DOMChildNode API 在未附加的节点上崩溃)。
    • 修复了错误 #80268(loadHTML() 在 NUL 字节处截断)。
  • 日期
    • 修复了错误 #60302(DateTime::createFromFormat 应该使用 new static(),而不是 new self())。
    • 修复了错误 #65547(日出/日落天顶的默认值仍然错误)。
    • 修复了错误 #69044(时间和 microtime 之间的差异)。
    • 修复了错误 #80057(DateTimeImmutable::createFromFormat() 不会填充时间)。
    • 实现了 FR #79903(日期时间:新格式“p”,与“P”相同,但对 UTC 返回“Z”)。
  • Enchant
    • 添加了 LIBENCHANT_VERSION 宏。
    • 添加了 enchant_dict_add 和 enchant_dict_is_added 函数。
    • 弃用了 enchant_broker_set_dict_path、enchant_broker_get_dict_path、enchant_dict_add_to_personal 和 enchant_dict_is_in_session。
    • 在可用时使用 libenchant-2。
  • FFI
    • 添加了 FFI\CType::getName() 方法。
    • 修复了错误 #79177(FFI 对回调中的 PHP 异常处理不佳)。
    • 修复了错误 #79749(将 FFI 实例转换为布尔值失败)。
  • FPM
    • 添加了 pm.status_listen 选项。
  • Fileinfo
    • 升级到 libmagic 5.39。
  • GD
    • 添加了 imagegetinterpolation()。
    • 修复了错误 #55005(imagepolygon num_points 要求)。
    • 使 php_imagepolygon 的 $num_points 参数可选。
    • 删除了已弃用的 image2wbmp()。
    • 删除了已弃用的 png2wbmp() 和 jpeg2wbmp()。
    • 用对象替换了 gd 资源。
  • IMAP
    • 修复了错误 #64076(imap_sort() 在失败时不会返回 FALSE)。
    • 修复了错误 #76618(imap_reopen 出现段错误)。
    • 修复了错误 #80213(imap_mail_compose() 在某些 $bodies 上出现段错误)。
    • 修复了错误 #80215(imap_mail_compose() 可能修改按值传递的参数)。
    • 修复了错误 #80216(imap_mail_compose() 不会验证类型/编码)。
    • 修复了错误 #80220(imap_mail_compose() 可能出现内存泄漏)。
    • 修复了错误 #80223(imap_mail_compose() 在畸形的正文上泄漏信封)。
    • 修复了错误 #80226(imap_sort() 泄漏 sortpgm 内存)。
    • 修复了错误 #80239(imap_rfc822_write_address() 泄漏内存)。
    • 修复了错误 #80242(imap_mail_compose() 对带有 rfc822 的 multipart 出现段错误)。
    • 修复了由于修复错误 #80220 导致的轻微回归。
  • Iconv
    • 放弃了对没有正确 errno 设置的 iconv 的支持。
  • Intl
    • 删除了已弃用的 INTL_IDNA_VARIANT_2003。
  • JIT
    • 修复了错误 #77857(如果使用 JIT 执行,则结果错误)。
    • 修复了错误 #79255(PHP 无法使用 enable JIT 编译)。
    • 修复了错误 #79582(当 opcache.jit=1235 且 opcache.jit_debug=2 时,出现崩溃)。
    • 修复了错误 #79743(启用 JIT 时,将值分配给数组属性时出现致命错误)。
    • 修复了错误 #79864(JIT 在 Symfony OptionsResolver 中出现段错误)。
    • 修复了错误 #79888(启用 JIT 时执行不正确)。
  • JSON
    • JSON 扩展现在是 PHP 的一部分,无法根据 RFC: https://wiki.php.net/rfc/always_enable_json 禁用(tandre)。
  • LDAP
    • 修复了内存泄漏。
    • 删除了已弃用的 ldap_sort。
  • MBString
    • 修复了错误 #76999(mb_regex_set_options() 返回当前选项)。
    • 从 mb_decode_numericentity() 中删除了未使用的 $is_hex 参数。
  • MySQLi
    • 修复了错误 #76809(使用持久连接时,SSL 设置不会被遵守)。
  • Mysqlnd
    • 修复了错误 #60594(mysqlnd 在 phpinfo 中显示了 160 行统计信息)。
  • OCI8
    • 弃用旧的 OCI8 函数别名。
    • 对 oci_register_taf_callback() 可调用参数解析实现进行了现代化改造。
    • 删除了过时的无操作函数 oci_internal_debug()。
  • ODBC
    • 修复了错误 #22986(odbc_connect() 可能会重用持久连接)。
    • 修复了错误 #44618(获取可能依赖于未初始化的数据)。
  • Opcache
    • 修复了错误 #76535(Opcache 不会重放编译时警告)。
    • 修复了错误 #78654(在包含非 ASCII 字符的文件上错误地计算了 opcache 校验和)。
    • 修复了错误 #79665(ini_get() 和 opcache_get_configuration() 不一致)。
    • 修复了错误 #80030(优化器在对带有未定义动态类名的静态属性使用 isset 时发生段错误)。
    • 修复了错误 #80175(PHP8 RC1 - JIT 缓冲区无法正常工作)。
    • 修复了错误 #80184(while / if 语句中的复杂表达式错误地解析为 false)。
    • 修复了错误 #80255(Opcache 错误(错误的条件结果)在 8.0.0rc1 中)。
    • 修复了预加载动态声明函数的运行时绑定。
  • OpenSSL
    • 添加了加密消息语法 (CMS) 支持。
  • PCRE
    • 不要忽略无效的转义序列。
    • 更新至 PCRE2 10.35。
  • PDO
    • 将默认 PDO 错误模式更改为异常。
    • 修复了错误 #77849(禁用克隆 PDO 处理程序/连接对象)。
  • PDO_Firebird
    • 修复了错误 #64937(Firebird PDO 预处理 sql)。
  • PDO_OCI
    • 添加了对设置和获取 oracle OCI 18c 调用超时的支持。
  • PDO_PGSQL
    • 将所需的 libpq 版本升级到 9.1。
  • PGSQL
    • 将所需的 libpq 版本升级到 9.1。
  • Phpdbg
    • 修复了错误 #76596(phpdbg 对 display_errors=stderr 的支持)。
    • 修复了错误 #76801(打开文件过多)。
    • 修复了错误 #77800(phpdbg 在列出某些条件断点时发生段错误)。
    • 修复了错误 #77805(当 readline 为共享库时,phpdbg 构建失败)。
  • 反射
    • 修复了错误 #64592(ReflectionClass::getMethods() 返回超出范围的方法)。
    • 修复了错误 #69180(反射不遵循特征冲突解决/方法别名)。
    • 修复了错误 #74939(嵌套特征的别名方法被小写)。
    • 修复了错误 #77325(ReflectionClassConstant::$class 在扩展时返回错误的类)。
    • 修复了错误 #78697(ReflectionClass::implementsInterface - 特征的错误信息不准确)。
    • 修复了错误 #80190(ReflectionMethod::getReturnType() 不处理静态作为联合类型的一部分)。
    • 修复了错误 #80299(ReflectionFunction->invokeArgs 在参数中混淆)。
    • 修复了错误 #80370(getAttributes 在动态属性上发生段错误)。
    • 实现了 FR #79628(为 ReflectionClass::getConstants 和 ReflectionClass::getReflectionConstants 添加 $filter 参数)(carusogabriel)
    • 实现 ReflectionProperty::hasDefaultValue 和 Reflection::getDefaultValue(beberlei)
  • SNMP
    • 修复了错误 #70461(当 net-snmp 中不支持 md5 时,禁用 md5 代码)。
  • SPL
    • 修复了错误 #65006(spl_autoload_register 在使用 self、相同方法的多个可调用对象时失败)。
    • 修复了错误 #65387(SPL 迭代器中的循环引用未被垃圾回收)。
    • 修复了错误 #71236(spl_autoload_register() 的第二次调用如果没有任何参数则不会执行任何操作)。
    • 修复了错误 #79987(SplFileInfo 中的内存泄漏,因为缺少 zend_restore_error_handling())。
    • SplFixedArray 现在是 IteratorAggregate 而不是 Iterator。
  • SQLite3
    • 添加了 SQLite3::setAuthorizer() 和相应的类常量。
  • Session
    • 修复了错误 #73529(session_decode() 在输入错误时会静默失败)。
    • 修复了错误 #78624(用户定义的会话处理程序的 session_gc 返回值)。
  • Shmop
    • 将 shmop 资源转换为对象。
  • SimpleXML
    • 修复了错误 #63575(根元素未正确克隆)。
    • 修复了错误 #75245(不要设置仅包含空格的元素的内容)。
  • Sodium
    • 修复了错误 #77646(sign_detached() 字符串未终止)。
  • 标准
    • 在通过 HTTP 流包装器填充 $http_response_header 变量时,不要强制重新构建符号表。
    • 修复了错误 #47983(mail() 中混合了 LF 和 CRLF 行结束符)。
    • 修复了错误 #64060(lstat_stat_variation7.phpt 在某些文件系统上失败)。
    • 修复了错误 #75902(当 str_replace 与嵌套数组错误使用时,应该发出警告)。
    • 修复了错误 #76859(stream_get_line 在与数据生成过滤器一起使用时会跳过数据)。
    • 修复了错误 #77204(getimagesize(): 读取错误!应该提及文件路径)。
    • 修复了错误 #78385(当问号是最后一个字符时,parse_url() 不包含“query”)。
    • 修复了错误 #79868(使用 array_unique 排序会产生不希望的结果)。
    • 修复了错误 #80256(file_get_contents 使用分块编码重定向时会去除第一行)。
    • 修复了错误 #80266(parse_url 静默丢弃端口号 0)。
    • 修复了错误 #80290(当 ASSERT_CALLBACK 与动态消息一起使用时发生双重释放)。
    • 实现了 FR #78638(__PHP_Incomplete_Class 应该是 final 的)。
    • 使 cmd 执行函数的引用一致。
  • Tidy
    • 从 tidy_repair_string() 中删除了未使用的 $use_include_path 参数。
  • 词法分析器
    • 修复了错误 #80328(PhpToken::getAll() 名称混乱)。
  • XML
    • 修复了错误 #76874(xml_parser_free() 永远不应该泄漏内存)。
  • XMLWriter
    • 更改了函数以接受/返回 XMLWriter 对象而不是资源。
    • 实现了 FR #79344(xmlwriter_write_attribute_ns: $prefix 应该是可空的)。
    • 从 XMLWriter 存根中删除了返回类型。
  • Zip
    • 在 ZipArchive::addGlob 和 addPattern 方法中添加“flags”选项,保留以前的行为,默认情况下使用 FL_OVERWRITE。
    • 添加 ZipArchive::EM_UNKNOWN 和 ZipArchive::EM_TRAD_PKWARE 常量。
    • 添加 ZipArchive::isCompressionMethodSupported() 和 ZipArchive::isEncryptionMethodSupported() 方法(libzip 1.7.0)。
    • 添加 ZipArchive::replaceFile() 方法。
    • 添加 ZipArchive::setCancelCallback 方法(自 libzip 1.6.0 以来)。
    • 添加 ZipArchive::setMtimeName 和 ZipArchive::setMtimeIndex 方法。
    • 添加 ZipArchive::setProgressCallback 方法(自 libzip 1.3.0 以来)。
    • 将 lastId 属性添加到 ZipArchive。
    • 在 ZipArchive::addEmptyDir、addFile 和 addFromString 方法中添加可选的“flags”参数。
    • 修复了错误 #50678(由 ZipArchive 类解压缩的文件丢失了其原始修改时间)。
    • 修复了错误 #72374(remove_path 去除了文件名中的第一个字符)。
    • 实现了 FR #77960(为 ZipArchive::addGlob 和 ZipArchive::addPattern 添加压缩/加密选项)。
    • ZipArchive::status 和 ZipArchive::statusSys 属性以及 ZipArchive::getStatusString() 方法在关闭归档后仍然有效。
  • Zlib
    • 修复了错误 #71417(fread() 未报告 zlib.inflate 错误)。
    • 修复了错误 #78792(Content-Type: image/ 禁用 zlib.output_compression)。
To Top