PHP 8.3.7 版本现已正式发布,本次更新主要聚焦于错误修复和性能优化。以下是本次更新的主要内容概述:
核心修复:
- GH-13772:解决了启用 JIT 时,observer fcall handlers 中 execute_data->opline 指针无效的问题。
- GH-13931:修正了 Zend/zend_opcode.c 中对空指针使用 zero offset 的问题。
- GH-13942:将 zend-max-execution-timers 的行为与其他超时实现保持一致。
- GH-14003:修复了因可调用转换参数导致的未完成调用清理问题。
- GH-14013:在 configure 脚本中修复了附加的错误 dnl。
- GH-10232:修复了自动加载发生在常量解析过程中时,文件名和行号被错误识别的问题。
- GH-13727:修正了缺少 void 关键字的代码问题。
Fibers 改进:
- GH-13903:解决了执行 copy() 时出现的 ASAN 假阳性下溢问题。
Fileinfo 修复:
- GH-13795:在 big-endian PPC 架构上修复了 ext/fileinfo/tests/bug78987.phpt 测试的失败问题。
FPM 更新:
- GH-13563:修复了通过 FPM 配置中的 env 设置 bool 值失败的问题。
Intl 兼容:
- 修正了与 icu 74 及以上版本的构建兼容性问题。
MySQLnd 修正:
- 解决了 32-bit non-fast-path 平台上移位越界的问题。
Opcache 优化:
- GH-13433:修复了使用 opcache.preload 时 zend_class_init_statics 中的 Segmentation Fault。
- 修正了静态调用跨编译单元的错误假设。
OpenSSL 安全修复:
- GH-10495:解决了 OpenSSL stream 上 feof 无限期挂起的问题。
PDO SQLite 改进:
- 修复了在进行 memcmp 之前未检查缓冲区大小的问题(GH-13984)。
- 改进了对 agg_context->val 的引用计数管理(GH-13998)。
Phar 稳定性提升:
- GH-13836:解决了在 Phar 中重命名文件至已存在文件名导致的 NULL 指针取消引用问题。
- 修正了 zend_hash.c 中对空指针使用 zero offset 的问题(GH-13833)。
- 在调用 EVP_SignInit 之前,修复了潜在的 NULL 指针取消引用。
PHPDBG 调试器增强:
- GH-13827:解决了 phpdbg_frame 中类型 “zval” 的空指针访问问题。
Posix 功能增强:
- 修正了 ext/posix 中可重入函数的使用问题。
Session 管理优化:
- 解决了 ext/session/mod_files.c 中 “ps_files” 类型的空指针内成员访问问题(GH-13856)。
- 修正了在 session.trans_sid_hosts 中使用 ini_set 时的内存泄漏和段错误(GH-13891)。
- 提升了 Windows 上文件模式的缓冲区 _read/_write 大小限制。
Streams 稳定性增强:
- 解决了 Windows 上 file_get_contents() 失败并显示 “errno=22 Invalid argument” 的问题。
- 修正了 stream filter 失败时的内存泄漏问题(GH-13264)。
- 解决了 ext/openssl/xp_ssl.c 中 PHP_STREAM_OPTION_CHECK_LIVENESS 情况不正确的问题(GH-13860),避免了使用 dead socket。
- 解决了在 musl 1.2.4 - lfs64 上构建失败的问题(GH-11678)。
Treewide 兼容性提升:
- 修正了 gcc-14 编译器产生的 Wcalloc-transpose-args
本文暂时没有评论,来添加一个吧(●'◡'●)