PHP 8.4.14 现已发布,这是一个错误修复版本。具体更新内容包括:
- Core:
- 修复了错误GH-19765(object_properties_load() 绕过了只读属性检查)。
- 修复了 hard_timeout with --enable-zend-max-execution-timers。
- 修复了错误GH-19792(如果同时触发警告和异常,SCCP 会导致返回值的 UAF)。
- 修复了错误GH-19653(临时闭包之间的闭包命名参数解包可能会导致崩溃)。
- 修复了错误GH-19839(用户空间数组上的 HASH_FLAG_HAS_EMPTY_IND 标志不正确)。
- 修复了错误GH-19480(配置 open_basedir 时无法取消设置 error_log php.ini)。
- 修复了错误GH-20002(Broken build on *BSD with MSAN)。
- CLI:
- 使用 PHP_CLI_SERVER_WORKERS 修复由于 CLI 服务器中的 EAGAIN 导致的无用的“轮询事件失败”错误日志。
- Curl:
- 当使用克隆运算符而不是 curl_copy_handle() 函数克隆 CurlHandle 时,修复 CURLOPT_POSTFIELDS 的克隆问题。
- 修复版本 8.16 的 curl 构建和测试失败问题。
- Date:
- 修复 GH-17159:::createFromFormat 的“P”格式吞噬了字符串文字。
- DOM:
- 修复 macOS 上的宏名称冲突。
- 修复错误GH-20022(docker-php-ext-install DOM 失败)。
- GD:
- MySQLnd:
- 修复了错误#67563(使用 mysqlnd 编译的 mysqli 不接受 ipv6 地址作为参数)。
- Opcache:
- 修复了错误GH-19669(zend_jit_trace_type_to_info_ex 中的断言失败)。
- 修复了错误GH-19831(函数 JIT 可能不会取消引用属性值)。
- 修复了错误GH-19889(zend_runtime_jit()、zend_jit_hot_func() 中的竞争条件)。
- Phar:
- 修复 tar header 写入失败后内存泄漏和无效延续问题。
- 修复应用 zip 签名时创建临时文件失败导致的内存泄漏。
- SimpleXML:
- 修复了错误GH-19988(zend_string_init with NULL pointer in simplexml (UB))。
- Soap:
- Standard:
- 修复了错误GH-12265(克隆对象会破坏序列化递归)。
- 修复了错误GH-19701(序列化/反序列化丢失一些数据)。
- 修复了错误GH-19801(var_dump() 和 debug_zval_dump() 中的泄漏)。
- 修复了错误GH-20043(RC1 数组的 array_unique 断言失败导致排序异常)。
- 修复了错误GH-19926(在 COW violation flag 仍设置的情况下,拼接数组时提前重置内部指针)。
- 修复了错误GH-19570(无法在 /dev/zero 和 /dev/null 中进行 fseek)。
- Streams:
- 修复了错误GH-19248(在 main 中使用 strerror_r 而不是 strerror)。
- 修复了错误GH-17345(错误 #35916 尚未完全修复)。
- 修复了错误GH-19705(尝试在 non seekable stream 上刷新时的 segmentation)。
- XML阅读器:
- 修复了错误GH-20009(RelaxNG 模式失败时 XMLReader 泄漏)。
- Zip:
- 修复了错误GH-19688(删除 zip addGlob() 中的模式溢出)。
- 修复了错误GH-19932(zip setEncryptionName()/setEncryptionIndex() 中的内存泄漏)。
更新说明:https://www.php.net/ChangeLog-8.php#8.4.14