PHP 8.1.22 更新日志
PHP 8.1.22 发布于 2023 年 8 月 3 日,是 PHP 8.1 分支的正式维护版本,主要修复构建、CLI、核心运行时、Curl、Libxml、OPcache、Phar、PDO 和 SQLite3 相关问题。
- Build、CLI 与 Core:修复 PHP 版本检查中 “-” 分隔符、CLI 输出中断导致进程退出、by-reference nullsafe operator 误编译、assert 上 ??= 使用未初始化值,以及 FreeBSD 11.0 之前版本构建问题。
- Curl、Date、DOM:修复 CURLMOPT_PUSHFUNCTION 传入无效回调时崩溃、Date modify 返回无效日期时间,以及 DOMElement::replaceWith() 处理 DOMDocumentFragment 时删除节点或产生错误包装的问题。
- Fileinfo、FTP、GD、Hash、Intl:修复 xz MIME 类型识别、FTP overwrite 上下文选项和连续 ftp_nb_fget 内存泄漏/状态异常、外部 libgd 测试失败、hash_pbkdf2() 未初始化值和签名缺少 options,以及 MessageFormatter::format() 失败时内存泄漏。
- Libxml:修复未启用外部实体加载时 XML 仍可能加载外部实体的安全问题(CVE-2023-3823)。
- MBString、OPcache、PCNTL、PCRE:修复受限 Unicode license headers、OPcache enum/callback 段错误、accelerated globals 分配失败时潜在死锁、proc_open 不总是返回 SIGCHLD,以及 PCRE regex cache key 与 JIT 选项区分问题。
- PDO 与 PDO SQLite:修复 emulate prepares 和 stringify fetches 下 decimal zeros 不再补齐,以及 pdo_sqlite 测试失败问题。
- Phar:补充 EVP_VerifyUpdate() 错误检查,并修复 phar_dir_read() 中的缓冲区管理问题(CVE-2023-3824)。
- PHPDBG、Session、Standard、SQLite3:修复 phpdbg -h 未列出 -z、移除损坏的 URL 传递 session ID 支持、对象图中 RC1 对象重复出现时的序列化,以及 SQLite3Stmt::__construct 错误处理问题。
