PHP 8.3.27 更新日志
PHP 8.3.27 于 2025 年 10 月 23 日发布,是 PHP 8.3 分支的维护版本,包含 Core、CLI、Curl、Date、DBA、GD、MySQLnd、Phar、SimpleXML、SOAP、Standard、Streams、XMLReader、Zip 和 Zlib 等修复。
- 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、DBA、GD、MySQLnd:修复 createFromFormat 的 P 格式吞掉字符串字面量、dba_fetch skip 参数溢出、imagefttext() 内存泄漏,以及 mysqlnd 不接受 IPv6 地址参数的问题。
- Phar:修复 tar header 写入失败后的内存泄漏和错误继续执行,以及 zip signature 应用时创建临时文件失败的内存泄漏。
- SimpleXML 与 SOAP:修复 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:修复主程序中使用 strerror_r、早期 bug #35916 修复不完整、非可 seek stream flush 段错误,以及 RelaxNG schema 失败时 XMLReader 泄漏。
- Zip 与 Zlib:修复 zip addGlob() remove pattern 溢出、zip setEncryptionName()/setEncryptionIndex() 内存泄漏,以及 gzopen double free。
