PHP 8.4.14 更新日志
PHP 8.4.14 于 2025 年 10 月 23 日发布,是 PHP 8.4 分支的维护版本,包含 Core、CLI、Curl、Date、DOM、GD、MySQLnd、Opcache、Phar、SimpleXML、SOAP、Standard、Streams、XMLReader 和 Zip 等修复。
- Core:修复 object_properties_load() 绕过 readonly 属性检查、zend-max-execution-timers 下 hard_timeout、SCCP 同时触发 warning 和 exception 时返回值释放后使用、临时 closure 间命名参数解包崩溃、用户态数组 HASH_FLAG_HAS_EMPTY_IND 标志不正确、open_basedir 配置下 error_log php.ini 无法取消,以及 *BSD + MSAN 构建问题。
- CLI 与 Curl:修复 CLI server 使用 PHP_CLI_SERVER_WORKERS 时 EAGAIN 导致无用错误日志、clone CurlHandle 时 CURLOPT_POSTFIELDS 复制问题,以及 curl 8.16 下构建和测试失败。
- Date、DOM、GD、MySQLnd:修复 createFromFormat 的 P 格式吞掉字符串字面量、DOM macOS 宏名冲突和 docker-php-ext-install DOM 失败、imagefttext() 内存泄漏,以及 mysqlnd 不接受 IPv6 地址参数的问题。
- Opcache:修复 zend_jit_trace_type_to_info_ex 断言、function JIT 可能未解引用属性值,以及 zend_runtime_jit()/zend_jit_hot_func() race condition。
- Phar、SimpleXML、SOAP:修复 tar header 写入失败后的内存泄漏和错误继续执行、zip signature 应用时创建临时文件失败的内存泄漏、SimpleXML 中 NULL pointer 传给 zend_string_init、SoapServer 内存泄漏,以及未知类型 SoapVar 数组导致崩溃。
- Standard:修复克隆对象破坏序列化递归、serialize/deserialize 数据丢失、var_dump() 和 debug_zval_dump() 泄漏、array_unique 断言失败、array_splice 时 COW 违规标志仍设置下内部指针重置,以及 /dev/zero 和 /dev/null 无法 fseek。
- Streams、XMLReader、Zip:修复主程序中使用 strerror_r、早期 bug #35916 修复不完整、非可 seek stream flush 段错误、RelaxNG schema 失败时 XMLReader 泄漏、zip addGlob() remove pattern 溢出,以及 zip setEncryptionName()/setEncryptionIndex() 内存泄漏。
