PHP 8.1.18 更新日志
PHP 8.1.18 发布于 2023 年 4 月 13 日,是 PHP 8.1 分支的正式维护版本,主要修复核心运行时、FPM、FTP、MySQLnd、OPcache、Phar、SPL 和标准库相关问题。
- Core:为 ZTS/Linux 构建添加 max_execution_time 可选支持,修复递归 AST 求值 use-after-free、PHP-FPM 8.1 内存泄漏、CTE 函数命名参数导致段错误、apache 上 zend_signal_handler_defer 崩溃、Exception::__toString() NUL 字节截断,以及 __callStatic() 与 FFI 混用时潜在内存破坏。
- Date 与 FPM:修复 DateTime modify 使用 tz pattern 时不应更新 linked timezone、fpm_env_init_main 泄漏 environ、fpm_main 文件句柄销毁,以及 ProxyPassMatch 路径含空格时 SCRIPT_NAME 错误的问题。
- FTP、IMAP、MySQLnd:修复 ftp_close() 成功状态传递、ftp_get/ftp_nb_get 续传偏移最大 10GB、Clang 16 构建失败,以及启用 SSL 的 MySQL 连接可能内存泄漏的问题。
- OPcache 与 OpenSSL:修复 macOS 构建 pkg-config 设置、opcache.consistency_checks 在 FPM 环境中导致段错误,以及文件写入函数缺少错误检查的问题。
- PDO Firebird、PDO ODBC、Phar、PGSQL:修复 PDO Firebird bus error、SQLAllocHandle 错误检查缺失或不一致、Phar Zip 格式元数据未保留、EVP_MD_CTX_create/EVP_VerifyInit 错误检查缺失,以及 pg_meta_data 返回数组拼写问题。
- SPL 与 Standard:修复数组数据地址引用、ArrayIterator 可修改 readonly 属性、stream_socket_server context 泄漏、Browscap 在请求关闭时崩溃、php_fgetcsv() 在空字节分隔符和 enclosure 下缓冲区溢出,以及 unpack() 未定义行为。
