下載
文件
參與貢獻
協助
搜尋文件
PHP 日本研討會 2024
開始使用
簡介
簡單教學
語言參考
基本語法
型別
變數
常數
運算式
運算子
控制結構
函式
類別與物件
命名空間
列舉
錯誤
例外
纖程
產生器
屬性
參考說明
預定義變數
預定義例外
預定義介面與類別
預定義屬性
內容選項與參數
支援的協定與包裝器
安全性
簡介
一般考量
以 CGI 二進位檔安裝
以 Apache 模組安裝
工作階段安全性
檔案系統安全性
資料庫安全性
錯誤回報
使用者提交的資料
隱藏 PHP
保持更新
功能
使用 PHP 的 HTTP 驗證
Cookie
工作階段
處理檔案上傳
使用遠端檔案
連線處理
永久資料庫連線
命令列使用方式
垃圾回收
DTrace 動態追蹤
函式參考
影響 PHP 的行為
音訊格式操作
驗證服務
命令列特定擴充功能
壓縮與封存擴充功能
密碼學擴充功能
資料庫擴充功能
日期與時間相關擴充功能
檔案系統相關擴充功能
人類語言與字元編碼支援
影像處理與產生
郵件相關擴充功能
數學擴充功能
非文字 MIME 輸出
程序控制擴充功能
其他基本擴充功能
其他服務
搜尋引擎擴充功能
伺服器特定擴充功能
工作階段擴充功能
文字處理
變數與型別相關擴充功能
Web 服務
僅限 Windows 的擴充功能
XML 操作
GUI 擴充功能
鍵盤快捷鍵
?
本說明
j
下一個選單項目
k
上一個選單項目
g p
上一個手冊頁面
g n
下一個手冊頁面
G
捲動至底部
g g
捲動至頂部
g h
前往首頁
g s
前往搜尋
(目前頁面)
/
焦點移至搜尋框
PHP 8 更新日誌
8.4
|
8.3
|
8.2
|
8.1
|
8.0
版本 8.4.1
2024 年 11 月 21 日
BcMath
[RFC] 將 bcfloor、bcceil 和 bcround 加入 BCMath。
提升效能。
調整 bcround() 的 $mode 參數,僅接受 RoundingMode 列舉。
修正 BCMath ext 中的 LONG_MAX。
修正 bcdiv() 除以一的問題。
[RFC] 支援 BCMath 中的物件型別。
bcpow() 效能提升。
ext/bcmath:檢查 scale 溢位。
[RFC] ext/bcmath:加入 bcdivmod。
修正
GH-15968
(避免在運算子計算中將物件轉換為字串)。
修正錯誤
GH-16265
(當結果為 0 時加入提前返回的情況) (Saki Takamachi)。
修正錯誤
GH-16262
(修正 size_t 下溢的錯誤) (Saki Takamachi)。
修正
GH-16236
(修正 BcMath\Number::pow() 和 bcpow() 在計算 0 的負次方時的錯誤) (Saki Takamachi)。
核心
為 NetBSD、DragonFlyBSD、Solaris 和 Haiku 加入 zend_call_stack_get 實作。
從 12.x 版本開始,在 FreeBSD 上啟用 ifunc 檢查。
將 PHP_DEBUG 和 PHP_ZTS 常數的型別變更為 bool。
修正錯誤
GH-13142
(當變數名稱包含 \0 時,未定義的變數名稱會被縮短)。
修正錯誤
GH-13178
(將壓縮陣列轉換為雜湊時,迭代器位置不正確)。
修正 solaris 預設模式 (32 位元) 的 zend 纖程建置。
修正 macOs/arm64 的 zend 呼叫堆疊大小。
在 FreeBSD 上加入對 Zend 最大執行時間計時器的支援。
確保纖程堆疊不以 THP 為後盾。
實作
GH-13609
(在 WeakReference 類別中傾印封裝的物件)。
為 zend 纖程加入 sparc64 架構組合語言支援。
修正
GH-13581
在 NetBSD 上沒有可用的 TLS 空間。
加入纖程 Sys-V loongarch64 支援。
調整閉包名稱以包含父函式的名稱。
提升上傳檔案名稱和 tempnam() 建立的檔案的隨機性。
為 zend_mm 自訂處理常式加入 gc 和關閉回呼。
修正錯誤
GH-14650
(在分配記憶體之前計算頁面大小)。
修正錯誤
GH-11928
(—enable-re2c-cgoto 沒有加入 -g 旗標)。
加入 #[\Deprecated] 屬性。
修正
GH-11389
(允許在解構函式中暫停纖程)。
修正錯誤
GH-14801
(修正 armv7 的建置)。
實作屬性掛鉤 RFC。
修正
GH-14978
(xmlreader 擴充功能 phpize 建置)。
當在比較期間遇到遞迴時,擲回 Error 例外,而不是嚴重錯誤。
為 C++ 建置加入遺失的 cstddef include。
將建置系統指令碼 config.guess 更新至 2024-07-27,config.sub 更新至 2024-05-27。
修正錯誤
GH-15240
(trait 掛鉤中的無限遞迴)。
修正錯誤
GH-15140
(使用不對稱型別的抽象集合缺少變異檢查)。
修正錯誤
GH-15181
(已停用的輸出處理常式再次被刷新)。
現在不建議將 E_USER_ERROR 傳遞給 trigger_error()。
修正錯誤
GH-15292
(動態 AVX 偵測在 MSVC 上損壞)。
現在不建議使用 "_" 作為類別名稱。
退出命名空間現在會清除已見到的符號。
exit (和 die) 語言結構現在的行為更像函式。它們可以像可呼叫物件一樣傳遞,受 strict_types 宣告陳述式影響,現在執行一般型別強制轉換,而不是將任何非整數值轉換為字串。因此,將無效型別傳遞給 exit/die 現在可能會導致擲回 TypeError。
修正錯誤
GH-15438
(忽略建構函式提升屬性上沒有可見性的掛鉤)。
修正錯誤
GH-15419
(唯讀類別缺少唯讀 + 掛鉤不相容檢查)。
修正錯誤
GH-15187
(各種掛鉤物件迭代器問題)。
修正錯誤
GH-15456
(get_class_vars() 在虛擬屬性上發生崩潰)。
修正錯誤
GH-15501
(Windows HAVE_<header>_H 巨集定義為 1 或未定義)。
實作屬性的不對稱可見性。
修正錯誤
GH-15644
(不對稱可見性不適用於掛鉤)。
實作延遲物件 RFC。
修正錯誤
GH-15686
(使用外部 iconv 程式庫建置共用 iconv)。
修正將不對稱可見性加入單方面虛擬屬性時遺失的錯誤。
修正錯誤
GH-15693
(main.c 中不必要的 include 使二進位檔膨脹)。
修正錯誤
GH-15731
(AllowDynamicProperties 驗證應針對列舉傳回錯誤)。
修正錯誤
GH-16040
(在掛鉤中釋放物件的釋放後使用)。
修正錯誤
GH-16026
(關閉期間重複使用 dtor 纖程)。
修正錯誤
GH-15999
(zend_std_write_property() 延遲物件的判斷提示失敗)。
修正錯誤
GH-15960
(延遲物件的 foreach 邊緣案例)。
修正錯誤
GH-16185
(各種掛鉤物件迭代器問題)。
修正錯誤 OSS-Fuzz #371445205 (attr_free 中的堆積使用後釋放)。
修正將不對稱可見性加入靜態屬性時遺失的錯誤。
修正錯誤 OSS-Fuzz #71407 (zend_lazy_object_clone 中 Null 取消參考 WRITE)。
修正錯誤
GH-16574
(不正確的錯誤「未定義的方法」訊息)。
修正錯誤
GH-16577
(EG(strtod_state).freelist 使用 opcache.preload 洩漏)。
修正錯誤
GH-16615
(zend_std_read_property 中的判斷提示失敗)。
修正錯誤
GH-16342
(加入 ReflectionProperty::isLazy())。
修正錯誤
GH-16725
(掛鉤物件迭代器中非掛鉤屬性的存取檢查不正確)。
Curl
已不建議使用 CURLOPT_BINARYTRANSFER 常數。
將所需的 libcurl 版本提升至 7.61.0。
為 curl_version() 回傳值加入 feature_list 金鑰。
加入常數 CURL_HTTP_VERSION_3 (libcurl 7.66) 和 CURL_HTTP_VERSION_3ONLY (libcurl 7.88),作為 CURLOPT_HTTP_VERSION 的選項 (Ayesh Karunaratne)
加入 CURLOPT_TCP_KEEPCNT 以設定捨棄連線前要傳送的探測數。
加入 CURLOPT_PREREQFUNCTION Curl 選項,以便在建立連線後,執行請求之前設定自訂回呼。
加入 CURLOPT_SERVER_RESPONSE_TIMEOUT,以前稱為 CURLOPT_FTP_RESPONSE_TIMEOUT。
現在會靜默忽略 CURLOPT_DNS_USE_GLOBAL_CACHE 選項。
加入 CURLOPT_DEBUGFUNCTION 作為 Curl 選項。
修正錯誤
GH-16359
(使用 curl_setopt* CURLOPT_WRITEFUNCTION 時沒有 null 回呼會崩潰)。
修正錯誤
GH-16723
(CURLMOPT_PUSHFUNCTION 問題)。
Date
加入 DateTime[Immutable]::createFromTimestamp。
加入 DateTime[Immutable]::[get|set]Microsecond。
現在不建議使用常數 SUNFUNCS_RET_TIMESTAMP、SUNFUNCS_RET_STRING 和 SUNFUNCS_RET_DOUBLE。
修正錯誤
GH-13773
(DatePeriod 未將結束日期的微秒數納入考量)。
DBA
不建議將 null 或 false 傳遞給 dba_key_split()。
Debugging
修正錯誤
GH-15923
(GDB:Python 例外 <class 'TypeError'>:例外必須衍生自 BaseException)。
DOM
加入 DOMNode::compareDocumentPosition()。
實作 #53655 (提升大型 XML 文件上的 DOMNode::C14N() 速度)。
修正複製帶有命名空間的屬性時,命名空間消失的問題。
實作 DOM HTML5 剖析和序列化 RFC。
修正 DOMElement->使用空字串建立虛假字首的字首。
更一致地處理 OOM。
實作「改進 ext/dom 和 ext/xsl 中的回呼」RFC。
加入 DOMXPath::quote() 靜態方法。
實作選擇性加入的 ext/dom 規格相符性 RFC。
修正錯誤
#79701
(getElementById 無法正確處理重複定義)。
實作「PHP 8.4 中的新 ext-dom 功能」RFC。
修正
GH-14698
(DOM 節點取消參考時的區段錯誤)。
改善對範本元素支援。
修正在 xpath 可呼叫物件中的跳板洩漏。
在 (DOM)ParentNode 和 (DOM)ChildNode 中建立過長的文字節點時,不再靜默失敗,而是拋出例外。
修正錯誤
GH-15192
(dom 擴充功能 (html5_serializer) 中的分段錯誤)。
已棄用 DOM_PHP_ERR 常數。
已移除 DOMImplementation::getFeature()。
修正錯誤
GH-15331
(Element::$substitutedNodeValue 測試失敗)。
修正錯誤
GH-15570
(ext/dom/html5_serializer.c 中的分段錯誤 (存取空指標))。
修正錯誤
GH-13988
(在 PHP 8.1 中儲存 DOMElement 消耗的記憶體是 PHP 8.0 的 4 倍)。
修正 XML 序列化器的錯誤:應允許 xmlns="" 序列化。
修正錯誤
GH-15910
(ext/dom/element.c 中的斷言失敗)。
修正取消設定 DOM 屬性的問題。
修正錯誤
GH-16190
(使用反射呼叫 Dom\Node::__construct 會導致斷言失敗)。
修正 DOM 解析解碼中的邊緣案例。
修正錯誤
GH-16465
(DOMNode->getElementByTagName 中的堆積緩衝區溢位)。
修正錯誤
GH-16594
(DOM -> before 中的斷言失敗)。
Fileinfo
更新至 libmagic 5.45。
修正錯誤
#65106
(PHP 無法編譯 ext/fileinfo)。
FPM
實作
GH-12385
(當呼叫 flush() 時,在不含內文的情況下清除標頭)。
已將 DragonFlyBSD 系統新增至將 FPM_BACKLOG_DEFAULT 設定為 SOMAXCONN 的清單中。
已淘汰 Solaris/Illumos 設定的 /dev/poll 事件機制。
已將記憶體峰值新增至計分板/狀態頁面。
FTP
已移除已棄用的 inet_ntoa 呼叫支援。
修正錯誤
#63937
(使用 PHP 上傳速度慢 10 倍)。
GD
修正 imagecolorset() 的參數編號和遺失的 alpha 檢查。
imagepng/imagejpeg/imagewep/imageavif 現在會在品質參數無效時拋出例外。
檢查 imagescale/imagefilter 的溢位/下溢。
已將 gdImageClone 新增至綑綁的 libgd 中。
Gettext
bind_textdomain_codeset、textdomain 和 d(*)gettext 函式現在會在網域為空時拋出例外。
GMP
GMP 類別現在為 final,不能再被擴充。
RFC:變更 GMP 布林值轉換行為。
Hash
已將 hash_update() 的傳回類型變更為 true。
已新增 HashContext::__debugInfo()。
已棄用將不正確的資料類型傳遞至 ext/hash 函式的選項。
已新增 SHA-256 的 SSE2 和 SHA-NI 實作。
修正
GH-15384
(在 Alpine / Musl for amd64 上建置失敗)。
修正錯誤
GH-15742
(php_hash_sha.h 與 C++ 不相容)。
IMAP
已移至 PECL。
Intl
已新增 IntlDateFormatter::PATTERN 常數。
修正當地區設定無效時的 Numberformatter::__construct,現在會拋出例外。
已新增 NumberFormatter::ROUND_TOWARD_ZERO 和 ::ROUND_AWAY_FROM_ZERO 作為 ::ROUND_DOWN 和 ::ROUND_UP 的別名。
已新增 NumberFormatter::ROUND_HALFODD。
已新增 PROPERTY_IDS_UNARY_OPERATOR、PROPERTY_ID_COMPAT_MATH_START 和 PROPERTY_ID_COMPAT_MATH_CONTINUE 常數。
已新增 IntlDateFormatter::getIanaID/intltz_get_iana_id 方法/函式。
針對 icu 74 及更新版本設定為 C++17 標準。
resourcebundle_get()、ResourceBundle::get() 以及存取 ResourceBundle 物件的偏移量現在會拋出: - 無效的偏移量類型為 TypeError - 空字串為 ValueError - 如果整數索引不符合帶正負號的 32 位元整數,則為 ValueError
ResourceBundle::get() 現在具有暫定的傳回類型:ResourceBundle|array|string|int|null
已新增新的 Grapheme 函式 grapheme_str_split。
已新增 IntlDateFormatter::parseToCalendar。
已新增 SpoofChecker::setAllowedChars 以設定 Unicode 字元範圍。
LDAP
已新增 LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3 常數。
LibXML
已新增 LIBXML_RECOVER 常數。
libxml_set_streams_context() 現在會立即針對無效的內容拋出例外,而不是在使用位置。
已新增 LIBXML_NO_XXE 常數。
MBString
已新增 mb_trim、mb_ltrim 和 mb_rtrim。
已新增 mb_ucfirst 和 mb_lcfirst。
已將 Unicode 資料表更新至 Unicode 15.1。
修正錯誤
GH-15824
(mb_detect_encoding(): 引數 $encodings 包含無效的編碼 "UTF8")。
已將 Unicode 資料表更新至 Unicode 16.0。
Mysqli
mysqli_ping() 函式和 mysqli::ping() 方法現在已棄用,因為重新連線功能已在 PHP 8.2 中移除。
mysqli_kill() 函式和 mysqli::kill() 方法現在已棄用。如果需要此功能,則可以使用 SQL "KILL" 命令。
mysqli_refresh() 函式和 mysqli::refresh() 方法現在已棄用。如果需要此功能,則可以使用 SQL "FLUSH" 命令。
已棄用將 $mode 參數明確傳遞至 mysqli_store_result()。由於 MYSQLI_STORE_RESULT_COPY_DATA 常數僅與此函式搭配使用,因此也已棄用。
MySQLnd
修正錯誤
GH-13440
(PDO 引號瓶頸)。
修正錯誤
GH-10599
(當在具有使用中 mysqli 連線的類別內使用自我參照匿名函式時,Apache 在 Windows 上當機)。
Opcache
已新增 FreeBSD 的大型共用區段支援。
如果已啟用 JIT,則如果 JIT 啟動初始化發生問題,PHP 現在會在啟動時以嚴重錯誤結束。
在 64 位元架構上,已將 opcache.interned_strings_buffer 的最大值增加至 32767。
修正錯誤
GH-13834
(在 zend_jit.c 中將非零偏移量 36 套用至空指標)。
修正錯誤
GH-14361
(zend_cfg.c 中的深度遞迴導致分段錯誤)。
修正錯誤
GH-14873
(PHP 8.4 min 函式在具類型整數上失敗)。
修正錯誤
GH-15490
(建置呼叫圖會修改預先載入的符號)。
修正錯誤
GH-15178
(在勾點上追蹤 JIT 時的斷言)。
修正錯誤
GH-15657
(dasm_x86.h 中的分段錯誤)。
已新增 opcache_jit_blacklist() 函式。
修正錯誤
GH-16009
(無框架函式和未定義 CV 的分段錯誤)。
修正錯誤
GH-16186
(Zend/zend_operators.c 中的斷言失敗)。
修正錯誤
GH-16572
(低觸發 JIT 中反射的不正確結果)。
修正
GH-16839
(在 Windows ARM64 上建置 Opcache JIT 時發生錯誤)。
OpenSSL
修正錯誤
#80269
(OpenSSL 使用 extraattribs 參數將 Subject 設定錯誤)。
實作要求 #48520 (openssl_csr_new - 允許 DN 中有多個值)。
將新的 serial_hex 參數引入 openssl_csr_sign。
已新增 X509_PURPOSE_OCSP_HELPER 和 X509_PURPOSE_TIMESTAMP_SIGN 常數。
已將最低所需的 OpenSSL 版本提升至 1.1.1。
已新增編譯時間選項 --with-openssl-legacy-provider 以啟用舊版提供者。
已新增對基於 Curve25519 + Curve448 的金鑰的支援。
修正錯誤
GH-13343
(openssl_x509_parse 不應允許 UTCTimes 中省略秒)。
已將最低所需的 OpenSSL 版本提升至 1.1.0。
實作
GH-13514
(來自 OpenSSL 3.2 的 PASSWORD_ARGON2)。
Output
在處理常式初始化期間清除輸出處理常式的狀態旗標。
修正 url_rewriter.hosts 未被 output_add_rewrite_var() 使用的錯誤。
PCNTL
已針對 Linux 新增 pcntl_setns。
已新增 pcntl_getcpuaffinity/pcntl_setcpuaffinity。
已更新 pcntl_get_signal_handler 訊號 id 上限,使其更符合平台限制。
已針對 Linux/FreeBSD/Solaris/Illumos 新增 pcntl_getcpu。
已針對 macOs 新增 pcntl_getqos_class/pcntl_setqos_class。
已針對 DragonFlyBSD 新增 SIGCKPT/SIGCKPTEXIT 常數。
已將 FreeBSD 的 SIGTRAP 處理新增至 pcntl_siginfo_to_zval。
已新增 POSIX pcntl_waitid。
修正錯誤
GH-16769
:(pcntl_sigwaitinfo 中止將訊號值作為參考)。
PCRE
將綑綁的 pcre2lib 升級至 10.43 版。
新增 "/r" 修飾符。
將綑綁的 pcre2lib 升級至 10.44 版。
修正
GH-16189
(偏移量引數上的下溢)。
修正請求關閉後 PCRE 的 UAF 問題。
PDO
修正 setAttribute 和 getAttribute。
實作 PDO 驅動程式特定子類別 RFC。
新增對 PDO 驅動程式特定 SQL 剖析器的支援。
修正錯誤
GH-14792
(pdo_* 擴充功能的編譯失敗)。
mysqlnd:支援 ER_CLIENT_INTERACTION_TIMEOUT。
不再安裝內部標頭 php_pdo_int.h;不應由 PDO 驅動程式使用。
修正錯誤
GH-16167
(防止將 PDO 子類別與不同的 DSN 混合)。
修正錯誤
GH-16314
(當開啟持續連線時,「Pdo\Mysql 物件未初始化」)。
PDO_DBLIB
修正 setAttribute 和 getAttribute。
已新增 Pdo\DbLib 類別。
PDO_Firebird
修正 setAttribute 和 getAttribute。
功能:將交易隔離層級和模式設定新增至 pdo_firebird。
已新增 Pdo\Firebird 類別。
已新增 Pdo\Firebird::ATTR_API_VERSION。
已新增 getApiVersion() 並從 getAttribute() 中移除。
支援 Firebird 4.0 資料類型。
支援正確的時間區域類型格式。
修正
GH-15604
(始終使輸入參數可為 null)。
PDO_MYSQL
修正 setAttribute 和 getAttribute。
已新增 Pdo\Mysql 類別。
已新增自訂 SQL 剖析器。
修正
GH-15949
(PDO_MySQL 未正確引用 PDO_PARAM_LOB 二進位資料)。
PDO_ODBC
已新增 Pdo\Odbc 類別。
PDO_PGSQL
修正
GH-12423
,DSN 認證優先於使用者/密碼 PDO 建構函式引數。
使用 pdo_pgsql 查詢結果修正原生浮點數支援。
已新增 Pdo\Pgsql 類別。
擷取查詢結果資源的記憶體使用量。
已新增 Pdo\Pgsql::setNoticeCallBack 方法以接收資料庫通知。
已新增自訂 SQL 剖析器。
修正
GH-15986
(由於 Pdo\Pgsql::setNoticeCallback() 導致的雙重釋放)。
修正
GH-12940
(使用 PQclosePrepared(如果可用)而不是 DEALLOCATE 命令來釋放語句資源)。
移除 PGSQL_ATTR_RESULT_MEMORY_SIZE 常數,因為新的 PDO 子類別 Pdo\Pgsql::ATTR_RESULT_MEMORY_SIZE 提供了此常數。
PDO_SQLITE
新增 Pdo\Sqlite 類別。
修正錯誤
#81227
(當在交易中時,PDO::inTransaction 回報 false)。
已新增自訂 SQL 剖析器。
PHPDBG
處理 Windows 上用於區段錯誤處理常式的陣列超出範圍和堆疊溢位。
修正錯誤
GH-16041
(支援 phpdbg 中的堆疊限制)。
PGSQL
新增 pg_select 可以沒有條件的可能性。
持久連線支援 PGSQL_CONNECT_FORCE_RENEW 旗標。
新增 pg_result_memory_size 以取得查詢結果的記憶體使用量。
新增 pg_change_password 以變更使用者的密碼。
新增 pg_put_copy_data/pg_put_copy_end 以傳送 COPY 命令並發出 COPY 結束的信號。
新增 pg_socket_poll 以輪詢連線。
新增 pg_jit 以取得伺服器 JIT 支援的資訊。
新增 pg_set_chunked_rows_size 以逐區塊擷取結果。
pg_convert/pg_insert/pg_update/pg_delete;正規表示式現在會被快取。
Phar
修正錯誤
GH-12532
(從 zip 建立的 PharData 具有不正確的時間戳記)。
POSIX
新增 POSIX_SC_CHILD_MAX 和 POSIX_SC_CLK_TCK 常數。
更新 posix_isatty 以設定檔案描述器的錯誤編號。
PSpell
已移至 PECL。
Random
修正錯誤
GH-15094
(php_random_default_engine() 不符合 C++ 規範)。
lcg_value() 現在已過時。
Readline
修正 readline_info、rl_line_buffer_length/rl_len 全域變數的更新問題。
修正錯誤
#51558
(共用 readline 建置失敗)。
修正 readline_info() 的 UAF 問題。
Reflection
實作
GH-12908
(在 ReflectionAttribute 傾印中顯示屬性名稱/類別)。
讓 ReflectionGenerator::getFunction() 在產生器終止後合法。
新增 ReflectionGenerator::isClosed()。
修正錯誤
GH-15718
(在動態屬性上使用 ReflectionProperty::get{Hook,Hooks}() 時發生區段錯誤)。
修正錯誤
GH-15694
(對已掛鉤的屬性而言,ReflectionProperty::isInitialized() 不正確)。
新增遺失的 ReflectionProperty::hasHook[s]() 方法。
新增遺失的 ReflectionProperty::isFinal() 方法。
修正錯誤
GH-16122
(對閉包而言,ReflectionFunction::getNamespaceName() 和 ReflectionFunction::inNamespace() 的傳回值不正確)。
修正錯誤
GH-16162
(沒有 ReflectionProperty::IS_VIRTUAL)(DanielEScherzer)
修正 ReflectionClass::resetAsLazyGhost() 的第二個參數名稱。
Session
INI 設定 session.sid_length 和 session.sid_bits_per_character 現在已過時。
針對 session.gc_divisor 的非正值和 session.gc_probability 的負值發出警告。
修正錯誤
GH-16590
(在 session_encode() 中發生 UAF)。
SimpleXML
修正 simplexml_import_dom() 的簽名。
SNMP
已移除已棄用的 inet_ntoa 呼叫支援。
SOAP
新增類別映射中對命名空間的 Clark 標記法的支援。
減輕 #51561(使用延伸類別且使用 session 的 SoapServer,會遺失 setPersistence())。
修正錯誤
#49278
(如果 wsdl 操作沒有輸出,則 SoapClient::__getLastResponseHeaders 會傳回 NULL)。
修正錯誤
#44383
(PHP DateTime 未轉換為 xsd:datetime)。
修正錯誤
GH-11941
(當「session」建置為共用物件時,具有 session 持續性的 soap 會無訊息地失敗)。
現在不建議將 int 傳遞給 SoapServer::addFunction()。如果需要提供所有 PHP 函數,請展平 get_defined_functions() 傳回的陣列。
SOAP_FUNCTIONS_ALL 常數現在已過時。
修正錯誤
#61525
(SOAP 函數需要在 HTTP 標頭冒號後至少有一個空格)。
實作請求 #47317(SoapServer::__getLastResponse())。
Sockets
已移除已棄用的 inet_ntoa 呼叫支援。
新增 SO_EXECLUSIVEADDRUSE Windows 常數。
新增 SOCK_CONN_DGRAM/SOCK_DCCP netbsd 常數。
新增 FreeBSD 上 IPv4 的多點傳播群組支援。
新增 Linux 的 TCP_SYNCNT 常數,以設定從用戶端傳送 SYN 封包的嘗試次數。
新增 illumos/solaris 上獨佔通訊端繫結的 SO_EXCLBIND 常數。
將 socket_create_listen 後置引數的預設值更新為 SOMAXCONN。
新增 SO_NOSIGPIPE 常數,以控制 macOs 和 FreeBSD 上 SIGPIPE 的產生。
為 macOS 新增 SO_LINGER_SEC,與其他平台上的 SO_LINGER 真實等效。
在 unix 上使用 socket_accept 建立的通訊端上新增 close-on-exec。
為 BSD 系統新增 IP_PORTRANGE* 常數,以控制臨時埠範圍。
為 socket_create 和 socket_create_pair 新增 SOCK_NONBLOCK/SOCK_CLOEXEC 常數,以將 O_NONBLOCK/O_CLOEXEC 旗標套用至新建立的通訊端。
新增 SO_BINDTOIFINDEX 以將通訊端繫結至介面索引。
Sodium
新增對 AEGIS-128L 和 AEGIS-256 的支援。
在具有 ARM 加密擴充功能的 aarch64 上啟用 AES-GCM。
SPL
為 SplObjectStorage 實作 SeekableIterator。
SplFixedArray::__wakeup() 方法已過時,因為它實作了 __serialize() 和 __unserialize(),需要改為覆寫。
現在不建議為以下項目的 $escape 參數傳遞非空字串:- SplFileObject::setCsvControl() - SplFileObject::fputcsv() - SplFileObject::fgetcsv()。
Standard
實作
GH-12188
(在 phpinfo() 中指示 int 大小)。
部分修正
GH-12143
(0.49999999999999994 的 round() 結果不正確)。
修正
GH-12252
(round():驗證捨入模式)。
將預設 BCrypt 成本增加至 12。
修正錯誤
GH-12592
(strcspn() 使用 NUL 位元組和空遮罩的奇異行為)。
已移除已棄用的 inet_ntoa 呼叫支援。
在 number_format 中將 int 範圍內的大型浮點數轉換為 int,這樣就不會遺失精確度。
為 round() 函數新增 4 種新的捨入模式的支援。
debug_zval_dump() 現在會指示陣列是否為封裝的。
修正
GH-12143
(最佳化 round)。
將 long2ip 的傳回類型從 string|false 變更為 string。
修正
GH-12143
(將 round 可以處理的最大精確度擴展一位數)。
新增 http_get_last_response_headers() 和 http_clear_last_response_headers(),允許擷取與魔術變數 $http_response_header 相同的內容。
新增 php_base64_encode_ex() API。
實作「將零提升到負數的冪」RFC。
新增 array_find()、array_find_key()、array_all() 和 array_any()。
將 highlight_string() 和 print_r() 傳回類型變更為 string|true。
修正 request_parse_body() 選項陣列中的參考。
新增 RoundingMode 列舉。
現在不建議還原序列化大寫「S」標記。
在 OpenBSD 上啟用 crc32 輔助偵測。
現在不建議為以下項目的 $escape 參數傳遞非空字串:- fputcsv() - fgetcsv() - str_getcsv()。
當 $separator 和 $enclosure 引數不是一個位元組長,或者如果 $escape 不是一個位元組長或空字串時,str_getcsv() 函數現在會擲回 ValueErrors。這會使行為與 fputcsv() 和 fgetcsv() 的行為相同。
php_uname() 現在會針對無效輸入擲回 ValueErrors。
unserialize() 的「allowed_classes」選項如果不是類別名稱的陣列,現在會擲回 TypeErrors 和 ValueErrors。
實作
GH-15685
(改進 Windows 上的 proc_open 錯誤報告)。
在 http_build_query() 中新增對受支援列舉的支援。
修正錯誤
GH-15982
(當牽涉到參考時,使用 array_find 時會發生判斷提示失敗)。
將 fpow() 的參數名稱修正為與 pow() 相同。
Streams
實作
GH-15155
(當自訂串流封裝器被篩選時,會遺失串流內容)。
Tidy
建構函式中的失敗現在會擲回例外狀況,而不是發出警告並擁有損壞的物件。
新增 tidyNode::getNextSibling() 和 tidyNode::getPreviousSibling()。
Windows
更新 Windows 可執行檔(例如 php.exe)的圖示。
修正錯誤
GH-16199
(GREP_HEADER() 已損壞)。
XML
新增 XML_OPTION_PARSE_HUGE 剖析器選項。
修正錯誤
#81481
(在 64 位元組建置上,xml_get_current_byte_index 限制為 32 位元數字)。
xml_set_object() 函數已過時。
現在不建議將不可呼叫的字串傳遞給 xml_set_*_handler() 函數。
XMLReader
宣告類別常數類型。
新增 XMLReader::fromStream()、XMLReader::fromUri()、XMLReader::fromString()。
修正錯誤
GH-15123
(var_dump 實際上無法在 XMLReader 上運作)。
XMLWriter
新增 XMLWriter::toStream()、XMLWriter::toUri()、XMLWriter::toMemory()。
XSL
實作請求 #64137(XSLTProcessor::setParameter() 應該允許使用兩種引號)。
實作「改進 ext/dom 和 ext/xsl 中的回呼」RFC。
新增 XSLTProcessor::$maxTemplateDepth 和 XSLTProcessor::$maxTemplateVars。
修正在 xpath 可呼叫物件中的跳板洩漏。
Zip
新增 libzip 1.11 中新增的 ZipArchive::ER_TRUNCATED_ZIP。
版本 8.3.14
2024 年 11 月 21 日
CLI
修正錯誤
GH-16373
(在透過 shebang 啟動的 cli-server 中,不會略過路由器指令碼的 shebang)。
修正錯誤
GHSA-4w77-75f9-2c8w
(CLI SAPI 介面中 sapi_read_post_data 處理的堆積使用後釋放)。
COM
修正對 SafeArray 資料的超出範圍寫入。
核心
修正錯誤
GH-16168
(在 macOS 15 上使用 Xcode 16 clang 編譯時,php 8.1 和更早版本會立即崩潰)。
修正錯誤
GH-16371
(在 Zend/zend_weakrefs.c:646 中發生判斷提示失敗)。
修正錯誤
GH-16515
(呼叫跳板時,ZEND_ACC_RETURN_REFERENCE 的傳播不正確)。
修正錯誤
GH-16509
(函數重新宣告錯誤中的行號不正確)。
修正錯誤
GH-16508
(延遲早期繫結類別的繼承錯誤中的行號不正確)。
修正錯誤
GH-16648
(陣列排序期間的釋放後使用)。
Curl
修正錯誤
GH-16302
(如果 curl_multi_add_handle 失敗,CurlMultiHandle 會保留對 CurlHandle 的參考)。
Date
修正錯誤
GH-16454
(在 $utcOffset 很小的情況下,date_sunset() 中未處理的 INF)。
修正錯誤
GH-14732
(date_sun_info() 對於非有限值失敗)。
DBA
修正錯誤
GH-16390
(dba_open() 可以在「無路徑」串流中發生區段錯誤)。
DOM
修正了錯誤
GH-16316
(DOMXPath 未正確初始化時會崩潰)。
新增了 replaceChild 遺失的層級檢查。
修正了錯誤
GH-16336
(屬性內部文件的管理不當)。
修正了錯誤
GH-16338
(ext/dom/node.c 中的空指標取值)。
修正了錯誤
GH-16473
(dom_import_simplexml 存根錯誤)。
修正了錯誤
GH-16533
(當將屬性新增到非元素的父節點時發生 Segfault)。
修正了錯誤
GH-16535
(當使用文件作為子節點時發生 UAF)。
修正了錯誤
GH-16593
(DOM->replaceChild 中的斷言失敗)。
修正了錯誤
GH-16595
(DOM -> cloneNode 中另一個 UAF)。
EXIF
修正了錯誤
GH-16409
(當處理的不是真實檔案時,exif_thumbnail 會發生 Segfault)。
FFI
修正了錯誤
GH-16397
(比較 FFI 物件時發生 Segmentation fault)。
Filter
修正了錯誤
GH-16523
(FILTER_FLAG_HOSTNAME 接受結尾的連字符號)。
FPM
修正了錯誤
GH-16628
(FPM 記錄檔因這個記錄陳述而損毀)。
GD
修正了錯誤
GH-16334
(矩陣元素上的 imageaffine 溢位)。
修正了錯誤
GH-16427
(未檢查的 libavif 回傳值)。
修正了錯誤
GH-16559
(ext/gd/libgd/gd_interpolation.c:1007 中的 UBSan 中止)。
GMP
修正了使用大型指數值時,gmp_pow 造成的浮點數異常錯誤。(David Carlier)。
修正了錯誤
GH-16411
(gmp_export() 可能導致溢位)。
修正了錯誤
GH-16501
(gmp_random_bits() 可能導致溢位)。
修正了具有大型基數/指數的 gmp_pow() 溢位錯誤。
修正了與 GMP 物件運算符多載相關的 Segfault 和其他問題。
LDAP
修正了錯誤
GHSA-g665-fm4p-vhff
(ldap_escape 中的 OOB 存取)。 (CVE-2024-8932)
MBstring
修正了錯誤
GH-16361
(mb_substr 在 start/length 參數上的溢位)。
MySQLnd
修正了錯誤
GHSA-h35g-vwh6-m678
(透過堆積緩衝區過度讀取洩漏堆積的部分內容)。 (CVE-2024-8929)
Opcache
修正了錯誤
GH-16408
(在最佳化器中發出陣列轉字串轉換警告)。
OpenSSL
修正了錯誤
GH-16357
(openssl 可能會修改憑證陣列的成員類型)。
修正了錯誤
GH-16433
(openssl_csr_sign() $days 的大型值溢位)。
修正了 openssl_x509_parse() 中錯誤條件下的各種記憶體洩漏。
PDO DBLIB
修正了錯誤
GHSA-5hqh-c84r-qjcv
(dblib 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
PDO Firebird
修正了錯誤
GHSA-5hqh-c84r-qjcv
(firebird 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
PDO ODBC
修正了錯誤
GH-16450
(PDO_ODBC 可以將垃圾資料注入欄位值)。
Phar
修正了錯誤
GH-16406
(ext/phar/phar.c:2808 中的斷言失敗)。
PHPDBG
修正了錯誤
GH-16174
(空字串對 ev 而言是無效的表達式)。
Reflection
修正了錯誤
GH-16601
(Reflection 建構函式中的記憶體洩漏)。
Session
修正了錯誤
GH-16385
(session_set_cookie_params 回傳非預期的 null)。
修正了錯誤
GH-16290
(cookie_lifetime ini 值溢位)。
SOAP
修正了錯誤
GH-16318
(遞迴陣列導致 soap 編碼發生 Segfault)。
修正了錯誤
GH-16429
(在 SoapClient 中存取空指標時發生 Segmentation fault)。
Sockets
修正了 socket_recvfrom $length 參數的溢位錯誤。
SPL
修正了錯誤
GH-16337
(SplHeap 中的 use-after-free)。
修正了錯誤
GH-16464
(SplDoublyLinkedList::offsetSet() 中的 use-after-free)。
修正了錯誤
GH-16479
(SplObjectStorage::setInfo() 中的 use-after-free)。
修正了錯誤
GH-16478
(SplFixedArray::unset() 中的 use-after-free)。
修正了錯誤
GH-16588
(Observer->serialize 中的 UAF)。
修正了
GH-16477
(在 SplFileObject::__constructor 失敗後呼叫 __debugInfo() 時發生 Segmentation fault)。
修正了錯誤
GH-16589
(SplDoublyLinked->serialize() 中的 UAF)。
修正了錯誤
GH-14687
(SplObjectIterator 實例上的 segfault)。
修正了錯誤
GH-16604
(SPL 建構函式中的記憶體洩漏)。
修正了錯誤
GH-16646
(ArrayObject::unset() 和 ArrayObject::exchangeArray() 中的 UAF)。
Standard
修正了錯誤
GH-16293
(在啟用 bail 的情況下,於 assert() 回呼中拋出例外時發生斷言失敗)。
Streams
修正了錯誤
GHSA-c5f2-jwm7-mmq2
(在 stream 上下文中設定 Proxy 可能允許在 URI 中進行 CRLF 注入)。 (CVE-2024-11234)
修正了錯誤
GHSA-r977-prxv-hc43
(使用 convert.quoted-printable-decode 篩選器進行單一位元組過度讀取)。 (CVE-2024-11233)
SysVMsg
修正了錯誤
GH-16592
(當類型未正確序列化時,msg_send() 會崩潰)。
SysVShm
修正了錯誤
GH-16591
(shm_put_var 中的斷言錯誤)。
XMLReader
修正了錯誤
GH-16292
(ext/xmlreader/php_xmlreader.c 中的 Segmentation fault)。
Zlib
修正了錯誤
GH-16326
(不良字典的記憶體管理已損壞。) (cmb)
版本 8.3.13
2024 年 10 月 24 日
Calendar
修正了
GH-16240
:jdtounix 在引數值上的溢位。
修正了
GH-16241
:easter_days/easter_date 在年份引數上的溢位。
修正了
GH-16263
:jddayofweek 溢位。
修正了
GH-16234
:jewishtojd 溢位。
CLI
修正了錯誤
GH-16137
:用戶端多次設定時出現重複的 HTTP 標頭。
核心
修正了錯誤
GH-16054
(在新增時調整雜湊表迭代器清單大小會發生 Segmentation fault)。
修正了錯誤
GH-15905
(TRACK_VARS_SERVER 的斷言失敗)。
修正了錯誤
GH-15907
(當將 Serialize 棄用升級為例外時發生斷言失敗)。
修正了錯誤
GH-15851
(在清理巢狀產生器框架期間列印回溯追蹤時發生 Segfault)。
修正了錯誤
GH-15866
(Zend/zend_generators.c 中發生核心傾印)。
修正了錯誤
GH-16188
(Zend/zend_exceptions.c 中的斷言失敗)。
修正了錯誤
GH-16233
(透過 trampoline 在內部函式中呼叫使用者函式時發生 Observer segfault)。
DOM
修正了錯誤
GH-16039
(ext/dom/parentnode/tree.c 中發生 Segmentation fault (存取空指標))。
修正了錯誤
GH-16149
(DOMElement->getAttributeNames() 中的空指標取值)。
修正了錯誤
GH-16151
(ext/dom/parentnode/tree.c 中的斷言失敗)。
修正了錯誤
GH-16150
(php_dom.c 中的 use-after-free)。
修正了錯誤
GH-16152
(DOMProcessingInstruction/DOMDocument 中的記憶體洩漏)。
JSON
修正了錯誤
GH-15168
(json_encode() 中的堆疊溢位)。
GD
修正了錯誤
GH-16232
(讀取 wbmp 檔案內容時發生位元移位溢位/修正上游的回溯移植)。
修正了錯誤
GH-12264
(imagerotate 度數值的溢位/下溢) (David Carlier)
修正了錯誤
GH-16274
(imagescale 在 RBG 通道上的下溢/修正上游的回溯移植)。
LDAP
修正了錯誤
GH-16032
(ldap_modify_batch() 中的各種 NULL 指標取值)。
修正了錯誤
GH-16101
(當 LDAPs 陣列不是清單時,ldap_list()、ldap_read() 和 ldap_search() 中發生 Segfault)。
修正了
GH-16132
(php_ldap_do_modify() 嘗試釋放非 ZMM 配置的指標)。
修正了
GH-16136
(當條目不是正確的字典時,php_ldap_do_modify() 中的記憶體洩漏)。
MBString
修正了錯誤
GH-16261
(mb_convert_variables() 中斷的參考不變量)。
OpenSSL
修正了 openssl_csr_new 的存根。
PCRE
修正了錯誤
GH-16189
(offset 引數上的下溢)。
修正了錯誤
GH-16184
(ext/pcre/php_pcre.c 中溢位的 UBSan 位址)。
PHPDBG
修正了錯誤
GH-15901
(phpdbg:i 函式上的斷言失敗)。
修正了錯誤
GH-16181
(phpdbg:例外處理常式中的 exit 會報告致命錯誤)。
Reflection
修正了錯誤
GH-16187
(ext/reflection/php_reflection.c 中的斷言失敗)。
SAPI
修正了錯誤
GH-15395
(php-fpm:zend_mm_heap 因 cgi-fcgi 要求而損毀)。
SimpleXML
修正了錯誤
GH-15837
(ext/simplexml/simplexml.c 中的 Segmentation fault)。
Sockets
修正了錯誤
GH-16267
(socket_strerror 在 errno 引數上的溢位)。
SOAP
修正了錯誤
#73182
(PHP SOAPClient 不支援陣列形式的 stream 上下文 HTTP 標頭)。
修正了錯誤
#62900
(xsd 匯入錯誤訊息上的錯誤命名空間)。
修正了錯誤
GH-15711
(SoapClient 無法將 BackedEnum 轉換為純量值)。
修正了錯誤
GH-16237
(在複製 SoapServer 時發生 Segmentation fault)。
修正了 Soap 在錯誤時洩漏 http_msg 的問題。
修正了錯誤
GH-16256
(ext/soap/php_encoding.c:460 中的斷言失敗)。
修正了錯誤
GH-16259
(當 classmap 實例化失敗時,Soap 發生 segfault)。
SPL
修正了錯誤
GH-15918
(ext/spl/spl_fixedarray.c 中的斷言失敗)。
Standard
修正了錯誤
GH-16053
(Zend/zend_hash.c 中的斷言失敗)。
修正了錯誤
GH-15169
(在 ext/standard/var 中序列化變數時發生堆疊溢位)。
Streams
修正了錯誤
GH-15908
和
GH-15026
(streams.c 中的洩漏/斷言失敗)。
修正了錯誤
GH-15980
(main/streams/streams.c 中的帶號整數溢位)。
TSRM
防止關閉不相關的控制代碼。
Windows
修正了最低 Windows 版本。
版本 8.3.12
2024 年 9 月 26 日
CGI
修正了錯誤
GHSA-p99j-rfp4-xqvq
(繞過 CVE-2024-4577,參數注入漏洞)。 (CVE-2024-8926)
修正了錯誤
GHSA-94p6-54jq-9mwp
(由於環境變數衝突,cgi.force_redirect 設定可被繞過)。 (CVE-2024-8927)
核心
修正了錯誤
GH-15408
(zend_max_execution_timer 上的 MSan 誤報)。
修正了錯誤
GH-15515
(Configure 錯誤 grep 非法選項 q)。
修正了錯誤
GH-15514
(Configure 錯誤:genif.sh:語法錯誤)。
修正了錯誤
GH-15565
(編譯期間 --disable-ipv6 產生錯誤 EAI_SYSTEM not found)。
修正了錯誤
GH-15587
(在 arm 32 位元上發生 CRC32 API 建置錯誤)。
修正了錯誤
GH-15330
(不要掃描產生器框架超過一次)。
修正了內部列舉常數 AST 中未初始化的 lineno。
Curl
修正了錯誤
GH-15547
(curl_multi_select 在 timeout 引數上的溢位)。
DOM
修正了錯誤
GH-15551
(ext/dom/xml_common.h 中發生 Segmentation fault (存取空指標))。
修正了錯誤
GH-15654
(ext/dom/nodelist.c 中的帶號整數溢位)。
Fileinfo
修正了錯誤
GH-15752
(使用空檔名引數呼叫 finfo_file 的錯誤訊息不正確)。
FPM
修正了錯誤
GHSA-865w-9rf3-2wh5
(兒童日誌可能會被竄改)。 (CVE-2024-9026)
MySQLnd
修正了錯誤
GH-15432
(查詢向量時發生堆積損壞)。
Opcache
修正了錯誤
GH-15661
(存取 Zend/Optimizer/zend_inference.c 中的空指標)。
修正了錯誤
GH-15658
(Zend/zend_vm_execute.h 中發生區段錯誤)。
SAPI
修正了錯誤
GHSA-9pqp-7h25-4f32
(錯誤解析多部分表單資料)。 (CVE-2024-8925)
Standard
修正了錯誤
GH-15552
(ext/standard/scanf.c 中帶號整數溢位)。
Streams
修正了錯誤
GH-15628
(php_stream_memory_get_buffer() 未以零結尾)。
版本 8.3.11
2024 年 8 月 29 日
核心
修正了錯誤
GH-15020
(Zend/Optimizer/escape_analysis.c 中的記憶體洩漏)。
修正了錯誤
GH-15023
(Zend/zend_ini.c 中的記憶體洩漏)。
修正了錯誤
GH-13330
(有條件地附加 -Wno-implicit-fallthrough 旗標)。
修正在 network.c 中未初始化的記憶體。
修正了錯誤
GH-15108
(關閉期間銷毀產生器時發生區段錯誤)。
修正了錯誤
GH-15275
(暫停產生器委派的 GC 期間發生崩潰)。
Curl
修正了 curl_error 傳回空字串的情況。
DOM
修正了在移除 doctype 並使用 foreach 迭代時發生的 UAF。
FFI
修正了錯誤
GH-14286
(ffi 列舉型別 (當列舉沒有名稱時) 造成記憶體洩漏)。
Hash
修正在 xxh3 中轉換 shm 中的陣列資料時發生崩潰。
Intl
修正了錯誤
GH-15087
(IntlChar::foldCase() 的 $option 不是可選的)。
Opcache
修正了錯誤
GH-13817
(在第 4 次傳遞後為已啟用觀察器時發生區段錯誤)。
修正了錯誤
GH-13775
(可能與 opcache SHM 位置相關的記憶體洩漏)。
Output
修正了錯誤
GH-15179
(ext/standard/url_scanner_ex.re 中發生區段錯誤 (空指標取消引用))。
PDO_Firebird
修正了 firebird_handle_get_attribute() 中的虛假 fallthrough 路徑。
PHPDBG
修正了錯誤
GH-13199
(使用 libedit/readline 時,phpdbg 本機主控台模式中 EOF 發出多餘的提示)。
修正了錯誤
GH-15268
(phpdbg 中堆積緩衝區溢位 (zend_hash_num_elements() Zend/zend_hash.h))。
修正了錯誤
GH-15210
(在觀察點配置上使用後釋放)。
Soap
修正了錯誤
#55639
(Digest 驗證無法運作)。
修正 SoapFault 屬性銷毀。
修正了錯誤
GH-15252
(自 PHP 8.3.9 起,使用 classmap 建構子選項時,SOAP XML 損毀)。
Standard
修正了在 stream 函式中傳遞非有限逾時值。
修正了
GH-14780
p(f)sockopen 逾時溢位。
Streams
修正了錯誤
GH-15028
(ext/phar/stream.c 中的記憶體洩漏)。
修正了錯誤
GH-15034
(檔案大於 2GB 時,stream_notification_callback byte_max 參數上的整數溢位)。
還原了
GH-14930
的修正 (自訂串流包裝函式 dir_readdir 輸出截斷為 255 個字元)。
Tidy
修正 ext/tidy basedir 限制程式碼中的記憶體洩漏。
版本 8.3.10
2024 年 8 月 1 日
核心
修正了錯誤
GH-13922
(修正 sysconf(_SC_GETPW_R_SIZE_MAX) == -1 的系統支援)。
修正了錯誤
GH-14626
(修正大型區塊的 is_zend_ptr())。
修正了錯誤
GH-14590
(FPM 測試 gh13563-conf-bool-env.phpt 中的記憶體洩漏)。
修正了 OSS-Fuzz #69765。
修正了錯誤
GH-14741
(Zend/zend_types.h 中的區段錯誤)。
修正了錯誤
GH-14969
(使用 __toString() 的屬性強制轉換中發生使用後釋放)。
Dom
修正了錯誤
GH-14702
(DOMDocument::xinclude() 崩潰)。
Fileinfo
修正了錯誤
GH-14888
(README.REDIST.BINS 參照不存在的 LICENSE)。
Gd
ext/gd/tests/gh10614.phpt:如果沒有 PNG 支援,則跳過。
恢復警告而不是致命錯誤。
LibXML
修正了錯誤
GH-14563
(使用 libxml2 v2.13.0 時建置失敗)。
Opcache
修正了錯誤
GH-14550
(當啟用 Zend DTrace 時,沒有警告訊息指出 opcache.jit 被隱式停用)。
Output
修正了錯誤
GH-14808
(Zend/zend_string.h 中,使用空的輸出緩衝區時發生意外的空指標)。
PDO
修正了錯誤
GH-14712
(使用 PDORow 存取空屬性時發生崩潰)。
Phar
修正了錯誤
GH-14603
(zip 條目中的空字串)。
PHPDBG
修正了錯誤
GH-14596
(使用 ASAN 和 ZEND_RC_DEBUG=1 時發生崩潰)。
修正了錯誤
GH-14553
(echo 輸出在 NULL 位元組處被截斷)。
Shmop
修正了錯誤
GH-14537
(shmop Windows 11 造成處理程序崩潰)。
SPL
修正了錯誤
GH-14639
(ext/spl/spl_observer.c 中空指標內的成員存取)。
Standard
修正了錯誤
GH-14775
(帶有負 step 引數的範圍函式溢位)。
修正了 32 位元 wordwrap 測試失敗。
修正了錯誤
GH-14774
(time_sleep_until 溢位)。
Streams
修正了錯誤
GH-14930
(自訂串流包裝函式 dir_readdir 輸出在 PHP 8.3 中被截斷為 255 個字元)。
Tidy
修正了 tidy_repair_file() 中的記憶體洩漏。
Treewide
修正了與 libxml2 2.13.2 的相容性。
XML
從即將被棄用的 libxml 欄位移開。
修正了錯誤
GH-14834
(使用 --with-pear 時安裝 PHP 時發生錯誤)。
版本 8.3.9
2024 年 7 月 4 日
核心
修正了錯誤
GH-14315
(不相容的指標型別警告)。
修正了錯誤
GH-12814
(在 Apple Silicon 上執行時,macOS 14 上太早達到 max_execution_time)。
修正了錯誤
GH-14387
(在 Generator->throw() 期間,從值中產生值的解構函式中進行堆疊走訪時發生崩潰)。
修正了錯誤
GH-14456
(嘗試使用私有建構子初始化類別會呼叫解構函式)。
修正了錯誤
GH-14510
(由於缺少 pthread_attr_destroy() 呼叫而導致的記憶體洩漏)。
修正了錯誤
GH-14549
(fclose 的不相容函式指標型別)。
BCMatch
修正了錯誤 (當 mod = -1 時,bcpowmod() 傳回 1,而必須是 0)。
Curl
修正了錯誤
GH-14307
(測試 curl_basic_024 在 curl 8.8.0 中失敗)。
DOM
修正了錯誤
GH-14343
(xml 和 dom 中的記憶體洩漏)。
FPM
修正了錯誤
GH-14037
(PHP-FPM ping.path 和 ping.response 設定變數在狀態池中被忽略)。
GD
修正了 imagecolorset() 的參數編號。
Intl
修正了 SpoofChecker 中的參考處理。
MySQLnd
部分修正了錯誤
GH-10599
(當在具有作用中 mysqli 連線的類別中使用自參考匿名函式時,Windows 上發生 Apache 崩潰)。
Opcache
修正了錯誤
GH-14267
(opcache.jit=off 不允許在執行階段啟用 JIT)。
修正了 FreeBSD/amd64 上 JIT 中的 TLS 存取。
修正了錯誤
GH-11188
(在 ARM64 中建置 TSRM 時發生錯誤)。
PDO ODBC
修正了錯誤
GH-14367
(與 iODBC 不相容的 SDWORD 型別)。
PHPDBG
修正了錯誤
GH-13681
(在新增觀察點失敗時發生區段錯誤)。
Soap
修正了錯誤
#47925
(PHPClient 無法解壓縮回應)。
修正了遺失的錯誤還原程式碼。
修正了呼叫 SoapServer::setObject() 兩次時的記憶體洩漏。
修正了呼叫 SoapServer::setClass() 兩次時的記憶體洩漏。
修正了在 ext-soap 中讀取 zlib ini 設定。
修正了字串函式名稱查閱中的記憶體洩漏。
修正了錯誤
#69280
(SoapClient classmap 不支援完整限定類別名稱)。
修正了錯誤
#76232
(SoapClient Cookie 標頭分號)。
修正了呼叫 SoapFault::__construct() 兩次時的記憶體洩漏。
Sodium
修正了在某些函式失敗時,ext/sodium 中的記憶體洩漏。
SPL
修正了錯誤
GH-14290
(擴充功能 spl 中空指標內的成員存取)。
Standard
修正了錯誤
GH-14483
(修正了檢查抽象命名空間 Unix socket 長度的 off-by-one 錯誤)。
Streams
修正了錯誤
GH-11078
(PHP 嚴重錯誤會觸發指標被釋放但未配置的錯誤,以及 ptr 的 malloc:雙重釋放錯誤)。
版本 8.3.8
2024 年 6 月 6 日
CGI
修正了 Windows 上的緩衝區限制,將讀取呼叫的使用取代為 _read。
修正了錯誤 GHSA-3qgc-jrrr-25jv (繞過 CVE-2012-1823,PHP-CGI 中的引數注入)。 (CVE-2024-4577)
CLI
修正了錯誤
GH-14189
(PHP 互動式 Shell 輸入狀態錯誤地處理引用的 heredoc 字面值)。
核心
修正了錯誤
GH-13970
(對於非編譯時期運算式,#[Attribute] 旗標型別的驗證不正確)。
DOM
修正了在移除實體宣告時,仍然有實體參考時發生的崩潰。
修正了在 C14N 中未正確處理的參考。
修正了在迭代器耗盡時呼叫 childNodes next() 時發生的崩潰。
修正了在處理包含文字節點的片段時,ParentNode::append() 中的崩潰。
Filter
修正了錯誤 GHSA-w8qr-v226-r27w (filter_var FILTER_VALIDATE_URL 中的篩選器繞過)。 (CVE-2024-5458)
FPM
修正了錯誤
GH-14175
(在 systemd 狀態中顯示十進位數字而不是科學符號)。
Hash
ext/hash:交換 `__has_builtin` 和 `__GNUC__` 的檢查順序 (Saki Takamachi)
Intl
修正了在沒有 C++17 編譯器的系統上發生的建置迴歸。
MySQLnd
修正了錯誤
GH-14255
(mysqli_fetch_assoc 回報來自巢狀查詢的錯誤)。
Opcache
修正了錯誤
GH-14109
(修正了 shm 中意外持續存在的內部類別常數)。
OpenSSL
PHP 中的 openssl_private_decrypt 函式,當使用 PKCS1 填補時 (OPENSSL_PKCS1_PADDING,這是預設值),除非它與包含此提取要求變更的 OpenSSL 版本一起使用:https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection),否則容易受到 Marvin 攻擊。這些變更屬於 OpenSSL 3.2 的一部分,並且也已向後移植到各種 Linux 發行版的穩定版本,以及自上次發佈以來為 Windows 提供的 PHP 建置版本。所有發行者和建置者都應確保使用此版本以防止 PHP 容易受到攻擊。
Standard
修正了錯誤 GHSA-9fcc-425m-g385 (繞過 CVE-2024-1874)。 (CVE-2024-5585)
XML
修正了錯誤
GH-14124
(在特定記憶體限制下,XML 擴充功能發生區段錯誤)。
XMLReader
修正了錯誤
GH-14183
(XMLReader::open() 無法覆寫)。
版本 8.3.7
2024 年 5 月 9 日
核心
修正了在沒有執行緒支援的情況下,使用 Linux/uclibc-ng 建置的 zend_call_stack。
修正了錯誤
GH-13772
(當啟用 JIT 時,觀察器 fcall 處理程式中的 execute_data->opline 指標無效)。
修正錯誤
GH-13931
(在 Zend/zend_opcode.c 中對空指標應用零偏移)。
修正錯誤
GH-13942
(使 zend-max-execution-timers 的行為與其他逾時實作一致)。
修正錯誤
GH-14003
(使用可呼叫轉換參數時,未完成呼叫的清理中斷)。
修正錯誤
GH-14013
(在 configure 中附加錯誤的 dnl)。
修正錯誤
GH-10232
(如果在常數解析期間發生自動載入,則檔案名稱和行號會被錯誤地識別)。
修正錯誤
GH-13727
(缺少 void 關鍵字)。
纖程
修正錯誤
GH-13903
(執行 copy() 時,ASAN 誤報下溢)。
Fileinfo
修正錯誤
GH-13795
(在 big-endian PPC 上,ext/fileinfo/tests/bug78987.phpt 中的測試失敗)。
FPM
修正錯誤
GH-13563
(在 FPM 設定中透過 env 設定布林值失敗)。
Intl
修正 icu 74 及更高版本的建置。
MySQLnd
修正 32 位元非快速路徑平台上超出範圍的位移。
Opcache
修正錯誤
GH-13433
(使用 opcache.preload 時,zend_class_init_statics 中的分段錯誤)。
修正跨編譯單元的靜態呼叫的不正確假設。
OpenSSL
修正錯誤
GH-10495
(OpenSSL 串流上的 feof 無限期掛起)。
PDO SQLite
修正
GH-13984
(現在在 memcmp 之前會檢查緩衝區大小)。
修正
GH-13998
(正確管理 agg_context->val 的參考計數)。
Phar
修正錯誤
GH-13836
(將 Phar 中的檔案重新命名為已存在的檔案名稱會導致 NULL 指標解引用)。
修正錯誤
GH-13833
(在 zend_hash.c 中對空指標應用零偏移)。
修正在呼叫 EVP_SignInit 之前的潛在 NULL 指標解引用。
PHPDBG
修正錯誤
GH-13827
(phpdbg_frame 中 'zval' 類型的空指標存取)。
Posix
修正 ext/posix 中可重入函數的使用。
Session
修正錯誤
GH-13856
(在 ext/session/mod_files.c 中,'ps_files' 類型的空指標內的成員存取)。
修正錯誤
GH-13891
(使用 ini_set 和 session.trans_sid_hosts 時的記憶體洩漏和分段錯誤)。
修正在 windows 上檔案模式的緩衝區 _read/_write 大小限制。
Streams
修正 Windows 上 file_get_contents() 失敗,並顯示「errno=22 無效參數」的問題。
修正錯誤
GH-13264
(第 1 部分 - 串流篩選失敗時的記憶體洩漏)。
修正錯誤
GH-13860
(ext/openssl/xp_ssl.c 中不正確的 PHP_STREAM_OPTION_CHECK_LIVENESS 情況 - 導致使用已失效的 Socket)。
修正錯誤
GH-11678
(在 musl 1.2.4 上建置失敗 - lfs64)。
Treewide
修正 gcc-14 Wcalloc-transposed-args 警告。
版本 8.3.6
2024 年 4 月 11 日
核心
修正
GH-13569
(掃描 WeakMaps 時,GC 緩衝區不必要地增長到 GC_MAX_BUF_SIZE)。
修正錯誤
GH-13612
(具有弱參考的解構函數中的損毀記憶體)。
修正錯誤
GH-13446
(在完成後還原例外處理常式)。
修正錯誤
GH-13784
(AX_GCC_FUNC_ATTRIBUTE 失敗)。
修正錯誤
GH-13670
(當解構函數中建立大量物件時,GC 無法良好擴展)。
DOM
新增一些遺失的 ZPP 檢查。
修正 XPath 評估結果中潛在的記憶體洩漏。
FPM
修正
GH-11086
(FPM:在守護進程模式下,設定測試會執行兩次)。
修正 fpm_shm_free() 中不正確的檢查。
GD
修正錯誤
GH-12019
(在功能測試中新增 GDLIB_CFLAGS)。
Gettext
修正當 gettext 0.22.5 的類別設定為 LC_ALL 時,使用 dcgettext/dcngettext 呼叫引發的 sigabrt。
MySQLnd
修正
GH-13452
(修正交握回應 [mysqlnd])。
修正 check_mb_eucjpms() 中不正確的字元集長度。
Opcache
修正
GH-13508
(當 op1 為 null 時,JIT 編譯的 QM_ASSIGN 可能會被最佳化掉)。
修正
GH-13712
(當載入 opcache 時,呼叫內部 trait 的 trait 方法時,已啟用觀察器會發生分段錯誤)。
Random
修正錯誤
GH-13544
(針對具有未知模式的 mt_srand 的 Pre-PHP 8.2 相容性)。
修正錯誤
GH-13690
(當使用 MT_RAND_PHP 時,請求之間未正確重設全域 Mt19937)。
Session
修正錯誤
GH-13680
(session_decode 和編譯錯誤的分段錯誤)。
SPL
修正錯誤
GH-13685
(zend_string.h 中出現非預期的空指標)。
Standard
修正錯誤
GH-11808
(測試修改的即時檔案系統)。
修正
GH-13402
(在 mail() 的 $additional_headers 中新增 `\n` 的驗證)。
修正錯誤
GH-13203
(在 Windows 上,file_put_contents 在超過 4GB 的字串上失敗)。
修正錯誤 GHSA-pc52-254m-w9w7 (透過 proc_open 的陣列式 $command 參數進行命令注入)。(CVE-2024-1874)
修正錯誤 GHSA-wpj3-hf5j-x4v4 (由於部分 CVE-2022-31629 修復,__Host-/__Secure- Cookie 繞過)。(CVE-2024-2756)
修正錯誤 GHSA-h746-cjrr-wfmr (password_verify 可能會錯誤地傳回 true,開啟 ATO 風險)。(CVE-2024-3096)
修正錯誤 GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader 對某些輸入無限期執行)。(CVE-2024-2757)
修正錯誤
GH-13932
(嘗試修正 Windows 建置上的 mbstring) (msvc)。
版本 8.3.4
2024 年 3 月 14 日
核心
修正在關閉時 ZTS 持久資源崩潰的問題。
Curl
修正由於 libcurl 8.6.0 中的字串變更而導致的測試失敗。
DOM
修正當具有極深樹狀結構時,移除命名空間時不太可能發生的記憶體洩漏。
修正 DOMNodeList 和 DOMNodeMap 維度中的參考存取。
Fileinfo
修正錯誤
GH-13344
(finfo::buffer(): 無法識別資料 0:(null),回溯)。
FPM
修正錯誤
#75712
(php-fpm 中的 getenv 不應讀取 $_ENV, $_SERVER)。
GD
修正錯誤
GH-12019
(在系統 gd 函式庫中偵測影像格式)。
MySQLnd
修正錯誤
GH-11950
([mysqlnd] 如果已設定 CR_SERVER_GONE_ERROR,則修正為不將 CR_MALFORMED_PACKET 設定為錯誤)。
PDO
修正各種 PDORow 錯誤。
PGSQL
修正錯誤
GH-13354
(pg_execute/pg_send_query_params/pg_send_execute 透過引用傳遞 null 值)。
SPL
修正錯誤
GH-13531
(在 PHP 8.2.15 中取消序列化後,無法調整 SplfixedArray 的大小)。
Standard
修正錯誤
GH-13279
(在 uksort 中就地修改期間,陣列不穩定)。
修正第二個運算元緩衝區大小(雖然目前未使用)的陣列鍵作為雜湊到字串(不區分大小寫)比較中的錯字。
XML
修正錯誤
GH-13517
(使用 --with-expat 建置時,多個測試失敗)。
版本 8.3.3
2024 年 2 月 15 日
核心
修正 zend-max-execution-timers 建置中的計時器洩漏。
修正錯誤
GH-12349
(在 ARM 上使用 mold 時的連結失敗)。
修正錯誤
GH-13097
(在 trigger_error / 拋出例外中匿名類別參考)。
修正錯誤
GH-13177
(PHP 8.3.2:在 trait 中使用時,不允許最終私有建構子)。
修正錯誤
GH-13215
(GCC 14 建置失敗)。
Curl
修正 curl_multi_init() 中遺失的錯誤檢查。
FPM
修正錯誤
GH-12996
(當路徑中有加號時,使用 Apache ProxyPassMatch 的不正確 SCRIPT_NAME)。
GD
修正錯誤
GH-10344
(imagettfbbox(): 無法找到/開啟字型 UNC 路徑)。
修正錯誤
GH-10614
(當旋轉 90 度時,imagerotate 會將圖片全部變黑)。
LibXML
修正實體參考和預定義實體的崩潰。
MySQLnd
修正錯誤
GH-12107
(當執行兩次傳回結果集的預存程序時,PHP 會崩潰)。
Opcache
修正錯誤
GH-13145
(strtok() 不是編譯時間)。
修正 range() 的類型推斷。
修正錯誤
GH-13232
(當 JIT 關閉但 JIT_debug 仍開啟時,將會報告分段錯誤)。
OpenSSL
修正在未設定 OPENSSL_NO_ENGINE 時,LibreSSL 未定義參考的問題。(David Carlier)。
PDO_Firebird
修正
GH-13119
(已變更為使用 `H` 格式將浮點數和雙精度值轉換為字串)。
Phar
修正錯誤
#71465
(PHAR 不知道 litespeed)。
修正錯誤
GH-13037
(PharData 錯誤地解壓縮 zip 檔案)。
Random
修正錯誤
GH-13138
(Randomizer::pickArrayKeys() 未偵測到損壞的引擎)。
Session
修正錯誤
GH-12504
(當自動載入器中發生嚴重錯誤時,會寫入損毀的 session)。
Standard
修正錯誤
GH-13094
(range(9.9, '0') 會導致分段錯誤)。
Streams
修正錯誤
GH-13071
(使用可 mmap 的來源串流複製大型檔案可能會耗盡可用記憶體並失敗)。
版本 8.3.2
2024 年 1 月 18 日
核心
修正錯誤
GH-12953
(當載入具有超過 11k 個元素的 composer classmaps 時,SSA 完整性驗證失敗的誤報)。
修正錯誤
GH-12999
(當 strnlen 不支援時,建置 zend_strnlen)。
修正錯誤
GH-12966
(缺少交叉編譯的第三個引數,因此 Autoconf 不會發出警告)。
修正錯誤
GH-12854
(8.3 - 作為最終 trait 使用的方法,無法在 Reflection 中正確報告可見性)。
Cli
修正當使用路由器指令碼和 max_input_time 時,內建網路伺服器中的不正確逾時。
DOM
修正錯誤
GH-12870
(建立 xmlns 屬性會導致 DOMException)。
修正當在沒有文件的情況下使用 toggleAttribute() 時發生的崩潰。
修正在 adoptNode 中帶有屬性參考的崩潰。
修正錯誤
GH-13012
(當屬性順序不同時,DOMNode::isEqualNode() 不正確)。
FFI
修正錯誤
GH-9698
(stream_wrapper_register 會在 FFI\CData 中崩潰)。
修正錯誤
GH-12905
(FFI::new 與觀察者互動不佳)。
Intl
修正
GH-12943
(IntlDateFormatter::__construct 接受 'C' 作為有效地區設定)。
Hash
修正錯誤
GH-12936
(如果使用 sha512 處理 >= 4GiB 的字串,hash() 函數會無限期掛起)。
ODBC
修正具有持續連線時,Apache 關閉時的崩潰。
Opcache
修正 oss-fuzz #64727 (當 DIM 與結果變數相同時,JIT 未定義的陣列鍵警告可能會使用 NULL 覆寫 DIM)。
新增針對 SELinux mprotect execheap 問題的解決方案。請參閱 https://bugzilla.kernel.org/show_bug.cgi?id=218258。
OpenSSL
修正錯誤
GH-12987
(openssl_csr_sign 可能會在錯誤時洩漏新憑證)。
PDO
修正
GH-12969
(修正 PDO::getAttribute() 以取得 PDO::ATTR_STRINGIFY_FETCHES)。
PDO_ODBC
修正錯誤
GH-12767
(無法使用 setAttribute() 開啟自動提交模式)。
PGSQL
修正 auto_reset_persistent 處理和 allow_persistent 類型。
修正錯誤
GH-12974
(當使用 pg_pconnect() 時,Apache 在關閉時崩潰)。
Phar
修正錯誤
#77432
(包含 phar 檔案時的分段錯誤)。
PHPDBG
修正錯誤
GH-12962
(phpdbg_prompt.c 中 init_file 的雙重釋放)。
SimpleXML
修復取得 SimpleXMLElement 未初始化屬性的位址導致崩潰的問題。
修正錯誤
GH-12929
(使用 stream_wrapper_register 的 SimpleXMLElement 可能會導致分段錯誤)。
Tidy
修正錯誤
GH-12980
(tidynode.props.attribute 缺少「布林屬性」和空屬性)。
版本 8.3.1
2023 年 12 月 21 日
核心
修正錯誤
GH-12758
/
GH-12768
(ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 內的 OOM 處理器中存在無效的 opline)。
修正多個遺失的 NULL 檢查。
修正錯誤
GH-12835
(內部 __call 上的 call->extra_named_params 洩漏)。
修正錯誤
GH-12826
(巢狀迴圈中出現奇怪的指標問題)。
FPM
修正錯誤
GH-12705
(fpm_status_export_to_zval 中發生分段錯誤)。
FTP
修正錯誤
GH-9348
(FTP 與 SSL 工作階段重複使用)。
LibXML
修正 libxml2 2.12.0 的測試失敗。
MySQLnd
避免使用未初始化的結構。
修正錯誤
GH-12791
(MySQLnd 偵錯程式碼中可能對 NULL 進行取值)。
Opcache
修正 JIT 錯誤 (函數 JIT 在發出無效偏移錯誤的同時發出「未初始化的字串偏移」警告)。
修正 JIT 錯誤 (JIT 在擲出錯誤的同時發出「嘗試指派非物件的屬性」警告)。
PDO PGSQL
修正 PDO::pgsqlGetNotify() 中 $fetchMode 的預設值 (kocsismate)
SOAP
修正錯誤
GH-12838
([SOAP] 未刪除暫時 WSDL 快取檔案)。
Standard
修正
GH-12745
(http_build_query() 的 $arg_separator 預設 null 引數被隱式強制轉換為字串)。
版本 8.3.0
2023 年 11 月 23 日
Bcmath
修正
GH-11761
(從數字中移除尾隨零) (jorgsowa)
CLI
在內建伺服器中新增 pdeathsig,以便在主要程序被終止時終止工作者。
修正錯誤
GH-11104
(對於沒有腳本的 CLI,STDIN/STDOUT/STDERR 無法使用)。
實作
GH-10024
(使用 php -l 支援一次檢查多個檔案)。
核心
修正
GH-11388
(從 trait 匯入方法時允許 "final" 修飾詞)。
修正錯誤
GH-11406
(使用解封裝和魔術方法閉包時發生分段錯誤)。
修正錯誤
GH-9388
(改進 unset 屬性和 __get 類型不相容錯誤訊息)。
現在為訊號處理常式設定 SA_ONSTACK,以更方便其他處理程序中的程式碼,例如 Go 的 cgo。
現在在停用訊號時設定 SA_ONSTACK。
修正
GH-9649
:訊號處理常式現在會執行無操作,而不是在非 TSRM 管理的執行緒上執行時當機。
新增纖程的陰影堆疊支援。
修正錯誤
GH-9965
(修正具有副作用的預設引數意外快取)。
實作
GH-10217
(使用 strlen() 來判斷 class_name 長度)。
修正錯誤
GH-8821
(改進常數運算式中錯誤的行號)。
修正錯誤
GH-10083
(允許在 & 和參數之間使用註解)。
現在預設為 Linux 上的 ZTS 組建啟用 Zend 最大執行計時器。
修正錯誤
GH-10469
(不允許在執行時間設定的 open_basedir 路徑中使用 ..)。
修正錯誤
GH-10168
、
GH-10582
(使用解構函式和 VM 傳回值的各種分段錯誤)。
修正錯誤
GH-10935
(如果類別從其父類別繼承了靜態屬性,則使用 trait 不會重新宣告靜態屬性)。
修正錯誤
GH-11154
(空陣列上的負索引不會影響下一個選取的索引)。
修正錯誤
GH-8846
(為沒有父類別的類別實作延遲早期繫結)。
修正錯誤 #79836 (concat_function 中的分段錯誤)。
修正錯誤 #81705 (在帶有串連運算的 set_error_handler 上出現類型混淆/UAF)。
修正
GH-11348
(從魔術方法建立的閉包不接受具名引數)。
修正
GH-11388
(從 trait 匯入方法時允許 "final" 修飾詞)。
修正錯誤
GH-11406
(使用解封裝和魔術方法閉包時發生分段錯誤)。
修正錯誤
GH-11507
(8.3 中字串串連效能降低)。
修正
GH-11488
(在 union null 類型上遺失「必要參數之前的選用參數」棄用)。
實作 #[\Override] 屬性 RFC。
修正錯誤
GH-11601
(不正確處理解除堆疊和正常結束例外)。
為 OpenBSD 新增 zend_call_stack_get 實作。
在 zend_eval_const_expr() 中新增堆疊限制檢查。
在 gc_status() 中公開收集循環所花費的時間。
移除僅可透過項目值存取的 WeakMap 項目。
在 INI 更新時解析 open_basedir 路徑。
修正 oss-fuzz #60741 (open_basedir 中的洩漏)。
修正因 OOM 錯誤而釋放某些未完整初始化物件期間的分段錯誤 (PDO、SPL、XSL)。
引入 Zend 保護遞迴保護以修正 __debugInfo 問題。
修正 oss-fuzz #61712 (二元運算期間,錯誤處理常式出現判斷提示失敗)。
修正
GH-11847
(已啟用 DTrace 的組建已損壞)。
修正 OSS Fuzz #61865 (在錯誤處理常式中針對未設定的宣告屬性使用 ++/-- 時出現未定義的變數)。
修正檢查使用者串流是否可轉換時發出的警告。
修正錯誤
GH-12123
(在 MacOS 上使用 C++ 擴充功能時,使用 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX 會產生編譯錯誤)。
修正錯誤
GH-12189
(trait 中的 #[Override] 屬性不會檢查父類別實作)。
修正 OSS Fuzz #62294 (在字串變數上使用 ++/-- 後,取消設定變數時發出警告)。
修正編譯記憶化運算式時發生的緩衝區下溢。
修正 oss-fuzz #63802 (後置遞增/遞減的錯誤路徑中的 OP1 洩漏)。
Curl
新增 Curl 選項和常數至 (包含) 版本 7.87。
Date
實作更適合的日期/時間例外 RFC。
DOM
修正錯誤
GH-8388
(DOMAttr 解除逸出字元參考)。
修正錯誤
GH-11308
(getElementsByTagName() 為 O(N^2))。
修正 #79700 (libxml oldNs 的錯誤使用會導致效能問題)。
修正 #77894 (即使在正規化之後,DOMNode::C14N() 在產生的 DOMDocument 上速度非常慢)。
還原對 DOMAttr::$value 和 DOMAttr::$nodeValue 擴充的變更。
修正錯誤
GH-11500
(在 createElementNS() 中重複使用命名空間會產生錯誤的輸出)。
實作 DOMDocument::adoptNode()。先前這總是擲出「尚未實作」例外。
修正錯誤
GH-9628
(從 \DOMDocument 隱式移除節點會中斷現有參考)。
新增 DOMNode::contains() 和 DOMNameSpaceNode::contains()。
新增 DOMElement::getAttributeNames()。
新增 DOMNode::getRootNode()。
新增 DOMElement::className 和 DOMElement::id。
新增 DOMParentNode::replaceChildren()。
新增 DOMNode::isConnected 和 DOMNameSpaceNode::isConnected。
新增 DOMNode::parentElement 和 DOMNameSpaceNode::parentElement。
新增 DOMNode::isEqualNode()。
新增 DOMElement::insertAdjacentElement() 和 DOMElement::insertAdjacentText()。
新增 DOMElement::toggleAttribute()。
修正錯誤
GH-11792
(LIBXML_NOXMLDECL 未實作或已損壞)。
adoptNode 現在會遵循嚴格的錯誤檢查屬性。
使 DOMChildNode 父項檢查與規格一致。
修正錯誤
#80927
(建立屬性節點後移除 documentElement:可能的使用後釋放)。
修正各種命名空間前置詞衝突解析錯誤。
修正不使用前置詞呼叫 createAttributeNS() 而導致元素預設命名空間變更的問題。
修正
GH-11952
(透過 libxml_set_external_entity_loader 封鎖實體載入時出現混淆的警告)。
修正已解除配置並重新配置的文件節點中損壞的快取失效。
修正在 C++ 中包含 php_libxml.h 標頭時發生的編譯錯誤。
修正錯誤
#47531
(無法移除多餘的 xmlns: 宣告)。
Exif
移除 exif_process_TIFF_in_JPEG() 中不必要的程式碼路徑。
FFI
實作
GH-11934
(允許將 CData 傳遞至結構和/或聯集欄位)。
Fileinfo
將捆綁的 libmagic 升級至 5.43。
修正
GH-11408
(無法組建 PHP 8.3.0 alpha 1 / fileinfo 擴充功能)。
FPM
status.listen 共用集區現在使用與其共用集區相同的 php_values (包括 expose_php) 和 php_admin_value。
在 fpm 通訊端未在預期路徑上註冊時,新增寫入記錄檔的警告。
修正錯誤
#76067
(system() 函式呼叫會洩漏 php-fpm 接聽通訊端)。
修正
GH-12077
(PHP 8.3.0RC1 損壞 socket-close-on-exec.phpt)。
GD
移除 imagerotate "ignore_transparent" 引數,因為它沒有任何效果。
Intl
為 numfmt_set_pattern 新增樣式格式錯誤資訊。
為 Spoofchecker 的類別新增 MIXED_NUMBERS 和 HIDDEN_OVERLAY 常數。
更新 datefmt_set_timezone/IntlDateformatter::setTimezone 傳回類型。(David Carlier)。
更新 IntlBreakInterator::setText 傳回類型。
更新 IntlChar::enumCharNames 傳回類型。
移除 IntlDateFormatter::construct 在使用無效的地區設定時擲出例外的 BC 中斷。
JSON
新增 json_validate()。
LDAP
棄用使用個別主機名稱和連接埠呼叫 ldap_connect()。
LibXML
修正使用 -Werror=incompatible-function-pointer-types 和舊版 libxml2 時的編譯錯誤。
MBString
mb_detect_encoding 能夠更好地識別土耳其文字的正確編碼。
mb_detect_encoding 的「非嚴格」模式現在的行為與文件中所述一致。先前,如果輸入字串的相同位元組 (例如,第一個位元組) 在所有候選編碼中都無效,它會傳回 false。更廣泛地說,當看到無效位元組時,它會從考慮中移除候選編碼,如果相同的輸入位元組從考慮中移除所有剩餘的編碼,它會傳回 false。另一方面,如果除了其中一個之外的所有候選編碼都從考慮中移除,它會傳回最後剩餘的一個編碼,而不考慮稍後在字串中可能遇到多少編碼錯誤。這與文件中所述的行為不同,該文件指出:「如果將 strict 設定為 false,則會傳回最接近的符合編碼。」(Alex Dowad)
mb_strtolower、mb_strtotitle 和 mb_convert_case 為希臘字母 sigma 實作條件式大小寫規則。對於 mb_convert_case,條件式大小寫僅適用於 MB_CASE_LOWER 和 MB_CASE_TITLE 模式,不適用於 MB_CASE_LOWER_SIMPLE 和 MB_CASE_TITLE_SIMPLE。
mb_detect_encoding 能夠更好地識別帶有位元組順序標記的 UTF-8 和 UTF-16 字串。
mb_decode_mimeheader 依照 RFC 2047 的規定,將 QPrint 編碼 MIME 編碼文字中的底線解譯為空格;它們會轉換為空格。底線必須在此類 MIME 編碼文字中編碼為 "=5F"。
mb_encode_mimeheader 不再於 QPrint 編碼輸入字串時捨棄 NUL (零) 位元組。先前這會導致某些文字編碼 (尤其是 UTF-16 和 UTF-32) 中的字串被 mb_encode_mimeheader 損壞。
實作 mb_str_pad() RFC。
修正錯誤
GH-11514
(啟用 --enable-mbstring 時,PHP 8.3 組建失敗)。
修正 mb_list_encodings() 傳回值的使用後釋放。
修正錯誤
GH-11992
(utf_encodings.phpt 在 Windows 32 位元系統上失敗)。
mysqli
mysqli_fetch_object 會拋出 ValueError 而不是 Exception。
Opcache
在 opcache 的 phpinfo 區段中新增啟動、重新啟動和強制重新啟動時間。
修正
GH-9139
:當 opcache.preload_user=root 時,允許 FFI 在 opcache.preload 中使用。
在 cli 和 phpdbg SAPI 中,使 opcache.preload_user 始終為選填選項。
允許在 FreeBSD 上建立頁面時設定 W/X 位元,即使系統設定不允許。
在 Linux 上,為 zend_shared_alloc_create_lock() 新增 memfd API 的使用,以建立 opcache 鎖的抽象匿名檔案。
避免從多個進程/執行緒重設 JIT 計數器處理常式。
修正參考的 COPY_TMP 型別推斷。
OpenSSL
新增 OPENSSL_CMS_OLDMIMETYPE 和 PKCS7_NOOLDMIMETYPE 常數,以切換 MIME 內容類型。
修正
GH-11054
:使用 PEM 公鑰時重設 OpenSSL 錯誤。
在 openssl_pkey_new 中新增對其他 EC 參數的支援。
PCNTL
現在 pcntl_signal 會設定 SA_ONSTACK。
新增 SIGINFO 常數。
PCRE
更新綁定的 libpcre2 至 10.42。
PGSQL
pg_fetch_object 會拋出 ValueError 而不是 Exception。
pg_cancel 使用執行緒安全的 PQcancel API 取代。
pg_trace 新增 PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE 常數支援。
pg_set_error_verbosity 新增 PGSQL_ERRORS_STATE 常數。
在型別錯誤時,pg_convert/pg_insert 的 E_WARNING 已轉換為 ValueError/TypeError 例外。
新增 pg_set_error_context_visibility 以設定錯誤訊息中 context 的可見性。
Phar
修正 phar_rename_archive() 中的記憶體洩漏。
POSIX
新增 posix_sysconf。
新增 posix_pathconf。
新增 posix_fpathconf。
修正 zend_parse_arg_long 的布林指標引數賦值。
新增 posix_eaccess。
Random
新增 Randomizer::getBytesFromString()。
新增 Randomizer::nextFloat()、::getFloat() 和 IntervalBoundary。
為 NetBSD (10.x 起) 啟用 getrandom()。
棄用 MT_RAND_PHP。
修正 Randomizer::getFloat() 在某些情況下返回不正確結果的問題。
Reflection
修正
GH-9470
(ReflectionMethod 建構子不應找到私有父類方法)。
修正
GH-10259
(ReflectionClass::getStaticProperties 不需要 null 返回型別)。
SAPI
修正
GH-11141
(無法開啟輸入檔案:應傳送到 stderr)。
Session
修正錯誤
GH-11529
(處理 Apache 請求後發生崩潰)。
SimpleXML
修正錯誤
GH-12192
(在 foreach 中呼叫 getName() 時,SimpleXML 會產生無限迴圈)。
修正錯誤
GH-12208
(在 foreach 中使用型別轉換時,SimpleXML 會產生無限迴圈)。
修正錯誤
#55098
(SimpleXML 迭代會產生無限迴圈)。
Sockets
新增 SO_ATTACH_REUSEPORT_CBPF socket 選項,以便更嚴格地控制 CPU 核心的 socket 繫結。
為 cbpf 過濾器新增 SKF_AD_QUEUE。
如果 send/recv 需要使用 MSG_OOB,則新增 socket_atmark。
新增 TCP_QUICKACK 常數,以便更嚴格地控制 ACK 延遲。
為路徑 MTU 探索目的新增 DONTFRAGMENT 支援。
為 divert 連接埠的原始 socket 新增 AF_DIVERT。
為 updlite 協定支援新增 SOL_UPDLITE、UDPLITE_RECV_CSCOV 和 UDPLITE_SEND_CSCOV。
新增 SO_RERROR、SO_ZEROIZE 和 SO_SPLICE netbsd 和 openbsd 常數。
新增 TCP_REPAIR 以靜默關閉連線。
新增 SO_REUSEPORT_LB freebsd 常數。
新增 IP_BIND_ADDRESS_NO_PORT。
SPL
修正
GH-11573
(RecursiveDirectoryIterator::hasChildren 速度很慢)。
Standard
unserialize() 發出的 E_NOTICE 已提升為 E_WARNING。
如果輸入包含未使用的位元組,unserialize() 現在會發出新的 E_WARNING。
使 array_pad 的 $length 警告訊息更不令人困惑。
當開始標記化時,如果未提供這兩個引數,strtok 會發出 E_WARNING。
如果 salt 產生失敗,password_hash() 現在會將原始 RandomException 鏈結到 ValueError。
修正
GH-10239
(proc_get_status 之後的 proc_close 總是返回 -1)。
改善 unpack() 在未提供足夠值時的警告訊息。
修正
GH-11010
(當指定 INI_SCANNER_TYPED 旗標時,parse_ini_string() 現在會保留以數字開頭的未加引號字串的格式)。
修正
GH-10742
(當標頭已傳送時,http_response_code 不會發出錯誤)。
在 number_format() 中新增對負數位置四捨五入的支援。
防止在 number_format() 中格式化十進位整數時發生精確度損失。
新增在作業系統支援時,為 proc_open 使用 posix_spawn。
為 strrchr() 新增 $before_needle 引數。
修正
GH-11982
(str_getcsv 為未終止的封閉符號返回空位元組)。
修正 "1" 上的 str_decrement()。
Streams
修正錯誤
#51056
:即使有資料可用,阻塞的 fread() 仍會阻塞。
新增儲存用於開啟 xport 串流的原始路徑。
實作
GH-8641
(透過 HTTP 永遠不會發出 STREAM_NOTIFY_COMPLETED)。
修正錯誤
GH-10406
(PHP 8.3 上 redis socket 連線上的 fgets 失敗)。
實作
GH-11242
(_php_stream_copy_to_mem:允許指定最大長度,而不分配該大小的緩衝區)。
修正錯誤
#52335
(記憶體串流上的 fseek() 行為與檔案不同)。
修正錯誤
#76857
(可以讀取「不存在」的檔案)。
XSLTProcessor
修正錯誤
#69168
(DomNode::getNodePath() 返回無效路徑)。
ZIP
libzip 1.10.0 的 zip 擴充功能版本 1.22.0。
新增新的錯誤巨集 (ER_DATA_LENGTH 和 ER_NOT_ALLOWED)。
新增新的封存全域旗標 (ER_AFL_*)。
新增 ZipArchive::setArchiveFlag 和 ZipArchive::getArchiveFlag 方法。
版本 8.2.26
2024 年 11 月 21 日
CLI
修正錯誤
GH-16373
(在透過 shebang 啟動的 cli-server 中,不會略過路由器指令碼的 shebang)。
修正錯誤
GHSA-4w77-75f9-2c8w
(CLI SAPI 介面中 sapi_read_post_data 處理的堆積使用後釋放)。
COM
修正對 SafeArray 資料的超出範圍寫入。
核心
修正錯誤
GH-16168
(在 macOS 15 上使用 Xcode 16 clang 編譯時,php 8.1 和更早版本會立即崩潰)。
修正錯誤
GH-16371
(在 Zend/zend_weakrefs.c:646 中發生判斷提示失敗)。
修正錯誤
GH-16515
(呼叫跳板時,ZEND_ACC_RETURN_REFERENCE 的傳播不正確)。
修正錯誤
GH-16509
(函數重新宣告錯誤中的行號不正確)。
修正錯誤
GH-16508
(延遲早期繫結類別的繼承錯誤中的行號不正確)。
修正錯誤
GH-16648
(陣列排序期間的釋放後使用)。
Curl
修正錯誤
GH-16302
(如果 curl_multi_add_handle 失敗,CurlMultiHandle 會保留對 CurlHandle 的參考)。
Date
修正錯誤
GH-16454
(在 $utcOffset 很小的情況下,date_sunset() 中未處理的 INF)。
修正錯誤
GH-16037
(ext/date/php_date.c 中的斷言失敗)。
修正錯誤
GH-14732
(date_sun_info() 對於非有限值失敗)。
DBA
修正錯誤
GH-16390
(dba_open() 可以在「無路徑」串流中發生區段錯誤)。
DOM
修正了錯誤
GH-16316
(DOMXPath 未正確初始化時會崩潰)。
修正了錯誤
GH-16473
(dom_import_simplexml 存根錯誤)。
修正了錯誤
GH-16533
(當將屬性新增到非元素的父節點時發生 Segfault)。
修正了錯誤
GH-16535
(當使用文件作為子節點時發生 UAF)。
修正了錯誤
GH-16593
(DOM->replaceChild 中的斷言失敗)。
修正了錯誤
GH-16595
(DOM -> cloneNode 中另一個 UAF)。
EXIF
修正了錯誤
GH-16409
(當處理的不是真實檔案時,exif_thumbnail 會發生 Segfault)。
FFI
修正了錯誤
GH-16397
(比較 FFI 物件時發生 Segmentation fault)。
Filter
修正了錯誤
GH-16523
(FILTER_FLAG_HOSTNAME 接受結尾的連字符號)。
FPM
修正了錯誤
GH-16628
(FPM 記錄檔因這個記錄陳述而損毀)。
GD
修正了錯誤
GH-16334
(矩陣元素上的 imageaffine 溢位)。
修正了錯誤
GH-16427
(未檢查的 libavif 回傳值)。
修正了錯誤
GH-16559
(ext/gd/libgd/gd_interpolation.c:1007 中的 UBSan 中止)。
GMP
修正了使用大型指數值時,gmp_pow 造成的浮點數異常錯誤。(David Carlier)。
修正了錯誤
GH-16411
(gmp_export() 可能導致溢位)。
修正了錯誤
GH-16501
(gmp_random_bits() 可能導致溢位)。
修正了具有大型基數/指數的 gmp_pow() 溢位錯誤。
修正了與 GMP 物件運算符多載相關的 Segfault 和其他問題。
LDAP
修正了錯誤
GHSA-g665-fm4p-vhff
(ldap_escape 中的 OOB 存取)。 (CVE-2024-8932)
MBstring
修正了錯誤
GH-16361
(mb_substr 在 start/length 參數上的溢位)。
MySQLnd
修正了錯誤
GHSA-h35g-vwh6-m678
(透過堆積緩衝區過度讀取洩漏堆積的部分內容)。 (CVE-2024-8929)
OpenSSL
修正了錯誤
GH-16357
(openssl 可能會修改憑證陣列的成員類型)。
修正了錯誤
GH-16433
(openssl_csr_sign() $days 的大型值溢位)。
修正了 openssl_x509_parse() 中錯誤條件下的各種記憶體洩漏。
PDO DBLIB
修正了錯誤
GHSA-5hqh-c84r-qjcv
(dblib 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
PDO Firebird
修正了錯誤
GHSA-5hqh-c84r-qjcv
(firebird 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
PDO ODBC
修正了錯誤
GH-16450
(PDO_ODBC 可以將垃圾資料注入欄位值)。
Phar
修正了錯誤
GH-16406
(ext/phar/phar.c:2808 中的斷言失敗)。
PHPDBG
修正了錯誤
GH-16174
(空字串對 ev 而言是無效的表達式)。
Reflection
修正了錯誤
GH-16601
(Reflection 建構函式中的記憶體洩漏)。
Session
修正了錯誤
GH-16385
(session_set_cookie_params 回傳非預期的 null)。
修正了錯誤
GH-16290
(cookie_lifetime ini 值溢位)。
SOAP
修正了錯誤
GH-16429
(在 SoapClient 中存取空指標時發生 Segmentation fault)。
Sockets
修正了 socket_recvfrom $length 參數的溢位錯誤。
SPL
修正了錯誤
GH-16337
(SplHeap 中的 use-after-free)。
修正了錯誤
GH-16464
(SplDoublyLinkedList::offsetSet() 中的 use-after-free)。
修正了錯誤
GH-16479
(SplObjectStorage::setInfo() 中的 use-after-free)。
修正了錯誤
GH-16478
(SplFixedArray::unset() 中的 use-after-free)。
修正了錯誤
GH-16588
(Observer->serialize 中的 UAF)。
修正了
GH-16477
(在 SplFileObject::__constructor 失敗後呼叫 __debugInfo() 時發生 Segmentation fault)。
修正了錯誤
GH-16589
(SplDoublyLinked->serialize() 中的 UAF)。
修正了錯誤
GH-14687
(SplObjectIterator 實例上的 segfault)。
修正了錯誤
GH-16604
(SPL 建構函式中的記憶體洩漏)。
修正了錯誤
GH-16646
(ArrayObject::unset() 和 ArrayObject::exchangeArray() 中的 UAF)。
Standard
修正了錯誤
GH-16293
(在啟用 bail 的情況下,於 assert() 回呼中拋出例外時發生斷言失敗)。
Streams
修正了錯誤
GHSA-c5f2-jwm7-mmq2
(在 stream 上下文中設定 Proxy 可能允許在 URI 中進行 CRLF 注入)。 (CVE-2024-11234)
修正了錯誤
GHSA-r977-prxv-hc43
(使用 convert.quoted-printable-decode 篩選器進行單一位元組過度讀取)。 (CVE-2024-11233)
SysVMsg
修正了錯誤
GH-16592
(當類型未正確序列化時,msg_send() 會崩潰)。
SysVShm
修正了錯誤
GH-16591
(shm_put_var 中的斷言錯誤)。
XMLReader
修正了錯誤
GH-16292
(ext/xmlreader/php_xmlreader.c 中的 Segmentation fault)。
Zlib
修正了錯誤
GH-16326
(不良字典的記憶體管理已損壞。) (cmb)
版本 8.2.25
2024 年 10 月 24 日
Calendar
修正了
GH-16240
:jdtounix 在引數值上的溢位。
修正了
GH-16241
:easter_days/easter_date 在年份引數上的溢位。
修正了
GH-16263
:jddayofweek 溢位。
修正了
GH-16234
:jewishtojd 溢位。
CLI
修正了錯誤
GH-16137
:用戶端多次設定時出現重複的 HTTP 標頭。
核心
修正錯誤
GH-15712
:在大型值上設定精確度 INI 時,zend_strtod 會溢位。
修正了錯誤
GH-15905
(TRACK_VARS_SERVER 的斷言失敗)。
修正了錯誤
GH-15907
(當將 Serialize 棄用升級為例外時發生斷言失敗)。
修正了錯誤
GH-15851
(在清理巢狀產生器框架期間列印回溯追蹤時發生 Segfault)。
修正了錯誤
GH-15866
(Zend/zend_generators.c 中發生核心傾印)。
修正了錯誤
GH-16188
(Zend/zend_exceptions.c 中的斷言失敗)。
修正了錯誤
GH-16233
(透過 trampoline 在內部函式中呼叫使用者函式時發生 Observer segfault)。
Date
修正錯誤
GH-15582
:未呼叫 DateTimeZone 的父類建構子時發生崩潰。
修正使用 DateTimeInterface::modify() 函式時,在剖析帶正負號的整數時,忽略第一個正負號之後的符號的迴歸錯誤。
DOM
修正了錯誤
GH-16039
(ext/dom/parentnode/tree.c 中發生 Segmentation fault (存取空指標))。
修正了錯誤
GH-16151
(ext/dom/parentnode/tree.c 中的斷言失敗)。
GD
修正了錯誤
GH-16232
(讀取 wbmp 檔案內容時發生位元移位溢位/修正上游的回溯移植)。
修正了錯誤
GH-12264
(imagerotate 度數值的溢位/下溢) (David Carlier)
修正了錯誤
GH-16274
(imagescale 在 RBG 通道上的下溢/修正上游的回溯移植)。
LDAP
修正了錯誤
GH-16032
(ldap_modify_batch() 中的各種 NULL 指標取值)。
修正了錯誤
GH-16101
(當 LDAPs 陣列不是清單時,ldap_list()、ldap_read() 和 ldap_search() 中發生 Segfault)。
修正了
GH-16132
(php_ldap_do_modify() 嘗試釋放非 ZMM 配置的指標)。
修正了
GH-16136
(當條目不是正確的字典時,php_ldap_do_modify() 中的記憶體洩漏)。
MBString
修正了錯誤
GH-16261
(mb_convert_variables() 中斷的參考不變量)。
OpenSSL
修正了 openssl_csr_new 的存根。
PCRE
修正了錯誤
GH-16189
(offset 引數上的下溢)。
修正了錯誤
GH-16184
(ext/pcre/php_pcre.c 中溢位的 UBSan 位址)。
PHPDBG
修正了錯誤
GH-15901
(phpdbg:i 函式上的斷言失敗)。
修正了錯誤
GH-16181
(phpdbg:例外處理常式中的 exit 會報告致命錯誤)。
Reflection
修正了錯誤
GH-16187
(ext/reflection/php_reflection.c 中的斷言失敗)。
SAPI
修正了錯誤
GH-15395
(php-fpm:zend_mm_heap 因 cgi-fcgi 要求而損毀)。
SimpleXML
修正了錯誤
GH-15837
(ext/simplexml/simplexml.c 中的 Segmentation fault)。
Sockets
修正了錯誤
GH-16267
(socket_strerror 在 errno 引數上的溢位)。
SOAP
修正了錯誤
#62900
(xsd 匯入錯誤訊息上的錯誤命名空間)。
修正了錯誤
GH-16237
(在複製 SoapServer 時發生 Segmentation fault)。
修正了 Soap 在錯誤時洩漏 http_msg 的問題。
修正了錯誤
GH-16256
(ext/soap/php_encoding.c:460 中的斷言失敗)。
修正了錯誤
GH-16259
(當 classmap 實例化失敗時,Soap 發生 segfault)。
Standard
修正錯誤
GH-15613
(unpack 呼叫十六進位字串重複器時發生溢位)。
修正錯誤
GH-15937
(串流逾時選項值發生溢位)。
修正了錯誤
GH-16053
(Zend/zend_hash.c 中的斷言失敗)。
Streams
修正了錯誤
GH-15908
和
GH-15026
(streams.c 中的洩漏/斷言失敗)。
修正了錯誤
GH-15980
(main/streams/streams.c 中的帶號整數溢位)。
TSRM
防止關閉不相關的控制代碼。
XML
修正錯誤
GH-15868
(發生例外後,xml_parse_into_struct 中的斷言失敗)。
版本 8.2.24
2024 年 9 月 26 日
CGI
修正錯誤 GHSA-p99j-rfp4-xqvq (繞過 CVE-2024-4577,參數注入漏洞)。(CVE-2024-8926)
修正錯誤 GHSA-94p6-54jq-9mwp (由於環境變數衝突,可以繞過 cgi.force_redirect 設定)。(CVE-2024-8927)
核心
修正了錯誤
GH-15408
(zend_max_execution_timer 上的 MSan 誤報)。
修正了錯誤
GH-15515
(Configure 錯誤 grep 非法選項 q)。
修正了錯誤
GH-15514
(Configure 錯誤:genif.sh:語法錯誤)。
修正了錯誤
GH-15565
(編譯期間 --disable-ipv6 產生錯誤 EAI_SYSTEM not found)。
修正了錯誤
GH-15587
(在 arm 32 位元上發生 CRC32 API 建置錯誤)。
修正了錯誤
GH-15330
(不要掃描產生器框架超過一次)。
修正了內部列舉常數 AST 中未初始化的 lineno。
Curl
修正了錯誤
GH-15547
(curl_multi_select 在 timeout 引數上的溢位)。
DOM
修正了錯誤
GH-15551
(ext/dom/xml_common.h 中發生 Segmentation fault (存取空指標))。
Fileinfo
修正了錯誤
GH-15752
(使用空檔名引數呼叫 finfo_file 的錯誤訊息不正確)。
FPM
修正錯誤 GHSA-865w-9rf3-2wh5 (可以變更子進程的記錄)。(CVE-2024-9026)
MySQLnd
修正了錯誤
GH-15432
(查詢向量時發生堆積損壞)。
Opcache
修正了錯誤
GH-15661
(存取 Zend/Optimizer/zend_inference.c 中的空指標)。
修正了錯誤
GH-15658
(Zend/zend_vm_execute.h 中發生區段錯誤)。
SAPI
修正錯誤 GHSA-9pqp-7h25-4f32 (多部分表單資料的錯誤剖析)。(CVE-2024-8925)
SOAP
修正了錯誤
#73182
(PHP SOAPClient 不支援陣列形式的 stream 上下文 HTTP 標頭)。
Standard
修正了錯誤
GH-15552
(ext/standard/scanf.c 中帶號整數溢位)。
Streams
修正了錯誤
GH-15628
(php_stream_memory_get_buffer() 未以零結尾)。
版本 8.2.23
2024 年 8 月 29 日
核心
修正了錯誤
GH-15020
(Zend/Optimizer/escape_analysis.c 中的記憶體洩漏)。
修正了錯誤
GH-15023
(Zend/zend_ini.c 中的記憶體洩漏)。
修正了錯誤
GH-13330
(有條件地附加 -Wno-implicit-fallthrough 旗標)。
修正在 network.c 中未初始化的記憶體。
修正了錯誤
GH-15108
(關閉期間銷毀產生器時發生區段錯誤)。
修正了錯誤
GH-15275
(暫停產生器委派的 GC 期間發生崩潰)。
Curl
修正了 curl_error 傳回空字串的情況。
DOM
修正了在移除 doctype 並使用 foreach 迭代時發生的 UAF。
FFI
修正了錯誤
GH-14286
(ffi 列舉型別 (當列舉沒有名稱時) 造成記憶體洩漏)。
Hash
修正在 xxh3 中轉換 shm 中的陣列資料時發生崩潰。
Intl
修正了錯誤
GH-15087
(IntlChar::foldCase() 的 $option 不是可選的)。
Opcache
修正了錯誤
GH-13817
(在第 4 次傳遞後為已啟用觀察器時發生區段錯誤)。
修正了錯誤
GH-13775
(可能與 opcache SHM 位置相關的記憶體洩漏)。
Output
修正了錯誤
GH-15179
(ext/standard/url_scanner_ex.re 中發生區段錯誤 (空指標取消引用))。
PDO_Firebird
修正了 firebird_handle_get_attribute() 中的虛假 fallthrough 路徑。
PHPDBG
修正了錯誤
GH-13199
(使用 libedit/readline 時,phpdbg 本機主控台模式中 EOF 發出多餘的提示)。
修正了錯誤
GH-15268
(phpdbg 中堆積緩衝區溢位 (zend_hash_num_elements() Zend/zend_hash.h))。
修正了錯誤
GH-15210
(在觀察點配置上使用後釋放)。
Soap
修正了錯誤
#55639
(Digest 驗證無法運作)。
修正 SoapFault 屬性銷毀。
修正了錯誤
GH-15252
(自 PHP 8.3.9 起,使用 classmap 建構子選項時,SOAP XML 損毀)。
Standard
修正了在 stream 函式中傳遞非有限逾時值。
修正了
GH-14780
p(f)sockopen 逾時溢位。
Streams
修正了錯誤
GH-15028
(ext/phar/stream.c 中的記憶體洩漏)。
修正了錯誤
GH-15034
(檔案大於 2GB 時,stream_notification_callback byte_max 參數上的整數溢位)。
Tidy
修正 ext/tidy basedir 限制程式碼中的記憶體洩漏。
版本 8.2.22
2024 年 8 月 1 日
核心
修正了錯誤
GH-13922
(修正 sysconf(_SC_GETPW_R_SIZE_MAX) == -1 的系統支援)。
修正了錯誤
GH-14626
(修正大型區塊的 is_zend_ptr())。
修正了錯誤
GH-14590
(FPM 測試 gh13563-conf-bool-env.phpt 中的記憶體洩漏)。
修正了 OSS-Fuzz #69765。
修正了錯誤
GH-14741
(Zend/zend_types.h 中的區段錯誤)。
修正了錯誤
GH-14969
(使用 __toString() 的屬性強制轉換中發生使用後釋放)。
Dom
修正了錯誤
GH-14702
(DOMDocument::xinclude() 崩潰)。
Gd
ext/gd/tests/gh10614.phpt:如果沒有 PNG 支援,則跳過。
恢復警告而不是致命錯誤。
LibXML
修正了錯誤
GH-14563
(使用 libxml2 v2.13.0 時建置失敗)。
Opcache
修正了錯誤
GH-14550
(當啟用 Zend DTrace 時,沒有警告訊息指出 opcache.jit 被隱式停用)。
Output
修正了錯誤
GH-14808
(Zend/zend_string.h 中,使用空的輸出緩衝區時發生意外的空指標)。
PDO
修正了錯誤
GH-14712
(使用 PDORow 存取空屬性時發生崩潰)。
Phar
修正了錯誤
GH-14603
(zip 條目中的空字串)。
PHPDBG
修正了錯誤
GH-14596
(使用 ASAN 和 ZEND_RC_DEBUG=1 時發生崩潰)。
修正了錯誤
GH-14553
(echo 輸出在 NULL 位元組處被截斷)。
Shmop
修正了錯誤
GH-14537
(shmop Windows 11 造成處理程序崩潰)。
SimpleXML
修正錯誤
GH-14638
(XML 剖析失敗後發生的 null 取值)。
SPL
修正了錯誤
GH-14639
(ext/spl/spl_observer.c 中空指標內的成員存取)。
Standard
修正了 32 位元 wordwrap 測試失敗。
修正了錯誤
GH-14774
(time_sleep_until 溢位)。
Tidy
修正了 tidy_repair_file() 中的記憶體洩漏。
Treewide
修正了與 libxml2 2.13.2 的相容性。
XML
從即將被棄用的 libxml 欄位移開。
修正了錯誤
GH-14834
(使用 --with-pear 時安裝 PHP 時發生錯誤)。
版本 8.2.21
2024 年 7 月 4 日
核心
修正了錯誤
GH-14315
(不相容的指標型別警告)。
修正了錯誤
GH-12814
(在 Apple Silicon 上執行時,macOS 14 上太早達到 max_execution_time)。
修正了錯誤
GH-14387
(在 Generator->throw() 期間,從值中產生值的解構函式中進行堆疊走訪時發生崩潰)。
修正了錯誤
GH-14456
(嘗試使用私有建構子初始化類別會呼叫解構函式)。
修正了錯誤
GH-14549
(fclose 的不相容函式指標型別)。
BCMatch
修正了錯誤 (當 mod = -1 時,bcpowmod() 傳回 1,而必須是 0)。
Curl
修正了錯誤
GH-14307
(測試 curl_basic_024 在 curl 8.8.0 中失敗)。
DOM
修正了錯誤
GH-14343
(xml 和 dom 中的記憶體洩漏)。
FPM
修正了錯誤
GH-14037
(PHP-FPM ping.path 和 ping.response 設定變數在狀態池中被忽略)。
GD
修正了 imagecolorset() 的參數編號。
Intl
修正了 SpoofChecker 中的參考處理。
MySQLnd
部分修正了錯誤
GH-10599
(當在具有作用中 mysqli 連線的類別中使用自參考匿名函式時,Windows 上發生 Apache 崩潰)。
Opcache
修正了錯誤
GH-14267
(opcache.jit=off 不允許在執行階段啟用 JIT)。
修正了 FreeBSD/amd64 上 JIT 中的 TLS 存取。
修正了錯誤
GH-11188
(在 ARM64 中建置 TSRM 時發生錯誤)。
PDO ODBC
修正了錯誤
GH-14367
(與 iODBC 不相容的 SDWORD 型別)。
PHPDBG
修正了錯誤
GH-13681
(在新增觀察點失敗時發生區段錯誤)。
Soap
修正了錯誤
#47925
(PHPClient 無法解壓縮回應)。
修正了遺失的錯誤還原程式碼。
修正了呼叫 SoapServer::setObject() 兩次時的記憶體洩漏。
修正了呼叫 SoapServer::setClass() 兩次時的記憶體洩漏。
修正了在 ext-soap 中讀取 zlib ini 設定。
修正了字串函式名稱查閱中的記憶體洩漏。
修正了錯誤
#69280
(SoapClient classmap 不支援完整限定類別名稱)。
修正了錯誤
#76232
(SoapClient Cookie 標頭分號)。
修正了呼叫 SoapFault::__construct() 兩次時的記憶體洩漏。
Sodium
修正了在某些函式失敗時,ext/sodium 中的記憶體洩漏。
SPL
修正了錯誤
GH-14290
(擴充功能 spl 中空指標內的成員存取)。
Standard
修正了錯誤
GH-14483
(修正了檢查抽象命名空間 Unix socket 長度的 off-by-one 錯誤)。
Streams
修正了錯誤
GH-11078
(PHP 嚴重錯誤會觸發指標被釋放但未配置的錯誤,以及 ptr 的 malloc:雙重釋放錯誤)。
版本 8.2.20
2024 年 6 月 6 日
CGI
修正了 Windows 上的緩衝區限制,將讀取呼叫的使用取代為 _read。
修正了錯誤 GHSA-3qgc-jrrr-25jv (繞過 CVE-2012-1823,PHP-CGI 中的引數注入)。 (CVE-2024-4577)
CLI
修正了錯誤
GH-14189
(PHP 互動式 Shell 輸入狀態錯誤地處理引用的 heredoc 字面值)。
核心
修正了錯誤
GH-13970
(對於非編譯時期運算式,#[Attribute] 旗標型別的驗證不正確)。
修正錯誤
GH-14140
(Apple Silicon 硬體上範圍運算的浮點數錯誤)。
DOM
修正了在移除實體宣告時,仍然有實體參考時發生的崩潰。
修正了在 C14N 中未正確處理的參考。
修正了在迭代器耗盡時呼叫 childNodes next() 時發生的崩潰。
修正了在處理包含文字節點的片段時,ParentNode::append() 中的崩潰。
FFI
修正錯誤
GH-14215
(無法在 apache2handler 上使用 CRLF 標頭檔案的 FFI::load)。
Filter
修正了錯誤 GHSA-w8qr-v226-r27w (filter_var FILTER_VALIDATE_URL 中的篩選器繞過)。 (CVE-2024-5458)
FPM
修正了錯誤
GH-14175
(在 systemd 狀態中顯示十進位數字而不是科學符號)。
Hash
ext/hash:交換 `__has_builtin` 和 `__GNUC__` 的檢查順序 (Saki Takamachi)
Intl
修正了在沒有 C++17 編譯器的系統上發生的建置迴歸。
Ini
修正錯誤
GH-14100
(修正 php.ini 檔案中的拼寫錯誤)。
MySQLnd
修正了錯誤
GH-14255
(mysqli_fetch_assoc 回報來自巢狀查詢的錯誤)。
Opcache
修正了錯誤
GH-14109
(修正了 shm 中意外持續存在的內部類別常數)。
OpenSSL
PHP 中的 openssl_private_decrypt 函式,當使用 PKCS1 填補時 (OPENSSL_PKCS1_PADDING,這是預設值),除非它與包含此提取要求變更的 OpenSSL 版本一起使用:https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection),否則容易受到 Marvin 攻擊。這些變更屬於 OpenSSL 3.2 的一部分,並且也已向後移植到各種 Linux 發行版的穩定版本,以及自上次發佈以來為 Windows 提供的 PHP 建置版本。所有發行者和建置者都應確保使用此版本以防止 PHP 容易受到攻擊。
Standard
修正了錯誤 GHSA-9fcc-425m-g385 (繞過 CVE-2024-1874)。 (CVE-2024-5585)
XML
修正了錯誤
GH-14124
(在特定記憶體限制下,XML 擴充功能發生區段錯誤)。
XMLReader
修正了錯誤
GH-14183
(XMLReader::open() 無法覆寫)。
版本 8.2.19
2024 年 5 月 9 日
核心
修正了錯誤
GH-13772
(當啟用 JIT 時,觀察器 fcall 處理程式中的 execute_data->opline 指標無效)。
修正錯誤
GH-13931
(在 Zend/zend_opcode.c 中對空指標應用零偏移)。
修正錯誤
GH-13942
(使 zend-max-execution-timers 的行為與其他逾時實作一致)。
修正錯誤
GH-14003
(使用可呼叫轉換參數時,未完成呼叫的清理中斷)。
修正錯誤
GH-14013
(在 configure 中附加錯誤的 dnl)。
修正錯誤
GH-10232
(如果在常數解析期間發生自動載入,則檔案名稱和行號會被錯誤地識別)。
修正錯誤
GH-13727
(缺少 void 關鍵字)。
纖程
修正錯誤
GH-13903
(執行 copy() 時,ASAN 誤報下溢)。
FPM
修正錯誤
GH-13563
(在 FPM 設定中透過 env 設定布林值失敗)。
Intl
修正 icu 74 及更高版本的建置。
MySQLnd
修正 32 位元非快速路徑平台上超出範圍的位移。
Opcache
修正跨編譯單元的靜態呼叫的不正確假設。
OpenSSL
修正錯誤
GH-10495
(OpenSSL 串流上的 feof 無限期掛起)。
PDO SQLite
修正
GH-13984
(現在在 memcmp 之前會檢查緩衝區大小)。
修正
GH-13998
(正確管理 agg_context->val 的參考計數)。
Phar
修正錯誤
GH-13836
(將 Phar 中的檔案重新命名為已存在的檔案名稱會導致 NULL 指標解引用)。
修正錯誤
GH-13833
(在 zend_hash.c 中對空指標應用零偏移)。
修正在呼叫 EVP_SignInit 之前的潛在 NULL 指標解引用。
PHPDBG
修正錯誤
GH-13827
(phpdbg_frame 中 'zval' 類型的空指標存取)。
Posix
修正 ext/posix 中可重入函數的使用。
Session
修正錯誤
GH-13856
(在 ext/session/mod_files.c 中,'ps_files' 類型的空指標內的成員存取)。
修正錯誤
GH-13891
(使用 ini_set 和 session.trans_sid_hosts 時的記憶體洩漏和分段錯誤)。
修正在 windows 上檔案模式的緩衝區 _read/_write 大小限制。
Streams
修正 Windows 上 file_get_contents() 失敗,並顯示「errno=22 無效參數」的問題。
修正錯誤
GH-13264
(第 1 部分 - 串流篩選失敗時的記憶體洩漏)。
修正錯誤
GH-13860
(ext/openssl/xp_ssl.c 中不正確的 PHP_STREAM_OPTION_CHECK_LIVENESS 情況 - 導致使用已失效的 Socket)。
修正錯誤
GH-11678
(在 musl 1.2.4 上建置失敗 - lfs64)。
Treewide
修正 gcc-14 Wcalloc-transposed-args 警告。
版本 8.2.18
2024 年 4 月 11 日
核心
修正錯誤
GH-13612
(具有弱參考的解構函數中的損毀記憶體)。
修正錯誤
GH-13784
(AX_GCC_FUNC_ATTRIBUTE 失敗)。
修正錯誤
GH-13670
(當解構函數中建立大量物件時,GC 無法良好擴展)。
DOM
新增一些遺失的 ZPP 檢查。
修正 XPath 評估結果中潛在的記憶體洩漏。
修正 DOMDocument load 方法的 phpdoc。
FPM
修正 fpm_shm_free() 中不正確的檢查。
GD
修正錯誤
GH-12019
(在功能測試中新增 GDLIB_CFLAGS)。
Gettext
修正當 gettext 0.22.5 的類別設定為 LC_ALL 時,使用 dcgettext/dcngettext 呼叫引發的 sigabrt。
MySQLnd
修正
GH-13452
(修正交握回應 [mysqlnd])。
修正 check_mb_eucjpms() 中不正確的字元集長度。
Opcache
修正
GH-13508
(當 op1 為 null 時,JIT 編譯的 QM_ASSIGN 可能會被最佳化掉)。
修正
GH-13712
(當載入 opcache 時,呼叫內部 trait 的 trait 方法時,已啟用觀察器會發生分段錯誤)。
PDO
修正各種 PDORow 錯誤。
Random
修正錯誤
GH-13544
(針對具有未知模式的 mt_srand 的 Pre-PHP 8.2 相容性)。
修正錯誤
GH-13690
(當使用 MT_RAND_PHP 時,請求之間未正確重設全域 Mt19937)。
Session
修正錯誤
GH-13680
(session_decode 和編譯錯誤的分段錯誤)。
Sockets
修正錯誤
GH-13604
(socket_getsockname 在 socket 名稱結尾返回隨機字元)。
SPL
修正錯誤
GH-13531
(在 PHP 8.2.15 中取消序列化後,無法調整 SplfixedArray 的大小)。
修正錯誤
GH-13685
(zend_string.h 中出現非預期的空指標)。
Standard
修正錯誤
GH-11808
(測試修改的即時檔案系統)。
修正
GH-13402
(在 mail() 的 $additional_headers 中新增 `\n` 的驗證)。
修正錯誤
GH-13203
(在 Windows 上,file_put_contents 在超過 4GB 的字串上失敗)。
修正錯誤 GHSA-pc52-254m-w9w7 (透過 proc_open 的陣列式 $command 參數進行命令注入)。(CVE-2024-1874)
修正錯誤 GHSA-wpj3-hf5j-x4v4 (由於部分 CVE-2022-31629 修復,__Host-/__Secure- Cookie 繞過)。(CVE-2024-2756)
修正錯誤 GHSA-h746-cjrr-wfmr (password_verify 可能會錯誤地傳回 true,開啟 ATO 風險)。(CVE-2024-3096)
XML
修正錯誤
GH-13517
(使用 --with-expat 建置時,多個測試失敗)。
版本 8.2.17
2024 年 3 月 14 日
核心
修正在關閉時 ZTS 持久資源崩潰的問題。
Curl
修正由於 libcurl 8.6.0 中的字串變更而導致的測試失敗。
DOM
修正 DOMNodeList 和 DOMNodeMap 維度中的參考存取。
Fileinfo
修正錯誤
GH-13344
(finfo::buffer(): 無法識別資料 0:(null),回溯)。
FPM
修正錯誤
#75712
(php-fpm 中的 getenv 不應讀取 $_ENV, $_SERVER)。
GD
修正錯誤
GH-12019
(在系統 gd 函式庫中偵測影像格式)。
MySQLnd
修正錯誤
GH-11950
([mysqlnd] 如果已設定 CR_SERVER_GONE_ERROR,則修正為不將 CR_MALFORMED_PACKET 設定為錯誤)。
PGSQL
修正錯誤
GH-13354
(pg_execute/pg_send_query_params/pg_send_execute 透過引用傳遞 null 值)。
Standard
修正第二個運算元緩衝區大小(雖然目前未使用)的陣列鍵作為雜湊到字串(不區分大小寫)比較中的錯字。
版本 8.2.16
2024 年 2 月 15 日
核心
修正 zend-max-execution-timers 建置中的計時器洩漏。
修正錯誤
GH-12349
(在 ARM 上使用 mold 時的連結失敗)。
修正錯誤
GH-13097
(在 trigger_error / 拋出例外中匿名類別參考)。
修正錯誤
GH-13215
(GCC 14 建置失敗)。
Curl
修正 curl_multi_init() 中遺失的錯誤檢查。
FPM
修正錯誤
GH-12996
(當路徑中有加號時,使用 Apache ProxyPassMatch 的不正確 SCRIPT_NAME)。
GD
修正錯誤
GH-10344
(imagettfbbox(): 無法找到/開啟字型 UNC 路徑)。
修正錯誤
GH-10614
(當旋轉 90 度時,imagerotate 會將圖片全部變黑)。
MySQLnd
修正錯誤
GH-12107
(當執行兩次傳回結果集的預存程序時,PHP 會崩潰)。
Opcache
修正錯誤
GH-13232
(當 JIT 關閉但 JIT_debug 仍開啟時,將會報告分段錯誤)。
OpenSSL
修正在未設定 OPENSSL_NO_ENGINE 時,LibreSSL 未定義參考的問題。(David Carlier)。
PDO_Firebird
修正
GH-13119
(已變更為使用 `H` 格式將浮點數和雙精度值轉換為字串)。
Phar
修正錯誤
#71465
(PHAR 不知道 litespeed)。
修正錯誤
GH-13037
(PharData 錯誤地解壓縮 zip 檔案)。
Random
修正錯誤
GH-13138
(Randomizer::pickArrayKeys() 未偵測到損壞的引擎)。
Session
修正錯誤
GH-12504
(當自動載入器中發生嚴重錯誤時,會寫入損毀的 session)。
Streams
修正錯誤
GH-13071
(使用可 mmap 的來源串流複製大型檔案可能會耗盡可用記憶體並失敗)。
版本 8.2.15
2024 年 1 月 18 日
核心
修正錯誤
GH-12953
(當載入具有超過 11k 個元素的 composer classmaps 時,SSA 完整性驗證失敗的誤報)。
修正錯誤
GH-12966
(缺少交叉編譯的第三個引數,因此 Autoconf 不會發出警告)。
Cli
修正當使用路由器指令碼和 max_input_time 時,內建網路伺服器中的不正確逾時。
FFI
修正錯誤
GH-9698
(stream_wrapper_register 會在 FFI\CData 中崩潰)。
修正錯誤
GH-12905
(FFI::new 與觀察者互動不佳)。
Intl
修正
GH-12943
(IntlDateFormatter::__construct 接受 'C' 作為有效地區設定)。
Hash
修正錯誤
GH-12936
(如果使用 sha512 處理 >= 4GiB 的字串,hash() 函數會無限期掛起)。
ODBC
修正具有持續連線時,Apache 關閉時的崩潰。
Opcache
修正 oss-fuzz #64727 (當 DIM 與結果變數相同時,JIT 未定義的陣列鍵警告可能會使用 NULL 覆寫 DIM)。
新增針對 SELinux mprotect execheap 問題的解決方案。請參閱 https://bugzilla.kernel.org/show_bug.cgi?id=218258。
OpenSSL
修正錯誤
GH-12987
(openssl_csr_sign 可能會在錯誤時洩漏新憑證)。
PDO
修正
GH-12969
(修正 PDO::getAttribute() 以取得 PDO::ATTR_STRINGIFY_FETCHES)。
PDO_ODBC
修正錯誤
GH-12767
(無法使用 setAttribute() 開啟自動提交模式)。
PGSQL
修正 auto_reset_persistent 處理和 allow_persistent 類型。
修正錯誤
GH-12974
(當使用 pg_pconnect() 時,Apache 在關閉時崩潰)。
Phar
修正錯誤
#77432
(包含 phar 檔案時的分段錯誤)。
PHPDBG
修正錯誤
GH-12962
(phpdbg_prompt.c 中 init_file 的雙重釋放)。
SimpleXML
修復取得 SimpleXMLElement 未初始化屬性的位址導致崩潰的問題。
Tidy
修正錯誤
GH-12980
(tidynode.props.attribute 缺少「布林屬性」和空屬性)。
版本 8.2.14
2023 年 12 月 21 日
核心
修正 oss-fuzz #54325 (使用惡意錯誤處理常式在變數-變數中釋放名稱後使用)。
修正 oss-fuzz #64209 (在 php_message_handler_for_zend 中就地修改檔案名稱)。
修正錯誤
GH-12758
/
GH-12768
(ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 內的 OOM 處理器中存在無效的 opline)。
修正多個遺失的 NULL 檢查。
修正錯誤
GH-12835
(內部 __call 上的 call->extra_named_params 洩漏)。
Date
修正剖析非常大 (或非常小) 的 Unix 時間戳記時發生的不太可能的整數溢位。
DOM
修正錯誤
GH-12616
(DOM:移除 XMLNS 命名空間節點會產生無效的預設:前綴)。
FPM
修正錯誤
GH-12705
(fpm_status_export_to_zval 中發生分段錯誤)。
FTP
修正錯誤
GH-9348
(FTP 與 SSL 工作階段重複使用)。
Intl
修正錯誤
GH-12635
(使用 ICU 74.1 時,Test bug69398.phpt 失敗)。
LibXML
修正錯誤
GH-12702
(從 src 建置 libxml2 2.12.0 的問題)。
修正 libxml2 2.12.0 的測試失敗。
MySQLnd
避免使用未初始化的結構。
修正錯誤
GH-12791
(MySQLnd 偵錯程式碼中可能對 NULL 進行取值)。
Opcache
修正 JIT 錯誤 (函數 JIT 在發出無效偏移錯誤的同時發出「未初始化的字串偏移」警告)。
修正 JIT 錯誤 (JIT 在擲出錯誤的同時發出「嘗試指派非物件的屬性」警告)。
OpenSSL
修正錯誤
#50713
(openssl_pkcs7_verify() 可能會忽略不受信任的 CA)。
PCRE
修正錯誤
GH-12628
(gh11374 測試在 Alpinelinux 上失敗)。
PDO PGSQL
修正 PDO::pgsqlGetNotify() 中 $fetchMode 的預設值 (kocsismate)
PGSQL
修正錯誤
GH-12763
(pg_untrace 的引數型別錯誤)。
PHPDBG
修正錯誤
GH-12675
(phpdbg_prompt.c 中的 MEMORY_LEAK)。
SOAP
修正錯誤
GH-12838
([SOAP] 未刪除暫時 WSDL 快取檔案)。
SPL
修正錯誤
GH-12721
(SplFileInfo::getFilename() 與 GlobIterator 和無目錄分隔符號組合時發生區段錯誤)。
SQLite3
修正錯誤
GH-12633
(sqlite 3.44.0 時,sqlite3_defensive.phpt 失敗)。
Standard
修正 syslog 裝置處理中的記憶體洩漏。
修正錯誤
GH-12621
(在 vhost 中設定時,browscap 區段錯誤)。
修正錯誤
GH-12655
(proc_open() 不會將描述符陣列中的參考納入考量)。
Streams
修正錯誤
#79945
(imagecreatefrompng 中的串流包裝函式會造成區段錯誤)。
Zip
修正錯誤
GH-12661
(ZipArchive::addGlob remove_path 選項行為中的不一致)。
版本 8.2.13
2023 年 11 月 23 日
核心
修正非保留列舉案例名稱的重複釋放。
修正錯誤
GH-12457
(stripos 使用單一字元針的結果不正確)。
修正錯誤
GH-12468
(透過 trait 覆寫靜態屬性時 doc_comment 重複釋放)。
修正 FFI 物件的弱參考造成的區段錯誤。
修正 max_execution_time:不要刪除未初始化的計時器。
修正錯誤
GH-12558
(如果類別名稱以 N 開頭,Arginfo 使用命名空間類別返回型別時會軟中斷)。
DOM
修正註冊具有抽象類別的 registerNodeClass 時發生崩潰。
新增遺失的 NULL 指標錯誤檢查。
修正 php:function() 回呼的驗證邏輯。
Fiber
修正錯誤
GH-11121
(ReflectionFiber 區段錯誤)。
FPM
修正錯誤
GH-9921
(在 FPM 設定中載入 ext 不會註冊模組處理常式)。
修正錯誤
GH-12232
(FPM:動態載入沒有 opcache 的擴充功能時發生區段錯誤)。
修正錯誤
#76922
(FastCGI 在 FCGI_GET_VALUES 之後終止連線)。
Intl
移除 IntlDateFormatter::construct 在使用無效的地區設定時擲出例外的 BC 中斷。
Opcache
新增無法啟用 JIT 時的警告訊息。
修正錯誤
GH-8143
(由於磁碟快取損毀,升級至 8.1.3 後,zend_accel_inheritance_cache_find 中發生崩潰)。
OpenSSL
修正錯誤
GH-12489
(openssl_cms_verify 中遺失 sigbio 建立檢查)。
PCRE
修正錯誤
GH-11374
(回溯上游修正,使用 -d pcre.jit=0 時,preg_match 結果不同)。
SOAP
修正錯誤
GH-12392
(SoapClient::__getTypes 發生區段錯誤)。
修正錯誤
#66150
(SOAP WSDL 快取競爭條件造成區段錯誤)。
修正錯誤
#67617
(SOAP 在 ENOSPC 時留下不完整的快取檔案)。
修正 SOAP 快取中的 URI 檢查不正確的問題。
修正具有參考計數屬性和陣列時發生的區段錯誤和斷言失敗。
修正在持久編碼器的邊緣案例中可能發生的崩潰。
修正錯誤
#75306
(SoapClient 中的記憶體洩漏)。
Streams
修正錯誤
#75708
(在 StreamWrappers 上使用「&$imageinfo」的 getimagesize 失敗)。
XMLReader
新增遺失的 NULL 指標錯誤檢查。
XMLWriter
新增遺失的 NULL 指標錯誤檢查。
XSL
新增遺失的模組相依性。
修正 php:function() 回呼的驗證邏輯。
版本 8.2.12
2023 年 10 月 26 日
核心
修正錯誤
GH-12207
(類別使用具有 doc 區塊的 trait 時發生記憶體洩漏)。
修正錯誤
GH-12215
(正在覆寫的模組項目會在 ext/dom 中造成型別錯誤)。
修正錯誤
GH-12273
(__builtin_cpu_init 檢查)。
修正錯誤
#80092
(ZTS + preload = 關機時發生區段錯誤)。
CLI
確保存在單一 Date 標頭。
CType
修正了
GH-11997
錯誤 (ctype_alnum 在 PHP 8.1 或更高版本中速度慢 5 倍)。
DOM
恢復舊的命名空間協調行為。
修正了
GH-8996
錯誤 (在 PHP ^8.1 上進行 DOMNode 序列化)。
Fileinfo
修正了
GH-11891
錯誤 (fileinfo 為某些 svg 檔案返回 text/xml)。
Filter
修正了帶有 FILTER_CALLBACK 的明確 FILTER_REQUIRE_SCALAR (ilutov)
Hash
修正了
GH-12186
錯誤 (複製/克隆已最終化的 HashContext 時發生區段錯誤)。
Intl
修正了
GH-12243
錯誤 (在 IntlDateFormatter::construct 上發生區段錯誤)。
修正了
GH-12282
錯誤 (IntlDateFormatter::construct 應該在無效的 locale 上拋出例外)。
MySQLnd
修正了
GH-12297
錯誤 (PHP Startup: 在 Unknown 行中出現無效的函式庫 (可能不是 PHP 函式庫) 'mysqlnd.so')。
Opcache
修正了已刪除檔案上的 opcache_invalidate()。
修正了
GH-12380
錯誤 (JIT+閉包內部的私有陣列屬性存取會存取子類別中的私有屬性)。
PCRE
修正了
GH-11956
錯誤 (回溯上游修正,啟用 JIT 的 PCRE 正規表示式會產生不同的結果)。
SimpleXML
修正了
GH-12170
錯誤 (無法在 SimpleXML 中使用帶有註解的 xpath)。
修正了
GH-12223
錯誤 (實體參照在 var_dump/print_r 中產生無限迴圈)。
修正了
GH-12167
錯誤 (無法在 SimpleXML 中取得處理指令內容)。
修正了
GH-12169
錯誤 (無法在 SimpleXML 中取得註解內容)。
Streams
修正了
GH-12190
錯誤 (以位址和連接埠皆為 0 的方式繫結 ipv4 位址)。
XML
修正了 xml_parse_into_struct() stub 的回傳類型。
修正了兩次呼叫 xml_parse_into_struct() 時的記憶體洩漏。
XSL
修正了帶有 SimpleXML 的 XSLTProcessor::transformToDoc 回傳值的類型錯誤。
版本 8.2.11
2023 年 9 月 28 日
核心
修正了
GH-11937
錯誤 (包含物件的常數 AST)。
修正了
GH-11790
錯誤 (在 riscv64 上,如果實際需要才需要 libatomic)。
修正了
GH-11876
錯誤:ini_parse_quantity() 接受無效的數量。
修正了
GH-12073
錯誤 (釋放未完全初始化的閉包時發生區段錯誤)。
修正了
GH-12060
錯誤 (內部迭代器倒帶處理常式被呼叫兩次)。
修正了
GH-12102
錯誤 (在函式呼叫中使用 TMP 值上的陣列存取時,發生不正確的編譯錯誤)。
DOM
修正了設定無效 DOMDocument 編碼時的記憶體洩漏。
Iconv
修正了仍然使用舊版 iconv 簽章的 NetBSD 建置。
Intl
修正了
GH-12020
錯誤 (在 MessageFormatter::formatMessage() 失敗後,intl_get_error_message() 損壞)。
MySQLnd
修正了
GH-10270
錯誤 (透過 SSL 連線失敗時出現無效的錯誤訊息:「嘗試透過 (null) 連線」)。
ODBC
修正了失敗的 SQLPrepare 的記憶體洩漏。
修正了未關閉的持續程序性 ODBC 連線。
SimpleXML
修正了
#52751
錯誤 (不支援 XPath processing-instruction() 函式)。
SPL
修正了
GH-11972
錯誤 (8.1.18 中的 RecursiveCallbackFilterIterator 回歸)。
SQLite3
修正了
GH-11878
錯誤 (帶有可呼叫陣列的 SQLite3 回呼函式會導致記憶體洩漏)。
版本 8.2.10
2023 年 8 月 31 日
CLI
修正了
GH-11716
錯誤 (使用 ZEND_RC_DEBUG=1 編譯時,cli 伺服器在 SIGINT 時當機)。
修正了
GH-10964
錯誤 (改善關於內建伺服器的人工頁面)。
Date
修正了
GH-11416
錯誤 (在傳入未初始化的物件時,DatePeriod 會當機)。
核心
修正了設定時 strerror_r 的偵測。
修正了使用 DNF 類型的不正確繫結的特性類型屬性。
修正了從內部特性複製時,未配置在 arena 中的特性屬性類型。
修正了在延遲類別載入期間,屬性 DNF 類型的深層複製。
修正了非 arena 配置類型的 DNF 類型的記憶體釋放。
DOM
修正了 DOMEntity 欄位 getter 錯誤。
修正了 DOMElement::setAttributeNodeNS 中不正確的屬性存在檢查。
修正了與自身使用的 DOMCharacterData::replaceWith()。
修正了 DOMParentNode 方法的空引數案例。
修正了
GH-11791
錯誤 (DOMDocument::xmlStandalone 的錯誤預設值)。
修正了 DOMDocument 上的 json_encode 結果。
修正了在 DOM 類別上手動呼叫 __construct()。
修正了
GH-11830
錯誤 (ParentNode 方法應該預先執行其檢查)。
修正了 replaceWith 的可行下一個兄弟搜尋。
修正了在子項目消失時呼叫 DOMParentNode::prepend() 會發生的區段錯誤。
FFI
修正了在使用 FFI::cdef()->new(...) 時洩漏的定義。
Hash
修正了 hash_pbkdf2() 中使用未初始化的值,並修正了簽章中遺失的 $options 參數。
MySQLnd
修正了
GH-11440
錯誤 (使用 SSL 時,使用 sha256_password 帳戶進行驗證會失敗)。
修正了
GH-11438
錯誤 (mysqlnd 無法使用長度超過 19 個字元的密碼來驗證 sha256_password 帳戶)。
修正了
GH-11550
錯誤 (當回應欄位變更時,MySQL 語句會產生空的查詢結果,並且也會發生區段錯誤)。
修正了連線中斷時出現的無效錯誤訊息「封包格式錯誤」。
Opcache
修正了
GH-11715
錯誤 (opcache.interned_strings_buffer 沒有效果,或 opcache_get_status() / phpinfo() 不正確)。
避免在重新啟動正在進行時,從 shm 載入指令碼時加入不必要的讀取鎖定。
PCNTL
將接收 SIGCHLD 訊號的行為還原為 8.1.22 之前的行為。
SPL
修正了
#81992
錯誤 (SplFixedArray::setSize() 導致使用後釋放)。
Standard
防止 number_format 中 $decimals 上的整數溢位。
修正了
GH-11870
錯誤 (修正截斷 tempnam 前置詞時的差一錯誤) (athos-ribeiro)
版本 8.2.9
2023 年 8 月 3 日
建置
修正了
GH-11522
錯誤 (PHP 版本檢查使用 '-' 分隔符號會失敗)。
CLI
修正了導致程序結束的中斷 CLI 輸出。
核心
修正了 oss-fuzz #60011 (by-reference nullsafe 運算子的錯誤編譯)。
修正了 else 區塊上 JMP 指令的行號。
修正了在 assert 上使用 ??= 時使用未初始化的值。
修正了 oss-fuzz #60411 (修正箭頭函式的雙重編譯)。
修正了 11.0 版本之前的 FreeBSD 建置。
Curl
修正了將無效的回呼函式傳遞至 CURLMOPT_PUSHFUNCTION 時發生的當機。
Date
修正了
GH-11368
錯誤 (Date modify 返回無效的日期時間)。
修正了
GH-11600
錯誤 (無法剖析包含 (窄) 不斷行空格字元的時間字串)。
修正了
GH-11854
錯誤 (DateTime:createFromFormat 停止剖析帶有多餘空格的日期時間)。
DOM
修正了
GH-11625
錯誤 (DOMElement::replaceWith() 不會以 DOMDocumentFragment 取代節點,而只會根據 libxml2 版本刪除節點或導致包裝 <></>)。
Fileinfo
修正了
GH-11298
錯誤 (finfo 為 xz 檔案返回錯誤的 mime 類型)。
FTP
修正了「覆寫」的內容選項檢查。
修正了
GH-10562
錯誤 (連續 ftp_nb_fget 時的記憶體洩漏和無效狀態)。
GD
修正了大多數外部 libgd 測試失敗。
Intl
修正了失敗時 MessageFormatter::format() 中的記憶體洩漏。
Libxml
修正了 GHSA-3qrf-m4j2-pcrr 錯誤 (在未啟用 XML 的情況下,於 XML 中載入外部實體的安全性問題)。(CVE-2023-3823)
MBString
修正了
GH-11300
錯誤 (授權問題:受限的 Unicode 授權標頭)。
Opcache
修正了
GH-10914
錯誤 (帶有列舉和回呼函式的 OPCache 會導致區段錯誤)。
如果無法配置加速的全域變數,則防止潛在的死結。
PCNTL
修正了
GH-11498
錯誤 (SIGCHLD 不一定會從 proc_open 返回)。
PDO
修正了
GH-11587
錯誤 (在 php8.1 之後,當 PDO::ATTR_EMULATE_PREPARES 為 true 且 PDO::ATTR_STRINGIFY_FETCHES 為 true 時,十進制零不再填入)。
PDO SQLite
修正了
GH-11492
錯誤 (使測試失敗:ext/pdo_sqlite/tests/bug_42589.phpt)。
Phar
在 phar util 中加入遺失的 EVP_VerifyUpdate() 檢查。
修正了 GHSA-jqcx-ccgc-xwhv 錯誤 (phar_dir_read() 中的緩衝區管理不當)。(CVE-2023-3824)
PHPDBG
修正了
GH-9669
錯誤 (phpdbg -h 選項未列出 -z 選項)。
Session
移除了用於傳輸工作階段 ID 的損壞 url 支援。
Standard
修正了物件圖形中出現兩次的 RC1 物件的序列化。
Streams
修正了
GH-11735
錯誤 (從自身取消註冊使用者串流包裝函式時發生使用後釋放)。
SQLite3
修正了 SQLite3Stmt::__construct 中已取代的錯誤處理。
XMLReader
修正了
GH-11548
錯誤 (當觀察者啟用時,以非靜態方式呼叫 XMLReader::open 或 XMLReader::XML 時發生引數損毀)。
版本 8.2.8
2023 年 7 月 6 日
CLI
修正了
GH-11246
錯誤 (cli/get_set_process_title 在 MacOS 上失敗)。
核心
修正了 riscv64 架構/GCC 12 的建置。
Curl
修正了
GH-11433
錯誤 (無法將 CURLOPT_ACCEPT_ENCODING 設定為 NULL)。
Date
修正了
GH-11455
錯誤 (帶有自訂物件日期屬性的區段錯誤)。
DOM
修正了
GH-11288
、
GH-11289
、
GH-11290
和
GH-9142
錯誤 (帶有 replaceWith 的 DOMExceptions 和區段錯誤)。
修正了
GH-10234
錯誤 (設定 DOMAttr::textContent 會導致屬性值為空)。
修正了 DOMNodeList::item stub 檔案中的回傳值。
修正了 DOMDocument::getElementsByTagNameNS 的 '*' 命名空間的規格符合錯誤。
修正了 DOMElement::append() 和 DOMElement::prepend() 階層檢查。
修正了
GH-11347
錯誤 (在 xpath 查詢中呼叫靜態方法時發生記憶體洩漏)。
修正了
#67440
錯誤 (DOMDocumentFragment 的 append_node 不會協調命名空間)。
修正了
#81642
錯誤 (使用自身取代節點時,DOMChildNode::replaceWith() 錯誤)。
修正了
#77686
錯誤 (getElementbyId 仍然返回已移除的元素)。
修正了
#70359
錯誤 (DOMAttr 上的 print_r() 會導致 php_libxml_node_free_list() 中的區段錯誤)。
修正了
#78577
錯誤 (DOMNameSpace 偵錯資訊處理常式中的當機)。
修正了 getAttributeNodeNS() 的存留期問題。
修正了已複製命名空間宣告的「無效狀態錯誤」。
修正了
#55294
和 #47530 和 #47847 錯誤 (各種命名空間協調問題)。
修正了
#80332
錯誤 (使用 DOMNamedNodeMap 的完全損壞陣列存取功能)。
Opcache
修正了 zend_shared_alloc_startup() 中的配置迴圈。
使用 ALLOC_FALLBACK 時 smm_shared_globals 上的存取違規。
修正了
GH-11336
錯誤 (php 仍然嘗試使用 opcache.file_cache_only=1 解鎖共享記憶體 ZendSem,但它從未被鎖定)。
OpenSSL
修正了
GH-9356
錯誤 (subjectAltNames 中 IPv6 位址欄位的不完整驗證) (James Lucas, Jakub Zelenka)。
PCRE
修正了 preg_replace_callback_array() 模式驗證。
PGSQL
修正了 pg_trace 間歇性的區段錯誤。
Phar
修正了 FreeBSD phar 生成中的交叉編譯檢查。
SPL
修正了
GH-11338
錯誤 (SplFileInfo 以多個斜線為空 getBasename)。
Standard
修正了 array_merge_recursive() 中 NULL 指標的存取。
修正了 array_multisort() 中的例外處理。
SQLite3
修正了
GH-11451
錯誤 (包含重複鍵的無效關聯陣列)。
版本 8.2.7
2023 年 6 月 8 日
核心
修正了
GH-11152
錯誤 (無法為包含保留類別名稱的命名空間設定別名)。
修正了
GH-9068
錯誤 (條件跳躍或移動依賴於未初始化的值)。
修正了
GH-11189
錯誤 (zend_hash_do_resize 中超出記憶體限制會使陣列處於無效狀態)。
修正了
GH-11063
錯誤 (在舊版 GCC 上的編譯錯誤)。
修正了
GH-11222
錯誤 (by-ref foreach 可能會在重新雜湊期間跳過索引鍵)。
Date
修正錯誤
GH-11281
(DateTimeZone::getName() 在偏移量中未包含秒數)。
Exif
修正錯誤
GH-10834
(exif_read_data() 無法讀取較小的串流封裝器區塊大小)。
FPM
修正錯誤
GH-10461
(PHP-FPM 因使用子進程的 child->ev_std(out|err) 釋放後的記憶體而發生分段錯誤)。
修正錯誤
#64539
(FPM 狀態頁面:query_string 未正確進行 JSON 編碼)。
修正無效主要腳本檔案句柄的記憶體洩漏問題。
Hash
修正錯誤
GH-11180
(hash_file() 似乎僅限於 3 個參數)。
LibXML
修正錯誤
GH-11160
(使用新的 libxml 2.11.0 建置時,少數測試失敗)。
MBString
修正錯誤
GH-11217
(當使用負偏移量和 ASCII 編碼時,mb_strrpos / mb_strripos 發生分段錯誤)。
Opcache
修正錯誤
GH-11134
(不正確的預設分支最佳化)。
修正過於寬鬆的 OR 和 AND 範圍推斷。
修正啟用 OPcache 時遺失的類別重新宣告錯誤。
修正錯誤
GH-11245
(在某些特定情況下,具有一個預設語句的 SWITCH 會導致分段錯誤)。
PCNTL
修正 pcntl_forkx() 的最大參數計數。
PGSQL
修正 pg_lo_export() 的參數解析。
Phar
修正錯誤
GH-11099
(在交叉編譯期間無法產生 phar.php)。
Soap
修正錯誤 GHSA-76gg-c692-v2mw (SOAP 的 HTTP Digest 驗證中遺失錯誤檢查且隨機位元組不足)。(CVE-2023-3247)
修正錯誤
GH-8426
(建置 soap 擴展時 make test 失敗)。
SPL
修正錯誤
GH-11178
(spl_array_it_get_current_data 中發生分段錯誤 (PHP 8.1.18))。
Standard
修正錯誤
GH-11138
(move_uploaded_file() 對於來源檔案發出 open_basedir 警告)。
修正錯誤
GH-11274
(在 HTTP 308 重新導向後,POST/PATCH 請求切換為 GET)。
Streams
修正錯誤
GH-10031
([串流] STREAM_NOTIFY_PROGRESS 對於最後一塊資料不規則地發出 HTTP 訊號)。
修正錯誤
GH-11175
(串流 Socket 超時)。
修正錯誤
GH-11177
(當 timeout = -1 傳遞至 stream_socket_accept/stream_socket_client 時,發生 ASAN UndefinedBehaviorSanitizer)。
版本 8.2.6
2023 年 5 月 11 日
核心
修正常數表達式中不一致的浮點數負數運算。
修正錯誤
GH-8841
(php-cli 呼叫格式不正確的函數時發生核心傾印)。
修正錯誤
GH-10737
(PHP 8.1.16 在 sapi/apache2handler/sapi_apache2.c 的第 597 行發生分段錯誤)。
修正錯誤
GH-11028
(zval_undefined_cv 中的堆積緩衝區溢位)。
修正錯誤
GH-11108
(在 ??= 中中止後,不正確的 CG(memoize_mode) 狀態)。
Date
修正在與時區識別符號相關的日期/時間的 DST 轉換時,diff() 方法不會傳回正確結果的錯誤。
修正在 LONG_MIN unix 時間戳記周圍來回轉換時,超出範圍的錯誤。
DOM
修正錯誤
#80602
(使用 DOMChildNode::before() 時發生分段錯誤)。
修正 dom_zvals_to_fragment() 中不正確的錯誤處理。
Exif
修正錯誤
GH-9397
(exif 讀取:警告和錯誤:潛在的無效位元組序、非法 IFD 大小和未定義索引)。
Intl
修正錯誤
GH-11071
(不再顯示 TZData 版本)。
PCRE
修正錯誤
GH-10968
(preg_replace_callback_array() 中發生分段錯誤)。
Reflection
修正錯誤
GH-10983
(ReflectionObject::getProperties 中與狀態相關的分段錯誤)。
SPL
處理間接 zval 並在 SplFixedArray::__serialize 中使用最新的屬性。
Standard
修正錯誤
GH-10990
(mail() 在透過引用迭代 $additional_headers 陣列後,擲回 TypeError)。
修正錯誤
GH-9775
(當使用列舉時,array_unique 會傳回重複項)。
Streams
修正錯誤
GH-10406
(基於 UNIX 的 Socket 資源的 feof() 行為變更)。
版本 8.2.5
2023 年 4 月 13 日
核心
新增在 ZTS/Linux 建置中對 max_execution_time 的可選支援 (Kévin Dunglas)
修正遞迴 AST 評估中的使用後釋放。
修正錯誤
GH-8646
(記憶體洩漏 PHP FPM 8.1)。
重新新增一些因錯誤從 CTE 中移除的 CTE 函數。
從 array_diff_ukey() 中移除 CTE 旗標,這是因錯誤新增的。
修正錯誤
GH-10801
(CTE 函數中的命名引數導致分段錯誤)。
修正錯誤
GH-8789
(PHP 8.0.20 (ZTS) zend_signal_handler_defer 在 apache 上當機)。
修正錯誤
GH-10015
(zend_signal_handler_defer 在 apache 關閉時當機)。
修正錯誤
GH-10810
(修正以 NUL 位元組終止 Exception::__toString())。
修正混合使用 __callStatic() 和 FFI 時潛在的記憶體損毀問題。
Date
修正錯誤
GH-10747
(序列化的 Date* 物件中的私有和受保護屬性會擲回錯誤)。
FPM
修正錯誤
GH-10611
(fpm_env_init_main 會洩漏 environ)。
在 fpm_main 中銷毀 file_handle。
修正錯誤
#74129
(當路徑中有空格時,apache ProxyPassMatch 的 SCRIPT_NAME 不正確)。
FTP
傳播 ftp_close() 的成功狀態。
修正錯誤
GH-10521
(ftp_get/ftp_nb_get resumepos 偏移量的最大值為 10GB)。
IMAP
修正 Clang 16 的建置失敗問題。
MySQLnd
修正錯誤
GH-8979
(啟用 SSL 的 MySQL 連線可能發生記憶體洩漏)。
Opcache
修正 macOS 的建置,以符合 pkg-config 設定。
修正錯誤
GH-8065
(opcache.consistency_checks > 0 會在 fpm 環境中導致 PHP >= 8.1.5 發生分段錯誤)。
OpenSSL
在檔案寫入函數中新增遺失的錯誤檢查。
PDO Firebird
修正錯誤
GH-10908
(在具有 64 位元核心和 32 位元使用者空間的 RPI 上,使用 PDO Firebird 時發生匯流排錯誤)。
Phar
修正錯誤
GH-10766
(使用 Phar::Zip 格式建立的 PharData 封存檔不會保留檔案中繼資料 (日期時間))。
在 EVP_MD_CTX_create() 和 EVP_VerifyInit() 中新增遺失的錯誤檢查。
PDO ODBC
修正 SQLAllocHandle 中遺失且不一致的錯誤檢查。
PGSQL
修正 pg_meta_data (擴展模式) 傳回的陣列中的錯字。
SPL
修正錯誤
GH-10519
(陣列資料位址參考問題)。
修正錯誤
GH-10907
(無法在 PHP 8.2.4 中序列化已處理的 SplFixedArrays)。
修正錯誤
GH-10844
(ArrayIterator 允許修改唯讀屬性)。
Standard
修正錯誤
GH-10885
(stream_socket_server 環境洩漏)。
修正錯誤
GH-10052
(Browscap 在請求關閉時 (apache2) 導致 PHP 8.1.12 當機)。
修正 oss-fuzz #57392 (使用 \0 分隔符號和封閉符號的 php_fgetcsv() 中發生緩衝區溢位)。
修正 unpack() 中的未定義行為。
版本 8.2.4
2023 年 3 月 16 日
核心
修正 ZEND_YIELD 中不正確的檢查條件。
修正類型推斷中不正確的檢查條件。
修正 zend_internal_call_should_throw() 中不正確的檢查。
修正 OnUpdateMemoryConsumption 中的溢位檢查。
修正錯誤
GH-9916
(在關閉序列中,以暫停在產生器中的纖程發出無法避免的嚴重錯誤或當機)。
修正錯誤
GH-10437
(在中止後,在關閉函數中使用纖程時發生分段錯誤/判斷提示)。
修正複合指派運算碼的 SSA 物件類型更新。
修正語言掃描器產生建置。
修正 zend_update_static_property() 錯誤地呼叫具有錯誤傳回類型的 zend_update_static_property_ex()。
修正錯誤
GH-10570
(修正使用整數常數名稱擷取屬性時,未知字串雜湊)。
修正在 php_fopen_primary_script() 呼叫中,zend_destroy_file_handle() 釋放句柄上的懸空指標,因為它未初始化。
Curl
修正在編譯時發出的棄用警告。
修正錯誤
GH-10270
(無法在 readfunc 回呼中傳回 CURL_READFUNC_PAUSE)。
Date
修正
GH-10447
('p' 格式規範不會為 00:00 產生 'Z')。
修正
GH-10152
(Date 子類別的自訂屬性不會序列化)。
修正錯誤
GH-10747
(序列化的 Date* 物件中的私有和受保護屬性會擲回錯誤)。
FFI
修正 ffi 位欄位中不正確的位元移位和遮罩。
Fiber
修正 alpine x86 上的組譯碼。
修正錯誤
GH-10496
(在纖程內呼叫垃圾收集器時發生分段錯誤)。
FPM
修正錯誤
GH-10315
(FPM 未知子進程警示無效)。
修正錯誤
GH-10385
(FPM 成功組態測試提早退出)。
GMP
正確實作 GMP::__construct()。
Intl
修正錯誤
GH-10647
(Spoolchecker isSuspicious/areConfusable 方法的錯誤代碼引數總是傳回 NULL0)。
JSON
修正 JSON 掃描器和剖析器產生建置。
MBString
ext/mbstring:修正 new_value 長度檢查。
修正錯誤
GH-10627
(mb_convert_encoding 在 Windows 上導致 PHP 當機)。
Opcache
修正不正確的 page_size 檢查。
OpenSSL
修正 php_openssl_set_server_dh_param() DH 參數的錯誤處理。
PDO OCI
修正錯誤
#60994
(讀取多位元組 CLOB 時,上限為 8192 個字元)。
PHPDBG
修正錯誤
GH-10715
(錯誤使用 --run 選項時發生堆積緩衝區溢位)。
PGSQL
修正
GH-10672
(pg_lo_open 在 strict_types 模式下發生分段錯誤)。
Phar
修正 phar tar 剖析中不正確的檢查。
Random
修正
GH-10390
(請勿信任 glibc 上的 arc4random_buf())。
修正
GH-10292
(將 srand() 和 mt_srand() 的第一個參數的預設值設為未知)。
Reflection
修正錯誤
GH-10623
(Reflection::getClosureUsedVariables 運算碼使用可變引數修正)。
修正當使用內部函數暫停的 ReflectionFiber 時發生分段錯誤。
Session
修正在失敗程式碼路徑上使用 -1 而不是 0 作為 ps_files_cleanup_dir(),因為後者被呼叫者視為成功。(nielsdos)。
Standard
修正錯誤
GH-8086
(引入 mail.mixed_lf_and_crlf INI)。
修正錯誤
GH-10292
(將 srand() 和 mt_srand() 的第一個參數的預設值設為未知)。
修正 map_from_unicode() 中 cs_8559_5 的不正確檢查。
修正錯誤
GH-9697
,用於 reset/end/next/prev() 嘗試移動某些內部類別 (例如 FFI 類別) 的屬性表格指標。
修正 browsecap 中 pcre2_match() 的不正確錯誤檢查。
Streams
修正錯誤
GH-10370
(使用 copy_file_range 時,_php_stream_copy_to_stream_ex 中發生檔案損毀)。
修正錯誤
GH-10548
(copy() 因不正確的 copy_file_range() len 而在 cifs 掛載上失敗)。
Tidy
修正嘗試開啟不存在的檔案或超過 4GB 的檔案時發生的記憶體洩漏問題。
在 tidyLoadConfig 上新增遺失的錯誤檢查。
Zlib
修正 output_handler 指示詞值的長度,該長度計算字串終止符。
版本 8.2.3
2023 年 2 月 14 日
核心
修正了錯誤
#81744
(使用某些雜湊值時,Password_verify() 總是回傳 true)。 (CVE-2023-0567)
修正了錯誤
#81746
(在通用路徑解析程式碼中發生 1 位元組的陣列溢位)。 (CVE-2023-0568)
SAPI
修正了錯誤 GHSA-54hq-v5wp-fqgv (解析 multipart 請求主體時的 DOS 漏洞)。 (CVE-2023-0662)
版本 8.2.2
2023 年 2 月 2 日
核心
修正了錯誤
GH-10200
(zif_get_object_vars:斷言 `!(((__ht)->u.flags & (1<<2)) != 0)' 失敗)。
修正了
GH-10251
(斷言 `(flag & (1<<3)) == 0' 失敗)。
修正了
GH-10240
(當向未封裝的陣列添加超過 2**30 個元素時,斷言失敗)。
修正了
GH-9735
(Fiber 堆疊變數不參與循環收集器)。
修正了
GH-9675
(內部列舉方法中損壞的 run_time_cache 初始化)。
FPM
修正了錯誤
#77106
(FPM FastCGI 錯誤中缺少分隔符)。
修正了錯誤
GH-9981
(FPM 未重置 fastcgi.error_header)。
修正了錯誤
#68591
(組態測試未執行 UID 查找)。
修正了執行 FPM 組態測試時的記憶體洩漏。
修正了錯誤
#67244
(監聽 unix socket 的錯誤擁有者:群組)。
Hash
處理 XXH3 初始化中 __toString 的例外狀況 (nielsdos)
LDAP
修正了錯誤
GH-10112
(LDAP\Connection::__construct() 參照 ldap_create())。
Opcache
修正了 zend_runtime_jit() 中反轉的退出值 (Max Kellermann)。
修正了 accel_preload() 中對未初始化變數的存取。
修正了 zend_jit_find_trace() 當機的問題。
為 zend_jit_trace_exit 中的 EXIT_INVALIDATE 添加了遺失的鎖。
Phar
修正了 phar_object.c 中壓縮方法的錯誤旗標檢查 (nielsdos)
PHPDBG
修正了 phpdbg_load_module_or_extension() 中的未定義行為。
修正了 phpdbg_create_conditional_breal() 中的 NULL 指標取消引用。
修正了
GH-9710
:phpdbg 因選項 "-h" 造成的記憶體洩漏 (nielsdos)
修正了 phpdbg 在輸入格式錯誤時發生的區段錯誤 (nielsdos)
Posix
修正了 posix_ttyname() 中的記憶體洩漏 (girgias)
Random
修正了錯誤
GH-10247
(理論上 /dev/urandom 的檔案描述符洩漏)。
Standard
修正了
GH-10187
(在 arm64 上使用 stripslashes() 時發生區段錯誤)。
修正了錯誤
GH-10214
(在反序列化期間物件語法的驗證不完整)。
修正了 repl_ht 中具有 UNDEF 插槽的 substr_replace。
XMLWriter
修正了 xmlTextWriterEndElement 中遺失的檢查 (nielsdos)
版本 8.2.1
2023 年 1 月 5 日
核心
修正了錯誤
GH-9905
(當類別未定義時,constant() 行為不一致)。
修正了錯誤
GH-9918
(xxHash 的授權資訊未包含在 README.REDIST.BINS 檔案中)。
修正了錯誤
GH-9890
(OpenSSL 舊版供應商在 Windows 上不可用)。
修正了錯誤
GH-9650
(無法初始化堆積:[0x000001e7])。
修正了 Windows ftok(3) 模擬中可能未定義的行為。
修正了
GH-9769
(物件解封裝的誤導性錯誤訊息)。
Apache
修正了錯誤
GH-9949
(不完整的 POST 請求上的部分內容)。
FPM
修正了錯誤
GH-9959
(在錯誤 #66694 之後,Solaris 連接埠事件機制仍然損壞)。
修正了錯誤
#68207
(設定 fastcgi.error_header 可能會導致警告)。
修正了錯誤
#80669
(FPM 數值使用者無法設定群組)。
修正了錯誤
GH-8517
(FPM 主要程序在 fpm_stdio_child_said 中隨機當機)。
Imap
修正了錯誤
GH-10051
(IMAP:無法檢查 IMAP\Connection 是否仍然開啟)。
MBString
修正了錯誤
GH-9535
(mb_strcut 在 mbstring 中的行為已在 PHP8.1 中變更)。
Opcache
修正了錯誤
GH-9968
(OPCache 預載期間發生區段錯誤)。
OpenSSL
修正了錯誤
GH-9997
(OpenSSL 引擎清理區段錯誤)。
修正了錯誤
GH-9064
(如果 OpenSSL 使用 --no-ec 建置,PHP 無法建置)。
修正了錯誤
GH-10000
(當 OpenSSL 使用 no-dsa 編譯時,OpenSSL 測試失敗)。
Pcntl
修正了錯誤
GH-9298
(在 rshutdown 之後呼叫的訊號處理程式導致當機)。
PDO_Firebird
修正了錯誤
GH-9971
(從 PDO_Firebird 回傳的 NUMERIC 值不正確)。
PDO/SQLite
修正了錯誤
#81740
(PDO::quote() 可能會回傳未加引號的字串)。 (CVE-2022-31631)
Session
修正了
GH-9932
(session name 使用 . 和 [ 時會靜默失敗)。
SPL
修正了
GH-9883
(SplFileObject::__toString() 會讀取下一行)。
修正了
GH-10011
(Trampoline 自動載入器將會重新註冊且無法取消註冊)。
SQLite3
修正了錯誤
#81742
(透過使用 file URI 在 SQLite3 中繞過 open_basedir)。
TSRM
修正了關於 IPC_PRIVATE 的 Windows shmget()。
版本 8.2.0
2022 年 12 月 8 日
CLI
修正了錯誤
#81496
(伺服器記錄不正確的請求方法)。
更新了內建伺服器的 mime-type 表格。
修正了透過 PHP_CLI_SERVER_WORKERS 環境變數,內建伺服器可能發生的溢位問題。
透過變更 STDOUT、STDERR 和 STDIN 在資源銷毀時不關閉,修正了
GH-8575
。
實作內建網頁伺服器在靜態資源上,回應 HEAD 請求時不包含主體。
實作內建網頁伺服器在靜態資源上,回應 DELETE/PUT/PATCH 請求時傳回 HTTP 狀態 405。
修正了錯誤
GH-9709
(使用 -w/-s 選項時的 Null 指標取消引用)。
COM
修正了錯誤
GH-8750
(無法建立 VT_ERROR 變體類型)。
核心
修正了錯誤
#81380
(觀察者可能未正確初始化)。
修正了錯誤
GH-7771
(修正常數運算式的檔名/行號)。
修正了錯誤
GH-7792
(改進錯誤訊息中的類別類型)。
支援 MacOS 上的巨型頁面。
修正了錯誤
GH-8655
(將物件轉換為陣列不會解開 refcount=1 的參考)。
修正了錯誤
GH-8661
(合併中的 Nullsafe 會觸發未定義的變數警告)。
修正了錯誤
GH-7821
和
GH-8418
(允許在支援的列舉中使用任意常數運算式)。
修正了錯誤
GH-8810
(多行函式呼叫回溯中不正確的行號)。
最佳化使用串流純粹封裝器建立新檔案的程式碼路徑。
使用 safe_perealloc 而非 perealloc 作為 ZEND_PTR_STACK_RESIZE_IF_NEEDED,以避免可能發生的溢位。
減少 var_export()、json_encode()、serialize()、iconv_*()、mb_ereg*()、session_create_id()、http_build_query()、strstr()、Reflection*::__toString() 回傳字串的記憶體佔用量。
修正了錯誤
GH-8995
(WeakMap 物件參考偏移導致 TypeError)。
新增了 error_log_mode ini 設定。
更新了請求啟動訊息。
修正了錯誤
GH-7900
(具有永不傳回類型的箭頭函式編譯時錯誤)。
修正了最新 clang 中不正確的 double 到 long 的轉換。
新增了在 trait 中定義常數的支援。
停止為 `"{$g{'h'}}"` 錯誤地發出與不支援的語法嚴重錯誤同時出現的誤報棄用通知。
修正了當在未捕獲例外狀況後,finally 區塊中的 exit() 發生時,發生未預期的已棄用動態屬性警告。
修正了錯誤
GH-9323
(ZEND_RETURN/GC/zend_call_function 中當機) (Tim Starling)
修正了錯誤
GH-9227
(忽略檔名中的尾隨點和空格)。
修正了錯誤
GH-9285
(trait 無法在唯讀類別中使用)。
修正了錯誤
GH-9186
(可以使用反序列化繞過 @strict-properties)。
修正了錯誤
GH-9500
(在 readonly 關鍵字後使用帶有括號的 dnf 類型會導致剖析錯誤)。
修正了錯誤
GH-9516
(作為參數的 (A&B)|D 應該允許 AB 或 D。而不僅僅是 A)。
修正了 Opcache file_cache_only=1 的觀察者類別通知。
修正了在 FreeBSD i386 架構上使用 Fiber 時發生的區段錯誤。
修正了錯誤
GH-9655
(純交集類型不能隱含為可為 Null) (Girgias)
修正了錯誤
GH-9589
(當模組已載入時,dl() 會發生區段錯誤)。
修正了錯誤
GH-9752
(當使用額外的命名參數在引數評估期間中斷時,產生器會當機)。
修正了錯誤
GH-9801
(當初始化期間超出記憶體限制時,產生器會當機)。
修正了預先載入的列舉可能會發生區段錯誤的錯誤。
修正了錯誤
GH-9823
(不要在 zend_closure_internal_handler 中重置函式)。
修正了 Windows shm*() 函式中潛在的 NULL 指標取消引用。
修正了使用建構函式屬性提升的內部屬性的目標驗證。
修正了錯誤
GH-9750
(當在引數評估期間中斷時,產生器發生記憶體洩漏)。
將 observer_declared_function_notify 移至 pass_two() 之後。
不要在延伸模組中報告 MINIT 階段的內部類別別名。
Curl
新增了對 CURLOPT_XFERINFOFUNCTION 的支援。
新增了對 CURLOPT_MAXFILESIZE_LARGE 的支援。
新增了 cURL 7.62 到 7.80 的新常數。
新函式 curl_upkeep()。
Date
修正了
GH-8458
(如果存在非相對項目,DateInterval::createFromDateString 不會拋出例外狀況)。
修正了錯誤
#52015
(允許在 DatePeriod 迭代中包含結束日期) (Daniel Egeberg, Derick)
idate() 現在接受格式規範符 "N" (ISO 週幾) 和 "o" (ISO 年)。
修正了錯誤
GH-8730
(DateTime::diff 錯誤計算是不同類型的相同時區)。
修正了錯誤
GH-8964
(套用小於 1 秒的差異後的 DateTime 物件比較)。
修正了錯誤
GH-9106
(自 PHP 8.1.0 以來,新增至 DateTimeInterface 的 DateInterval 1.5 秒會向下捨入)。
修正了錯誤
#75035
(Datetime 無法反序列化「極端」日期)。
修正了錯誤
#80483
(具有 5 位數年份的 DateTime 物件無法反序列化)。
修正了錯誤
#81263
(DateTimeImmutable::diff 的錯誤結果)。
修正了錯誤
GH-9431
(當沒有錯誤/警告時,DateTime::getLastErrors() 不會回傳 false)。
修正了剖析使用 @ 符號的大負數時的錯誤。
DBA
修正了當嘗試刪除不存在的金鑰時,LMDB 驅動程式掛起的問題 (Girgias)
修正了在資料庫建立失敗時,LMDB 驅動程式的記憶體洩漏問題 (Girgias)
修正了
GH-8856
(dba: lmdb: 允許覆寫 MDB_NOSUBDIR 旗標)。
FFI
修正了錯誤
GH-9090
(支援在 FFI 中指派函式指標)。
Fileinfo
修正了錯誤
GH-8805
(finfo 回傳 woff/woff2 檔案的錯誤 mime 類型)。
Filter
新增了 FILTER_FLAG_GLOBAL_RANGE 以篩選全域 IP。
FPM
針對無效的連接埠設定發出錯誤訊息。
在基於 SELinux 的系統上,針對 FPM proc 可傾印性新增額外檢查。
新增了對 macOS 上監聽佇列的支援。
將 Linux 上 listen.backlog 的預設值變更為 -1。
新增了 listen.setfib 集區選項,以在 FreeBSD 上設定路由 FIB。
新增了 access.suppress_path 集區選項以篩選存取記錄項目。
修正了 fpm 記分板上偶爾發生的擷取失敗警告。
修正了錯誤
GH-9754
(當執行 php-fpm 8.1.11 時,SaltStack (使用 Python subprocess) 會掛起)。
FTP
修正了 ftp_mdtm() 中遵循 POSIX 規範的日期時間格式字串。
GD
修正了錯誤
#81739
:由於 imageloadfont() 中輸入驗證不足造成的 OOB 讀取。 (CVE-2022-31630)
GMP
修正了錯誤
GH-9308
(當將 GMP 物件傳遞至 gmp_init() 時,GMP 會拋出錯誤訊息)。
Hash
修正了錯誤
#81738
:長參數上的 hash_update() 中的緩衝區溢位。 (CVE-2022-37454)
Intl
更新所有已過時的語言標籤為偏好的值
修正
GH-7939
(無法反序列化 IntlTimeZone 物件)。
修正 ICU 69.x 及更新版本的建置問題。
宣告 Transliterator::$id 為唯讀,以允許子類別化。
修正錯誤
GH-9421
(NumberFormatter 中 ValueError 的參數數量不正確)。
MBString
修正錯誤
GH-9248
(mb_strimwidth() 中的區段錯誤)。
mysqli
修正錯誤
GH-9841
(即使使用靜音錯誤模式,mysqli_query 仍會拋出警告)。
MySQLnd
修正因對齊不匹配而導致的潛在堆積損壞。
OCI8
新增 oci8.prefetch_lob_size 指令以調整 LOB 查詢效能
已不再支援針對 Oracle Client libraries 10.1 和 10.2 進行建置。現在需要 Oracle Client libraries 11.2 或更新版本。
ODBC
修正錯誤
GH-8300
(建立連線字串時,使用者輸入未被跳脫)。
修正錯誤
GH-9347
(目前的 ODBC 活躍度檢查可能不足)。
Opcache
將 JIT 緩衝區分配到靠近 PHP .text 段的位置,以允許使用直接的 IP 相對呼叫和跳轉。
新增用於 macOs Instrument 的 JIT 效能分析產生之初始支援。
修正錯誤
GH-8030
(JIT 和大型 match/switch 語句導致的區段錯誤)。
針對 macOs 上的區段和可執行權限位元處理新增 JIT 支援改進。
在 FreeNSD 上,將 JIT 緩衝區分配到靠近 .text 段的位置。
修正錯誤
GH-9371
(在 mac arm64 上使用 JIT 導致的崩潰) (jdp1024/David Carlier)
修正錯誤
GH-9259
(opcache.interned_strings_buffer 設定整數溢位)。
在 x86 架構上新增 JIT 的間接呼叫減少。
修正錯誤
GH-9164
(zend_accel_class_hash_copy 中的區段錯誤)。
修正啟用觀察器時的 opcache 預載入。
OpenSSL
當沒有逾時/非阻塞/MSG_DONTWAIT 時,捨棄套接字上的 poll 呼叫。
修正錯誤
GH-9310
(SSL local_cert 和 local_pk 不遵守 open_basedir)。
實作 FR #76935 ("chacha20-poly1305" 是一種 AEAD,但不像 AEAD 那樣工作)。
新增 openssl_cipher_key_length 函數。
修正錯誤
GH-9517
(與 PR
GH-9366
相關的 openssl 擴充功能編譯錯誤)。
修正遺失的 OpenSSL 引擎列表清除 - 嘗試修正
GH-8620
。
修正錯誤
GH-8430
(使用 no-md2、no-md4 或 no-rmd160 編譯的 OpenSSL 無法建置)。
PCNTL
修正 MacOS 的 pcntl_(get|set)priority 錯誤處理。
PCRE
實作 FR
#77726
(允許正規表示式模式中的空字元)。
將捆綁的 libpcre 更新至 10.40。
PDO
修正錯誤
GH-9818
(在 PDO 方法中初始化執行階段快取)。
PDO_Firebird
修正錯誤
GH-8576
(當字元為 UTF-8 時,長度解釋錯誤)。
PDO_ODBC
修正錯誤
#80909
(PDO_ODBC 中持續連線導致的崩潰)。
修正錯誤
GH-8300
(建立連線字串時,使用者輸入未被跳脫)。
修正錯誤
GH-9347
(目前的 ODBC 活躍度檢查可能不足)。
修正錯誤
GH-9372
(繫結過長參數時的 HY010)。
PDO_PGSQL
修正錯誤
GH-9411
(PgSQL 大型物件資源關閉不正確)。
Random
新增隨機擴充功能。
修正錯誤
GH-9067
(隨機擴充功能不是執行緒安全的)。
修正錯誤
GH-9055
(如果使用者引擎拋出例外,則會發生區段錯誤)。
修正錯誤
GH-9066
(帶符號整數溢位)。
修正錯誤
GH-9083
(移位期間未定義的行為)。
修正錯誤
GH-9088
、
GH-9056
(在給定範圍內產生統一整數時,位元組的展開不正確)。
修正錯誤
GH-9089
(在 Randomizer::__construct() 呼叫兩次時的記憶體洩漏)。
修正錯誤
GH-9212
(PcgOneseq128XslRr64::jump() 不應允許負數的 $advance)。
將 Mt19937 變更為針對無效的 $mode 拋出 ValueError 而不是 InvalidArgumentException。
將 Random\Randomizer::getInt()(不帶參數)拆分為 Random\Randomizer::nextInt()。
修正錯誤
GH-9235
(PcgOneseq128XslRr64::__construct() 的存根中不存在 $sequence 參數)。
修正錯誤
GH-9190
、
GH-9191
(處理大範圍時 MT_RAND_PHP 未定義的行為)。
修正錯誤
GH-9249
(Xoshiro256StarStar 不拒絕無效的全零狀態)。
從 Randomizer 方法中移除多餘的 RuntimeException。引擎拋出的例外將直接公開。
新增擴充功能特定的例外/錯誤 (RandomException、RandomError、BrokenRandomEngineError)。
修正錯誤
GH-9415
(使用 Mt19937 時,Randomizer::getInt(0, 2**32 - 1) 始終傳回 1)。
修正 32 位元引擎的 Randomizer::getInt() 一致性。
修正錯誤
GH-9464
(在舊版 macOs 上建置)。
修正錯誤
GH-9839
(MT_RAND_PHP 的非 mt_rand() 函數的預 PHP 8.2 輸出相容性)。
Reflection
新增 ReflectionFunction::isAnonymous()。
新增 ReflectionMethod::hasPrototype()。
將 ReflectionEnum::getBackingType() 傳回類型縮小為 ReflectionNamedType。
修正錯誤
GH-8932
(ReflectionFunction 無法取得 Closure 的已呼叫類別)。
Session
修正錯誤
GH-7787
(改進使用者錯誤處理常式的會期寫入失敗訊息)。
修正
GH-9200
(setcookie 的過期日期格式已過時)。
修正
GH-9584
(避免在不取消註冊自訂會期處理常式時發生記憶體損壞)。
修正錯誤
GH-9583
(session_create_id() 在使用者定義的儲存處理常式沒有 validateId() 方法時失敗)。
SOAP
修正錯誤
GH-9720
(在序列化回應時的空指標取消引用)。
Sockets
新增 TCP_NOTSENT_LOWAT 套接字選項。
新增 SO_MEMINFO 套接字選項。
新增 SO_RTABLE 套接字選項 (OpenBSD),相當於 SO_MARK (Linux)。
新增 TCP_KEEPALIVE、TCP_KEEPIDLE、TCP_KEEPINTVL、TCP_KEEPCNT 套接字選項。
新增 FreeBSD 的輔助資料支援。
新增 NetBSD 的輔助資料支援。
新增 SO_BPF_EXTENSIONS 套接字選項。
新增 SO_SETFIB 套接字選項。
新增 TCP_CONGESTION 套接字選項。
新增 SO_ZEROCOPY/MSG_ZEROCOPY 選項。
新增 Solaris 的 SOL_FILTER 套接字選項。
修正 PHP 8.2.0beta3 中的套接字常數回歸問題。
Sodium
新增 sodium_crypto_stream_xchacha20_xor_ic()。
SPL
使用 safe_erealloc 而不是 erealloc 來處理 SplHeap::insert 方法的堆積成長,以避免可能的溢位。
將 iterator_to_array() 和 iterator_count() 的 $iterator 參數擴展為可迭代。
修正錯誤
#69181
(READ_CSV|DROP_NEW_LINE 會捨棄欄位中的換行符號)。
修正錯誤
#65069
(GlobIterator 不正確處理 open_basedir 檢查)。
SQLite3
將 sqlite3.defensive 從 PHP_INI_SYSTEM 變更為 PHP_INI_USER。
Standard
net_get_interfaces() 也會在 Windows 上報告無線網路介面。
完成 getimagesize() 中的 AVIF 支援。
修正錯誤
GH-7847
(具有大型 haystack 的 stripos 效能不佳)。
新增函數 memory_reset_peak_usage()。
修正 parse_url():無法辨識沒有 scheme 的埠。
已棄用 utf8_encode() 和 utf8_decode()。
修正使用 clang > 12 建置的 crypt_sha256/512 api。
使用 safe_erealloc 而不是 erealloc 來處理 getopt 中的選項,以避免可能的溢位。
實作 FR
GH-8924
(str_split 應該針對空字串傳回空陣列)。
新增 ini_parse_quantity 函數以將 ini 數量簡寫標記法轉換為 int。
針對 Linux glibc 2.36 及更新版本的 random_bytes 啟用 arc4random_buf。
在 macOs 上使用 CCRandomGenerateBytes 而不是 arc4random_buf。(David Carlier)。
修正錯誤
#65489
(glob() basedir 檢查不一致)。
修正
GH-9200
(setcookie 的過期日期格式已過時)。
修正
GH-9244
(array_multisort + array_shift 導致的區段錯誤)。
修正錯誤
GH-9296
(`ksort` 在具有混合索引鍵的陣列上的行為不正確)。
將 crypt() 的 $string 參數標記為 #[\SensitiveParameter]。
修正錯誤
GH-9464
(在舊版 macOs 上建置)。
修正錯誤
GH-9518
(停用 IPv6 支援會停用不相關的常數)。
還原「修正 parse_url():無法辨識沒有 scheme 的埠。」(andypost)
修正在模組已載入時,DL_UNLOAD() 後讀取 module_entry 導致的崩潰。
Streams
在連線到遠端主機時,如果可用則設定 IP_BIND_ADDRESS_NO_PORT。
修正錯誤
GH-8548
(stream_wrapper_unregister() 會洩漏記憶體)。
當沒有逾時/非阻塞/MSG_DONTWAIT 時,捨棄套接字上的 poll 呼叫。
修正錯誤
GH-9316
(長狀態列的 $http_response_header 不正確)。
修正錯誤
GH-9590
(stream_select 不會在例外或空的有效 fd 集合時中止)。
修正錯誤
GH-9653
(不同檔案系統之間的檔案複製)。
修正錯誤
GH-9779
(如果目標處於附加模式,則 stream_copy_to_stream 失敗)。
Windows
新增針對 ARM64 進行 (交叉) 建置的初步支援。
XML
新增 libxml_get_external_entity_loader() 函數。
Zip
新增 ZipArchive::clearError() 方法
新增 ZipArchive::getStreamName() 方法
新增 ZipArchive::getStreamIndex() 方法
在 Windows 上,Zip 擴充功能現在預設會建置為共用程式庫 (DLL)。
如果可能,在使用 libzip 1.9.1 時實作 zip 串流的 fseek。
版本 8.1.31
2024 年 11 月 21 日
CLI
修正錯誤
GHSA-4w77-75f9-2c8w
(CLI SAPI 介面中 sapi_read_post_data 處理的堆積使用後釋放)。
LDAP
修正了錯誤
GHSA-g665-fm4p-vhff
(ldap_escape 中的 OOB 存取)。 (CVE-2024-8932)
MySQLnd
修正了錯誤
GHSA-h35g-vwh6-m678
(透過堆積緩衝區過度讀取洩漏堆積的部分內容)。 (CVE-2024-8929)
PDO DBLIB
修正了錯誤
GHSA-5hqh-c84r-qjcv
(dblib 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
PDO Firebird
修正了錯誤
GHSA-5hqh-c84r-qjcv
(firebird 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
Streams
修正了錯誤
GHSA-c5f2-jwm7-mmq2
(在 stream 上下文中設定 Proxy 可能允許在 URI 中進行 CRLF 注入)。 (CVE-2024-11234)
修正了錯誤
GHSA-r977-prxv-hc43
(使用 convert.quoted-printable-decode 篩選器進行單一位元組過度讀取)。 (CVE-2024-11233)
版本 8.1.30
2024 年 9 月 26 日
CGI
修正錯誤 GHSA-p99j-rfp4-xqvq (繞過 CVE-2024-4577,參數注入漏洞)。(CVE-2024-8926)
修正錯誤 GHSA-94p6-54jq-9mwp (由於環境變數衝突,可以繞過 cgi.force_redirect 設定)。(CVE-2024-8927)
FPM
修正錯誤 GHSA-865w-9rf3-2wh5 (可以變更子進程的記錄)。(CVE-2024-9026)
SAPI
修正錯誤 GHSA-9pqp-7h25-4f32 (多部分表單資料的錯誤剖析)。(CVE-2024-8925)
版本 8.1.29
2024 年 6 月 6 日
CGI
修正了錯誤 GHSA-3qgc-jrrr-25jv (繞過 CVE-2012-1823,PHP-CGI 中的引數注入)。 (CVE-2024-4577)
Filter
修正了錯誤 GHSA-w8qr-v226-r27w (filter_var FILTER_VALIDATE_URL 中的篩選器繞過)。 (CVE-2024-5458)
OpenSSL
PHP 中的 openssl_private_decrypt 函式,當使用 PKCS1 填補時 (OPENSSL_PKCS1_PADDING,這是預設值),除非它與包含此提取要求變更的 OpenSSL 版本一起使用:https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection),否則容易受到 Marvin 攻擊。這些變更屬於 OpenSSL 3.2 的一部分,並且也已向後移植到各種 Linux 發行版的穩定版本,以及自上次發佈以來為 Windows 提供的 PHP 建置版本。所有發行者和建置者都應確保使用此版本以防止 PHP 容易受到攻擊。
Standard
修正了錯誤 GHSA-9fcc-425m-g385 (繞過 CVE-2024-1874)。 (CVE-2024-5585)
版本 8.1.28
2024 年 4 月 11 日
Standard
修正錯誤 GHSA-pc52-254m-w9w7 (透過 proc_open 的陣列式 $command 參數進行命令注入)。(CVE-2024-1874)
修正錯誤 GHSA-wpj3-hf5j-x4v4 (由於部分 CVE-2022-31629 修復,__Host-/__Secure- Cookie 繞過)。(CVE-2024-2756)
修正錯誤 GHSA-h746-cjrr-wfmr (password_verify 可能會錯誤地傳回 true,開啟 ATO 風險)。(CVE-2024-3096)
版本 8.1.27
2023 年 12 月 21 日
核心
修正 oss-fuzz #54325 (使用惡意錯誤處理常式在變數-變數中釋放名稱後使用)。
修正 oss-fuzz #64209 (在 php_message_handler_for_zend 中就地修改檔案名稱)。
修正錯誤
GH-12758
/
GH-12768
(ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 內的 OOM 處理器中存在無效的 opline)。
DOM
修正錯誤
GH-12616
(DOM:移除 XMLNS 命名空間節點會產生無效的預設:前綴)。
FPM
修正錯誤
GH-12705
(fpm_status_export_to_zval 中發生分段錯誤)。
Intl
修正錯誤
GH-12635
(使用 ICU 74.1 時,Test bug69398.phpt 失敗)。
LibXML
修正錯誤
GH-12702
(從 src 建置 libxml2 2.12.0 的問題)。
MySQLnd
避免使用未初始化的結構。
OpenSSL
修正錯誤
#50713
(openssl_pkcs7_verify() 可能會忽略不受信任的 CA)。
PCRE
修正錯誤
GH-12628
(gh11374 測試在 Alpinelinux 上失敗)。
PGSQL
修正錯誤
GH-12763
(pg_untrace 的引數型別錯誤)。
PHPDBG
修正錯誤
GH-12675
(phpdbg_prompt.c 中的 MEMORY_LEAK)。
SQLite3
修正錯誤
GH-12633
(sqlite 3.44.0 時,sqlite3_defensive.phpt 失敗)。
Standard
修正 syslog 裝置處理中的記憶體洩漏。
修正錯誤
GH-12621
(在 vhost 中設定時,browscap 區段錯誤)。
修正錯誤
GH-12655
(proc_open() 不會將描述符陣列中的參考納入考量)。
Streams
修正錯誤
#79945
(imagecreatefrompng 中的串流包裝函式會造成區段錯誤)。
Zip
修正錯誤
GH-12661
(ZipArchive::addGlob remove_path 選項行為中的不一致)。
版本 8.1.26
2023 年 11 月 23 日
核心
修正錯誤
GH-12468
(透過 trait 覆寫靜態屬性時 doc_comment 重複釋放)。
修正 FFI 物件的弱參考造成的區段錯誤。
修正 max_execution_time:不要刪除未初始化的計時器。
DOM
修正註冊具有抽象類別的 registerNodeClass 時發生崩潰。
新增遺失的 NULL 指標錯誤檢查。
修正 php:function() 回呼的驗證邏輯。
Fiber
修正錯誤
GH-11121
(ReflectionFiber 區段錯誤)。
FPM
修正錯誤
GH-9921
(在 FPM 設定中載入 ext 不會註冊模組處理常式)。
修正錯誤
GH-12232
(FPM:動態載入沒有 opcache 的擴充功能時發生區段錯誤)。
Intl
移除 IntlDateFormatter::construct 在使用無效的地區設定時擲出例外的 BC 中斷。
Opcache
新增無法啟用 JIT 時的警告訊息。
修正錯誤
GH-8143
(由於磁碟快取損毀,升級至 8.1.3 後,zend_accel_inheritance_cache_find 中發生崩潰)。
OpenSSL
修正錯誤
GH-12489
(openssl_cms_verify 中遺失 sigbio 建立檢查)。
PCRE
修正錯誤
GH-11374
(回溯上游修正,使用 -d pcre.jit=0 時,preg_match 結果不同)。
SOAP
修正錯誤
GH-12392
(SoapClient::__getTypes 發生區段錯誤)。
修正錯誤
#66150
(SOAP WSDL 快取競爭條件造成區段錯誤)。
修正錯誤
#67617
(SOAP 在 ENOSPC 時留下不完整的快取檔案)。
修正 SOAP 快取中的 URI 檢查不正確的問題。
修正具有參考計數屬性和陣列時發生的區段錯誤和斷言失敗。
修正在持久編碼器的邊緣案例中可能發生的崩潰。
修正錯誤
#75306
(SoapClient 中的記憶體洩漏)。
Streams
修正錯誤
#75708
(在 StreamWrappers 上使用「&$imageinfo」的 getimagesize 失敗)。
XMLReader
新增遺失的 NULL 指標錯誤檢查。
XMLWriter
新增遺失的 NULL 指標錯誤檢查。
XSL
新增遺失的模組相依性。
修正 php:function() 回呼的驗證邏輯。
版本 8.1.25
2023 年 10 月 26 日
核心
修正錯誤
GH-12207
(類別使用具有 doc 區塊的 trait 時發生記憶體洩漏)。
修正錯誤
GH-12215
(正在覆寫的模組項目會在 ext/dom 中造成型別錯誤)。
修正錯誤
GH-12273
(__builtin_cpu_init 檢查)。
修正錯誤
#80092
(ZTS + preload = 關機時發生區段錯誤)。
CLI
確保存在單一 Date 標頭。
CType
修正了
GH-11997
錯誤 (ctype_alnum 在 PHP 8.1 或更高版本中速度慢 5 倍)。
DOM
恢復舊的命名空間協調行為。
修正了
GH-8996
錯誤 (在 PHP ^8.1 上進行 DOMNode 序列化)。
Fileinfo
修正了
GH-11891
錯誤 (fileinfo 為某些 svg 檔案返回 text/xml)。
Filter
修正了帶有 FILTER_CALLBACK 的明確 FILTER_REQUIRE_SCALAR (ilutov)
Hash
修正了
GH-12186
錯誤 (複製/克隆已最終化的 HashContext 時發生區段錯誤)。
Intl
修正了
GH-12243
錯誤 (在 IntlDateFormatter::construct 上發生區段錯誤)。
修正了
GH-12282
錯誤 (IntlDateFormatter::construct 應該在無效的 locale 上拋出例外)。
MySQLnd
修正了
GH-12297
錯誤 (PHP Startup: 在 Unknown 行中出現無效的函式庫 (可能不是 PHP 函式庫) 'mysqlnd.so')。
Opcache
修正了已刪除檔案上的 opcache_invalidate()。
修正了
GH-12380
錯誤 (JIT+閉包內部的私有陣列屬性存取會存取子類別中的私有屬性)。
PCRE
修正了
GH-11956
錯誤 (回溯上游修正,啟用 JIT 的 PCRE 正規表示式會產生不同的結果)。
SimpleXML
修正了
GH-12170
錯誤 (無法在 SimpleXML 中使用帶有註解的 xpath)。
修正了
GH-12223
錯誤 (實體參照在 var_dump/print_r 中產生無限迴圈)。
修正了
GH-12167
錯誤 (無法在 SimpleXML 中取得處理指令內容)。
修正了
GH-12169
錯誤 (無法在 SimpleXML 中取得註解內容)。
Streams
修正了
GH-12190
錯誤 (以位址和連接埠皆為 0 的方式繫結 ipv4 位址)。
XML
修正了 xml_parse_into_struct() stub 的回傳類型。
修正了兩次呼叫 xml_parse_into_struct() 時的記憶體洩漏。
XSL
修正了帶有 SimpleXML 的 XSLTProcessor::transformToDoc 回傳值的類型錯誤。
Sockets
修正具有錯誤協定的 socket_export_stream() (twosee)
版本 8.1.24
2023 年 9 月 28 日
核心
修正了
GH-11937
錯誤 (包含物件的常數 AST)。
修正了
GH-11790
錯誤 (在 riscv64 上,如果實際需要才需要 libatomic)。
修正了
GH-12073
錯誤 (釋放未完全初始化的閉包時發生區段錯誤)。
修正了
GH-12060
錯誤 (內部迭代器倒帶處理常式被呼叫兩次)。
修正了
GH-12102
錯誤 (在函式呼叫中使用 TMP 值上的陣列存取時,發生不正確的編譯錯誤)。
DOM
修正了設定無效 DOMDocument 編碼時的記憶體洩漏。
Iconv
修正了仍然使用舊版 iconv 簽章的 NetBSD 建置。
Intl
修正了
GH-12020
錯誤 (在 MessageFormatter::formatMessage() 失敗後,intl_get_error_message() 損壞)。
MySQLnd
修正了
GH-10270
錯誤 (透過 SSL 連線失敗時出現無效的錯誤訊息:「嘗試透過 (null) 連線」)。
ODBC
修正了失敗的 SQLPrepare 的記憶體洩漏。
修正了未關閉的持續程序性 ODBC 連線。
SimpleXML
修正了
#52751
錯誤 (不支援 XPath processing-instruction() 函式)。
SPL
修正了
GH-11972
錯誤 (8.1.18 中的 RecursiveCallbackFilterIterator 回歸)。
SQLite3
修正了
GH-11878
錯誤 (帶有可呼叫陣列的 SQLite3 回呼函式會導致記憶體洩漏)。
版本 8.1.23
2023 年 8 月 31 日
CLI
修正了
GH-11716
錯誤 (使用 ZEND_RC_DEBUG=1 編譯時,cli 伺服器在 SIGINT 時當機)。
修正了
GH-10964
錯誤 (改善關於內建伺服器的人工頁面)。
核心
修正了設定時 strerror_r 的偵測。
Date
修正錯誤
GH-11416
:當傳入未初始化的物件時,DatePeriod 發生崩潰。
DOM
修正了 DOMEntity 欄位 getter 錯誤。
修正了 DOMElement::setAttributeNodeNS 中不正確的屬性存在檢查。
修正了與自身使用的 DOMCharacterData::replaceWith()。
修正了 DOMParentNode 方法的空引數案例。
修正了
GH-11791
錯誤 (DOMDocument::xmlStandalone 的錯誤預設值)。
修正了 DOMDocument 上的 json_encode 結果。
修正了在 DOM 類別上手動呼叫 __construct()。
修正了
GH-11830
錯誤 (ParentNode 方法應該預先執行其檢查)。
修正了在子項目消失時呼叫 DOMParentNode::prepend() 會發生的區段錯誤。
FFI
修正了在使用 FFI::cdef()->new(...) 時洩漏的定義。
MySQLnd
修正了
GH-11440
錯誤 (使用 SSL 時,使用 sha256_password 帳戶進行驗證會失敗)。
修正了
GH-11438
錯誤 (mysqlnd 無法使用長度超過 19 個字元的密碼來驗證 sha256_password 帳戶)。
修正了
GH-11550
錯誤 (當回應欄位變更時,MySQL 語句會產生空的查詢結果,並且也會發生區段錯誤)。
修正了連線中斷時出現的無效錯誤訊息「封包格式錯誤」。
Opcache
修正了
GH-11715
錯誤 (opcache.interned_strings_buffer 沒有效果,或 opcache_get_status() / phpinfo() 不正確)。
避免在重新啟動正在進行時,從 shm 載入指令碼時加入不必要的讀取鎖定。
PCNTL
將接收 SIGCHLD 訊號的行為還原為 8.1.22 之前的行為。
SPL
修正了
#81992
錯誤 (SplFixedArray::setSize() 導致使用後釋放)。
Standard
防止 number_format 中 $decimals 上的整數溢位。
修正了
GH-11870
錯誤 (修正截斷 tempnam 前置詞時的差一錯誤) (athos-ribeiro)
版本 8.1.22
2023 年 8 月 3 日
建置
修正了
GH-11522
錯誤 (PHP 版本檢查使用 '-' 分隔符號會失敗)。
CLI
修正了導致程序結束的中斷 CLI 輸出。
核心
修正了 oss-fuzz #60011 (by-reference nullsafe 運算子的錯誤編譯)。
修正了在 assert 上使用 ??= 時使用未初始化的值。
修正了 11.0 版本之前的 FreeBSD 建置。
Curl
修正了將無效的回呼函式傳遞至 CURLMOPT_PUSHFUNCTION 時發生的當機。
Date
修正了
GH-11368
錯誤 (Date modify 返回無效的日期時間)。
DOM
修正了
GH-11625
錯誤 (DOMElement::replaceWith() 不會以 DOMDocumentFragment 取代節點,而只會根據 libxml2 版本刪除節點或導致包裝 <></>)。
Fileinfo
修正了
GH-11298
錯誤 (finfo 為 xz 檔案返回錯誤的 mime 類型)。
FTP
修正了「覆寫」的內容選項檢查。
修正了
GH-10562
錯誤 (連續 ftp_nb_fget 時的記憶體洩漏和無效狀態)。
GD
修正了大多數外部 libgd 測試失敗。
Hash
修正了 hash_pbkdf2() 中使用未初始化的值,並修正了簽章中遺失的 $options 參數。
Intl
修正了失敗時 MessageFormatter::format() 中的記憶體洩漏。
Libxml
修正了 GHSA-3qrf-m4j2-pcrr 錯誤 (在未啟用 XML 的情況下,於 XML 中載入外部實體的安全性問題)。(CVE-2023-3823)
MBString
修正了
GH-11300
錯誤 (授權問題:受限的 Unicode 授權標頭)。
Opcache
修正了
GH-10914
錯誤 (帶有列舉和回呼函式的 OPCache 會導致區段錯誤)。
如果無法配置加速的全域變數,則防止潛在的死結。
PCNTL
修正了
GH-11498
錯誤 (SIGCHLD 不一定會從 proc_open 返回)。
PCRE
使用 JIT 選項修改 PCRE 正規表示式快取索引鍵。
PDO
修正了
GH-11587
錯誤 (在 php8.1 之後,當 PDO::ATTR_EMULATE_PREPARES 為 true 且 PDO::ATTR_STRINGIFY_FETCHES 為 true 時,十進制零不再填入)。
PDO SQLite
修正了
GH-11492
錯誤 (使測試失敗:ext/pdo_sqlite/tests/bug_42589.phpt)。
Phar
在 phar util 中加入遺失的 EVP_VerifyUpdate() 檢查。
修正了 GHSA-jqcx-ccgc-xwhv 錯誤 (phar_dir_read() 中的緩衝區管理不當)。(CVE-2023-3824)
PHPDBG
修正了
GH-9669
錯誤 (phpdbg -h 選項未列出 -z 選項)。
Session
移除了用於傳輸工作階段 ID 的損壞 url 支援。
Standard
修正了物件圖形中出現兩次的 RC1 物件的序列化。
SQLite3
修正了 SQLite3Stmt::__construct 中已取代的錯誤處理。
版本 8.1.21
2023 年 7 月 6 日
CLI
修正了
GH-11246
錯誤 (cli/get_set_process_title 在 MacOS 上失敗)。
核心
修正了 riscv64 架構/GCC 12 的建置。
Curl
修正了
GH-11433
錯誤 (無法將 CURLOPT_ACCEPT_ENCODING 設定為 NULL)。
DOM
修正了
GH-11288
、
GH-11289
、
GH-11290
和
GH-9142
錯誤 (帶有 replaceWith 的 DOMExceptions 和區段錯誤)。
修正了
GH-10234
錯誤 (設定 DOMAttr::textContent 會導致屬性值為空)。
修正了 DOMNodeList::item stub 檔案中的回傳值。
修正了 DOMDocument::getElementsByTagNameNS 的 '*' 命名空間的規格符合錯誤。
修正了 DOMElement::append() 和 DOMElement::prepend() 階層檢查。
修正了
GH-11347
錯誤 (在 xpath 查詢中呼叫靜態方法時發生記憶體洩漏)。
修正了
#67440
錯誤 (DOMDocumentFragment 的 append_node 不會協調命名空間)。
修正了
#81642
錯誤 (使用自身取代節點時,DOMChildNode::replaceWith() 錯誤)。
修正了
#77686
錯誤 (getElementbyId 仍然返回已移除的元素)。
修正了
#70359
錯誤 (DOMAttr 上的 print_r() 會導致 php_libxml_node_free_list() 中的區段錯誤)。
修正了
#78577
錯誤 (DOMNameSpace 偵錯資訊處理常式中的當機)。
修正了 getAttributeNodeNS() 的存留期問題。
修正了已複製命名空間宣告的「無效狀態錯誤」。
修正了
#55294
和 #47530 和 #47847 錯誤 (各種命名空間協調問題)。
修正了
#80332
錯誤 (使用 DOMNamedNodeMap 的完全損壞陣列存取功能)。
Opcache
修正了 zend_shared_alloc_startup() 中的配置迴圈。
使用 ALLOC_FALLBACK 時 smm_shared_globals 上的存取違規。
修正了
GH-11336
錯誤 (php 仍然嘗試使用 opcache.file_cache_only=1 解鎖共享記憶體 ZendSem,但它從未被鎖定)。
OpenSSL
修正了
GH-9356
錯誤 (subjectAltNames 中 IPv6 位址欄位的不完整驗證) (James Lucas, Jakub Zelenka)。
PGSQL
修正了 pg_trace 間歇性的區段錯誤。
Phar
修正了 FreeBSD phar 生成中的交叉編譯檢查。
SPL
修正了
GH-11338
錯誤 (SplFileInfo 以多個斜線為空 getBasename)。
Standard
修正了 array_merge_recursive() 中 NULL 指標的存取。
修正了 array_multisort() 中的例外處理。
版本 8.1.20
2023 年 6 月 8 日
核心
修正了
GH-9068
錯誤 (條件跳躍或移動依賴於未初始化的值)。
修正了
GH-11189
錯誤 (zend_hash_do_resize 中超出記憶體限制會使陣列處於無效狀態)。
修正了
GH-11222
錯誤 (by-ref foreach 可能會在重新雜湊期間跳過索引鍵)。
Date
修正錯誤
GH-11281
(DateTimeZone::getName() 在偏移量中未包含秒數)。
Exif
修正錯誤
GH-10834
(exif_read_data() 無法讀取較小的串流封裝器區塊大小)。
FPM
修正錯誤
GH-10461
(PHP-FPM 因使用子進程的 child->ev_std(out|err) 釋放後的記憶體而發生分段錯誤)。
修正錯誤
#64539
(FPM 狀態頁面:query_string 未正確進行 JSON 編碼)。
修正無效主要腳本檔案句柄的記憶體洩漏問題。
Hash
修正錯誤
GH-11180
(hash_file() 似乎僅限於 3 個參數)。
LibXML
修正錯誤
GH-11160
(使用新的 libxml 2.11.0 建置時,少數測試失敗)。
Opcache
修正錯誤
GH-11134
(不正確的預設分支最佳化)。
修正過於寬鬆的 OR 和 AND 範圍推斷。
修正錯誤
GH-11245
(在某些特定情況下,具有一個預設語句的 SWITCH 會導致分段錯誤)。
PGSQL
修正 pg_lo_export() 的參數解析。
Phar
修正錯誤
GH-11099
(在交叉編譯期間無法產生 phar.php)。
Soap
修正錯誤 GHSA-76gg-c692-v2mw (SOAP 的 HTTP Digest 驗證中遺失錯誤檢查且隨機位元組不足)。(CVE-2023-3247)
修正錯誤
GH-8426
(建置 soap 擴展時 make test 失敗)。
SPL
修正錯誤
GH-11178
(spl_array_it_get_current_data 中發生分段錯誤 (PHP 8.1.18))。
Standard
修正錯誤
GH-11138
(move_uploaded_file() 對於來源檔案發出 open_basedir 警告)。
修正錯誤
GH-11274
(在 HTTP 308 重新導向後,POST/PATCH 請求切換為 GET)。
Streams
修正錯誤
GH-10031
([串流] STREAM_NOTIFY_PROGRESS 對於最後一塊資料不規則地發出 HTTP 訊號)。
修正錯誤
GH-11175
(串流 Socket 超時)。
修正錯誤
GH-11177
(當 timeout = -1 傳遞至 stream_socket_accept/stream_socket_client 時,發生 ASAN UndefinedBehaviorSanitizer)。
版本 8.1.19
2023 年 5 月 11 日
核心
修正常數表達式中不一致的浮點數負數運算。
修正錯誤
GH-8841
(php-cli 呼叫格式不正確的函數時發生核心傾印)。
修正錯誤
GH-10737
(PHP 8.1.16 在 sapi/apache2handler/sapi_apache2.c 的第 597 行發生分段錯誤)。
修正錯誤
GH-11028
(zval_undefined_cv 中的堆積緩衝區溢位)。
修正錯誤
GH-11108
(在 ??= 中中止後,不正確的 CG(memoize_mode) 狀態)。
DOM
修正錯誤
#80602
(使用 DOMChildNode::before() 時發生分段錯誤)。
修正 dom_zvals_to_fragment() 中不正確的錯誤處理。
Exif
修正錯誤
GH-9397
(exif 讀取:警告和錯誤:潛在的無效位元組序、非法 IFD 大小和未定義索引)。
Intl
修正錯誤
GH-11071
(不再顯示 TZData 版本)。
PCRE
修正錯誤
GH-10968
(preg_replace_callback_array() 中發生分段錯誤)。
Standard
修正錯誤
GH-10990
(mail() 在透過引用迭代 $additional_headers 陣列後,擲回 TypeError)。
修正錯誤
GH-9775
(當使用列舉時,array_unique 會傳回重複項)。
版本 8.1.18
2023 年 4 月 13 日
核心
在 ZTS/Linux 建置中新增 max_execution_time 的選用支援。
修正遞迴 AST 評估中的使用後釋放。
修正錯誤
GH-8646
(記憶體洩漏 PHP FPM 8.1)。
修正錯誤
GH-10801
(CTE 函數中的命名引數導致分段錯誤)。
修正錯誤
GH-8789
(PHP 8.0.20 (ZTS) zend_signal_handler_defer 在 apache 上當機)。
修正錯誤
GH-10015
(zend_signal_handler_defer 在 apache 關閉時當機)。
修正錯誤
GH-10810
(修正以 NUL 位元組終止 Exception::__toString())。
修正混合使用 __callStatic() 和 FFI 時潛在的記憶體損毀問題。
Date
修正錯誤
GH-10583
(具有時區模式的 DateTime 修改不應更新連結的時區)。
FPM
修正錯誤
GH-10611
(fpm_env_init_main 會洩漏 environ)。
在 fpm_main 中銷毀 file_handle。
修正錯誤
#74129
(當路徑中有空格時,apache ProxyPassMatch 的 SCRIPT_NAME 不正確)。
FTP
傳播 ftp_close() 的成功狀態。
修正錯誤
GH-10521
(ftp_get/ftp_nb_get resumepos 偏移量的最大值為 10GB)。
IMAP
修正 Clang 16 的建置失敗問題。
MySQLnd
修正錯誤
GH-8979
(啟用 SSL 的 MySQL 連線可能發生記憶體洩漏)。
Opcache
修正 macOS 的建置,以符合 pkg-config 設定。
修正錯誤
GH-8065
(opcache.consistency_checks > 0 會在 fpm 環境中導致 PHP >= 8.1.5 發生分段錯誤)。
OpenSSL
在檔案寫入函數中新增遺失的錯誤檢查。
PDO Firebird
修正錯誤
GH-10908
(在具有 64 位元核心和 32 位元使用者空間的 RPI 上,使用 PDO Firebird 時發生匯流排錯誤)。
PDO ODBC
修正 SQLAllocHandle 中遺失且不一致的錯誤檢查。
Phar
修正錯誤
GH-10766
(使用 Phar::Zip 格式建立的 PharData 封存檔不會保留檔案中繼資料 (日期時間))。
在 EVP_MD_CTX_create() 和 EVP_VerifyInit() 中新增遺失的錯誤檢查。
PGSQL
修正 pg_meta_data (擴展模式) 傳回的陣列中的錯字。
SPL
修正錯誤
GH-10519
(陣列資料位址參考問題)。
修正錯誤
GH-10844
(ArrayIterator 允許修改唯讀屬性)。
Standard
修正錯誤
GH-10885
(stream_socket_server 環境洩漏)。
修正錯誤
GH-10052
(Browscap 在請求關閉時 (apache2) 導致 PHP 8.1.12 當機)。
修正 oss-fuzz #57392 (使用 \0 分隔符號和封閉符號的 php_fgetcsv() 中發生緩衝區溢位)。
修正 unpack() 中的未定義行為。
版本 8.1.17
2023 年 3 月 16 日
核心
修正 ZEND_YIELD 中不正確的檢查條件。
修正類型推斷中不正確的檢查條件。
修正 OnUpdateMemoryConsumption 中的溢位檢查。
修正錯誤
GH-9916
(在關閉序列中,以暫停在產生器中的纖程發出無法避免的嚴重錯誤或當機)。
修正錯誤
GH-10437
(在中止後,在關閉函數中使用纖程時發生分段錯誤/判斷提示)。
修正複合指派運算碼的 SSA 物件類型更新。
修正語言掃描器產生建置。
修正 zend_update_static_property() 錯誤地呼叫具有錯誤傳回類型的 zend_update_static_property_ex()。
修正錯誤
GH-10570
(修正使用整數常數名稱擷取屬性時,未知字串雜湊)。
修正在 php_fopen_primary_script() 呼叫中,zend_destroy_file_handle() 釋放句柄上的懸空指標,因為它未初始化。
Curl
修正在編譯時發出的棄用警告。
修正錯誤
GH-10270
(無法在 readfunc 回呼中傳回 CURL_READFUNC_PAUSE)。
Date
修正
GH-10447
('p' 格式規範不會為 00:00 產生 'Z')。
FFI
修正 ffi 位欄位中不正確的位元移位和遮罩。
Fiber
修正 alpine x86 上的組譯碼。
修正錯誤
GH-10496
(在纖程內呼叫垃圾收集器時發生分段錯誤)。
FPM
修正錯誤
GH-10315
(FPM 未知子進程警示無效)。
修正錯誤
GH-10385
(FPM 成功組態測試提早退出)。
Intl
修正錯誤
GH-10647
(Spoolchecker isSuspicious/areConfusable 方法的錯誤代碼引數總是傳回 NULL0)。
JSON
修正 JSON 掃描器和剖析器產生建置。
MBString
ext/mbstring:修正 new_value 長度檢查。
修正錯誤
GH-10627
(mb_convert_encoding 在 Windows 上導致 PHP 當機)。
Opcache
修正不正確的 page_size 檢查。
OpenSSL
修正 php_openssl_set_server_dh_param() DH 參數的錯誤處理。
PDO OCI
修正錯誤
#60994
(讀取多位元組 CLOB 時,上限為 8192 個字元)。
PHPDBG
修正錯誤
GH-10715
(錯誤使用 --run 選項時發生堆積緩衝區溢位)。
PGSQL
修正
GH-10672
(pg_lo_open 在 strict_types 模式下發生分段錯誤)。
Phar
修正 phar tar 剖析中不正確的檢查。
Reflection
修正錯誤
GH-10623
(Reflection::getClosureUsedVariables 運算碼使用可變引數修正)。
修正當使用內部函數暫停的 ReflectionFiber 時發生分段錯誤。
Session
修正在失敗程式碼路徑上使用 -1 而不是 0 作為 ps_files_cleanup_dir(),因為後者被呼叫者視為成功。(nielsdos)。
Standard
修正錯誤
GH-10292
(將 srand() 和 mt_srand() 的第一個參數的預設值設為未知)。
修正 map_from_unicode() 中 cs_8559_5 的不正確檢查。
修正錯誤
GH-9697
,用於 reset/end/next/prev() 嘗試移動某些內部類別 (例如 FFI 類別) 的屬性表格指標。
修正 browsecap 中 pcre2_match() 的不正確錯誤檢查。
Tidy
修正嘗試開啟不存在的檔案或超過 4GB 的檔案時發生的記憶體洩漏問題。
在 tidyLoadConfig 上新增遺失的錯誤檢查。
Zlib
修正 output_handler 指示詞值的長度,該長度計算字串終止符。
版本 8.1.16
2023 年 2 月 14 日
核心
修正錯誤
#81744
(Password_verify() 總是針對某些雜湊傳回 true)。
修正錯誤
#81746
(通用路徑解析程式碼中的 1 位元組陣列溢出)。
SAPI
修正了錯誤 GHSA-54hq-v5wp-fqgv (解析 multipart 請求主體時的 DOS 漏洞)。 (CVE-2023-0662)
版本 8.1.15
2023 年 2 月 2 日
Apache
修正了錯誤
GH-9949
(不完整的 POST 請求上的部分內容)。
核心
修正錯誤
GH-10072
(當 execute_ex 被覆寫且從內部程式碼使用 __call 跳轉時,PHP 會崩潰)。
修正了
GH-10251
(斷言 `(flag & (1<<3)) == 0' 失敗)。
修正在運算碼更新後,區塊最佳化傳遞中的錯誤比較。
Date
修正錯誤
GH-9891
(使用 unixtimestamp (@) 修改的 DateTime 必須像 setTimestamp 那樣工作)。
修正錯誤
GH-10218
(DateTimeZone 無法解析包含 "+" 字元的時區)。
Fiber
修正在堆疊配置大小上的斷言。
FPM
修正了錯誤
GH-9981
(FPM 未重置 fastcgi.error_header)。
修正了錯誤
#67244
(監聽 unix socket 的錯誤擁有者:群組)。
Hash
處理 XXH3 初始化中 __toString 的例外狀況 (nielsdos)
LDAP
修正了錯誤
GH-10112
(LDAP\Connection::__construct() 參照 ldap_create())。
MBString
已修正:mb_strlen(以及其他幾個 mbstring 函數)會錯誤地將 0x80、0xFD、0xFE、0xFF 和某些其他位元組值視為 2 位元組 SJIS 字元的第一個位元組。
Opcache
修正了 zend_runtime_jit() 中反轉的退出值 (Max Kellermann)。
修正了 accel_preload() 中對未初始化變數的存取。
修正了 zend_jit_find_trace() 當機的問題。
為 zend_jit_trace_exit 中的 EXIT_INVALIDATE 添加了遺失的鎖。
Phar
修正了 phar_object.c 中壓縮方法的錯誤旗標檢查 (nielsdos)
PHPDBG
修正了 phpdbg_load_module_or_extension() 中的未定義行為。
修正了 phpdbg_create_conditional_breal() 中的 NULL 指標取消引用。
修正了
GH-9710
:phpdbg 因選項 "-h" 造成的記憶體洩漏 (nielsdos)
修正了 phpdbg 在輸入格式錯誤時發生的區段錯誤 (nielsdos)
Posix
修正了 posix_ttyname() 中的記憶體洩漏 (girgias)
Standard
修正了
GH-10187
(在 arm64 上使用 stripslashes() 時發生區段錯誤)。
修正了 repl_ht 中具有 UNDEF 插槽的 substr_replace。
TSRM
修正了關於 IPC_PRIVATE 的 Windows shmget()。
XMLWriter
修正了 xmlTextWriterEndElement 中遺失的檢查 (nielsdos)
版本 8.1.14
2023 年 1 月 5 日
核心
修正了錯誤
GH-9905
(當類別未定義時,constant() 行為不一致)。
修正了錯誤
GH-9918
(xxHash 的授權資訊未包含在 README.REDIST.BINS 檔案中)。
修正了錯誤
GH-9650
(無法初始化堆積:[0x000001e7])。
修正了 Windows ftok(3) 模擬中可能未定義的行為。
Date
修正錯誤
GH-9699
(DateTimeImmutable::diff 在 8.1.10 及更新版本中的差異 - 與時區相關)。
修正錯誤
GH-9700
(DateTime::createFromFormat:解析 TZID 字串太貪婪)。
修正錯誤
GH-9866
(\DateTimeInterface::diff() 中的時區錯誤)。
修正錯誤
GH-9880
(使用時區時,DateTime diff 在天數計數上傳回錯誤符號)。
FPM
修正了錯誤
GH-9959
(在錯誤 #66694 之後,Solaris 連接埠事件機制仍然損壞)。
修正了錯誤
#68207
(設定 fastcgi.error_header 可能會導致警告)。
修正了錯誤
GH-8517
(FPM 主要程序在 fpm_stdio_child_said 中隨機當機)。
MBString
修正了錯誤
GH-9535
(mb_strcut 在 mbstring 中的行為已在 PHP8.1 中變更)。
Opcache
修正了錯誤
GH-9968
(OPCache 預載期間發生區段錯誤)。
OpenSSL
修正了錯誤
GH-9064
(如果 OpenSSL 使用 --no-ec 建置,PHP 無法建置)。
修正了錯誤
GH-10000
(當 OpenSSL 使用 no-dsa 編譯時,OpenSSL 測試失敗)。
Pcntl
修正了錯誤
GH-9298
(在 rshutdown 之後呼叫的訊號處理程式導致當機)。
PDO_Firebird
修正了錯誤
GH-9971
(從 PDO_Firebird 回傳的 NUMERIC 值不正確)。
PDO/SQLite
修正了錯誤
#81740
(PDO::quote() 可能會回傳未加引號的字串)。 (CVE-2022-31631)
Session
修正了
GH-9932
(session name 使用 . 和 [ 時會靜默失敗)。
SPL
修正了
GH-9883
(SplFileObject::__toString() 會讀取下一行)。
修正了
GH-10011
(Trampoline 自動載入器將會重新註冊且無法取消註冊)。
SQLite3
修正了錯誤
#81742
(透過使用 file URI 在 SQLite3 中繞過 open_basedir)。
版本 8.1.13
2022 年 11 月 24 日
CLI
修正了錯誤
GH-9709
(使用 -w/-s 選項時的 Null 指標取消引用)。
核心
修正了錯誤
GH-9752
(當使用額外的命名參數在引數評估期間中斷時,產生器會當機)。
修正了錯誤
GH-9801
(當初始化期間超出記憶體限制時,產生器會當機)。
修正了 Windows shm*() 函式中潛在的 NULL 指標取消引用。
修正了錯誤
GH-9750
(當在引數評估期間中斷時,產生器發生記憶體洩漏)。
Date
修正錯誤
GH-9763
(DateTimeZone ctr 處理輸入錯誤,如果參數是超過 100*60 分鐘的偏移量,則會新增空位元組)。
FPM
修正了錯誤
GH-9754
(當執行 php-fpm 8.1.11 時,SaltStack (使用 Python subprocess) 會掛起)。
mysqli
修正錯誤
GH-9841
(即使使用靜音錯誤模式,mysqli_query 仍會拋出警告)。
MySQLnd
修正因對齊不匹配而導致的潛在堆積損壞。
OpenSSL
修正錯誤
GH-8430
(使用 no-md2、no-md4 或 no-rmd160 編譯的 OpenSSL 無法建置)。
SOAP
修正
GH-9720
(序列化回應時的空指標取值)。
版本 8.1.12
2022 年 10 月 27 日
核心
修正了在 FreeBSD i386 架構上使用 Fiber 時發生的區段錯誤。
Fileinfo
修正了錯誤
GH-8805
(finfo 回傳 woff/woff2 檔案的錯誤 mime 類型)。
GD
修正了錯誤
#81739
:由於 imageloadfont() 中輸入驗證不足造成的 OOB 讀取。 (CVE-2022-31630)
Hash
修正了錯誤
#81738
:長參數上的 hash_update() 中的緩衝區溢位。 (CVE-2022-37454)
MBString
修正錯誤
GH-9683
(在 mb_encode_mimeheader 中指定 ISO-2022-JP-MS 時發生的問題)。
Opcache
在 x86 架構上新增 JIT 的間接呼叫減少。
Session
修正錯誤
GH-9583
(session_create_id() 在使用者定義的儲存處理常式沒有 validateId() 方法時失敗)。
Streams
修正錯誤
GH-9590
(stream_select 不會在例外或空的有效 fd 集合時中止)。
版本 8.1.11
2022 年 9 月 29 日
核心
修正錯誤
#81726
:phar 封裝:使用 quine gzip 檔案時發生 DOS 攻擊。(CVE-2022-31628)
修正錯誤
#81727
:不要篡改與具有特定語義含義的 HTTP 變數名稱衝突的變數名稱。(CVE-2022-31629)
修正了錯誤
GH-9323
(ZEND_RETURN/GC/zend_call_function 中當機) (Tim Starling)
修正錯誤
GH-9361
(腳本退出時發生區段錯誤 #9379)。
修正錯誤
GH-9447
(在常數表達式中,針對 new 和類別常數,AST 轉儲發出的類別 FQN 無效)。
DOM
修正錯誤
#79451
(在 doctype 上執行 DOMDocument->replaceChild 會導致 double free)。
FPM
修正錯誤
GH-8885
(在守護進程重新載入後,使用 stderr 的 FPM access.log 開始將日誌寫入 error_log)。
修正錯誤
#77780
(當先前的連線中止時,出現「Headers already sent...」)。
GMP
修正了錯誤
GH-9308
(當將 GMP 物件傳遞至 gmp_init() 時,GMP 會拋出錯誤訊息)。
Intl
修正錯誤
GH-9421
(NumberFormatter 中 ValueError 的參數數量不正確)。
PCRE
修正 Apple Silicon 上的 pcre.jit。
PDO_PGSQL
修正錯誤
GH-9411
(PgSQL 大型物件資源關閉不正確)。
Reflection
修正錯誤
GH-8932
(ReflectionFunction 無法取得 Closure 的已呼叫類別)。
Streams
修正錯誤
GH-9316
(長狀態列的 $http_response_header 不正確)。
版本 8.1.10
2022 年 9 月 1 日
核心
修正 run-tests.php 的 --CGI-- 支援。
修正了最新 clang 中不正確的 double 到 long 的轉換。
修正錯誤
GH-9266
(當存在 dtors 時,GC 根緩衝區會持續增長)。
Date
修正了錯誤
GH-8730
(DateTime::diff 錯誤計算是不同類型的相同時區)。
修正了錯誤
GH-8964
(套用小於 1 秒的差異後的 DateTime 物件比較)。
修正錯誤
GH-9106
:(自 PHP 8.1.0 起,新增至 DateTimeInterface 的 DateInterval 1.5 秒會被捨去)。
修正了錯誤
#81263
(DateTimeImmutable::diff 的錯誤結果)。
DBA
修正 LMDB 驅動程式在資料庫建立失敗時的記憶體洩漏。
修正錯誤
GH-9155
(dba_open("non-existing", "c-", "flatfile") 發生區段錯誤)。
IMAP
修正錯誤
GH-9309
(在 imap_close() 之後使用連線時發生區段錯誤)。
Intl
修正 IntlDateFormatter::formatObject() 參數類型。
MBString
修正錯誤
GH-9008
(mb_detect_encoding():使用 null $encodings 時結果錯誤)。
OPcache
修正錯誤
GH-9033
(由於長度為負數,載入黑名單檔案可能會失敗)。
修正錯誤
GH-9164
(zend_accel_class_hash_copy 中的區段錯誤)。
PDO_SQLite
修正錯誤
GH-9032
(SQLite3 authorizer 在 NULL 值時崩潰)。
SQLite3
修正錯誤
GH-9032
(SQLite3 authorizer 在 NULL 值時崩潰)。
Streams
修正錯誤
GH-8472
(stream_socket_accept 傳回的資源可能具有不正確的中繼資料)。
修正錯誤
GH-8409
(SSL 交握逾時會導致持續連線掛起)。
版本 8.1.9
2022 年 8 月 4 日
CLI
修正了透過 PHP_CLI_SERVER_WORKERS 環境變數,內建伺服器可能發生的溢位問題。
修正
GH-8952
(不再能刻意關閉標準處理常式)。
核心
修正錯誤
GH-8923
(Windows 上的 error_log 可能會保留檔案寫入鎖定)。
修正了錯誤
GH-8995
(WeakMap 物件參考偏移導致 TypeError)。
Date
修正錯誤
#80047
(DatePeriod 不會警告自訂的 DateTimeImmutable)。
FPM
修正 zlog 訊息前置,在不正確的位址上釋放。
修正組態載入失敗時可能發生的 double free。(Heiko Weber)。
GD
修正錯誤
GH-8848
(imagecopyresized() 錯誤參考到錯誤的引數)。
Intl
修正 ICU 69.x 及更新版本的建置問題。
OPcache
修正錯誤
GH-8847
(當檢查有效檔案的 php 語法時,PHP 無限期地以 100% CPU 執行)。
修正錯誤
GH-8030
(JIT 和大型 match/switch 語句導致的區段錯誤)。
Reflection
修正錯誤
GH-8943
(修正具有 readonly 修飾詞的 Reflection::getModifierNames())。
Standard
修正使用 clang > 12 建置的 crypt_sha256/512 api。
在 macOs 上使用 CCRandomGenerateBytes 而不是 arc4random_buf。(David Carlier)。
修正錯誤
GH-9017
(php_stream_sock_open_from_socket 可能會傳回 NULL)。
版本 8.1.8
2022 年 7 月 7 日
核心
修正錯誤
GH-8338
(Intel CET 被意外停用)。
修正使用 JIT 時,在內部列舉的 Enum::from/tryFrom 中發生洩漏
修正從擴充功能程式碼以靜態返回類型呼叫內部方法。
修正了錯誤
GH-8655
(將物件轉換為陣列不會解開 refcount=1 的參考)。
修正 php_binary_init() 中潛在的 use after free。
CLI
修正
GH-8827
(不再能刻意關閉標準處理常式)。
COM
修正錯誤
GH-8778
(大型數字變體的整數算術失敗)。
Curl
修正 CURLOPT_TLSAUTH_TYPE 未被視為字串選項。
Date
修正錯誤
#72963
(在 CreateFromFormat 和相關函式中注入空位元組)。
修正錯誤
#74671
(DST 時區縮寫具有不正確的偏移量)。
修正錯誤
#77243
(對於負數年份,星期幾的計算不正確)。
修正錯誤
#78139
(timezone_open 接受無效的時區字串引數)。
Fileinfo
修正錯誤
#81723
(finfo_buffer 中堆積緩衝區溢位)。(CVE-2022-31627)
FPM
修正錯誤
#67764
(fpm:syslog.ident 無法運作)。
GD
修正 imagecreatefromavif() 記憶體洩漏。
MBString
mb_detect_encoding 識別捷克字母表中的所有字母
mb_detect_encoding 識別匈牙利字母表中的所有字母
修正錯誤
GH-8685
(mbstring 啟動時 pcre 尚未就緒)。
還原 Shift-JIS 中 0x5C/0x7E 的向後相容對應,因為它們已在 8.1.0 中變更。
ODBC
修正單一金鑰連線字串的處理。
OPcache
修正錯誤
GH-8591
(在私有實例方法變更後追蹤 JIT 崩潰)。
OpenSSL
修正錯誤
#50293
(數個 openssl 函式會忽略 VCWD)。
修正錯誤
#81713
(數個使用憑證的 OpenSSL 函式中注入 NULL 位元組)。
PDO_ODBC
修正單一金鑰連線字串的處理。
Zip
修正錯誤
GH-8781
(ZipArchive::close 會刪除 zip 檔案,而不會更新 stat 快取)。
版本 8.1.7
2022 年 6 月 9 日
CLI
修正錯誤
GH-8575
(CLI 過早關閉標準串流)。
Date
修正錯誤
#51934
(strtotime 複數 / 時間不正確)。
修正錯誤
#51987
(Datetime 無法剖析 ISO 8601 序數日期 (擴充格式))。
修正錯誤
#66019
(DateTime 物件不支援短 ISO 8601 時間格式 - YYYY-MM-DDTHH)
修正錯誤
#68549
(當使用日期時,未正確使用時區和偏移量)
修正錯誤
#81565
(當提供包含秒的時區時,日期剖析失敗)。
修正錯誤
GH-7758
(負數時間戳記和分數的問題)。
FPM
修正 MacOS 上的 ACL 建置檢查。
修正錯誤
#72185
: php-fpm 寫入空白 fcgi 記錄導致 nginx 502。
mysqlnd
修正錯誤
#81719
:mysqlnd/pdo 密碼緩衝區溢位。(CVE-2022-31626)
OPcache
修正錯誤
GH-8461
(在函式/方法變更後追蹤 JIT 崩潰)。
OpenSSL
修正錯誤
#79589
(錯誤:14095126:SSL routines:ssl3_read_n:unexpected eof while reading)。
Pcntl
修正 Haiku 建置。
pgsql
修正錯誤
#81720
:pg_query_params() 中未初始化的陣列。(CVE-2022-31625)
Soap
修正錯誤
GH-8578
(SoapHeader 建構函式上錯誤參數的錯誤)。
修正錯誤
GH-8538
(SoapClient 可能會移除 nmtokens 的部分內容)。
SPL
修正錯誤
GH-8235
(iterator_count() 可能會無限期地執行)。
Standard
修正錯誤
GH-8185
(在 ZTS 中 dl() 之後卸載擴充功能時發生崩潰)。
Zip
修正 ZipArchive::replaceFile 中索引的類型。
版本 8.1.6
2022 年 5 月 12 日
核心
修正錯誤
GH-8310
(不再識別登錄設定)。
修正在資源 ID 配置期間可能發生的競爭條件。
修正錯誤
GH-8133
(預先載入包含列舉的陣列的常數會發生區段錯誤)。
修正 Haiku ZTS 建置。
Date
修正錯誤
GH-7752
(DateTimeZone::getTransitions() 傳回的資料不足)。
修正錯誤
GH-8108
(時區無法如預期運作)。
修正錯誤
#81660
(DateTimeZone::getTransitions() 傳回無效資料)。
修正錯誤
GH-8289
(在產生器中,不會重新擲回從產生器中產生之迭代器內擲回的例外)。
FFI
修正錯誤
GH-8433
(在 FFI 中將函式指標指派給結構時發生洩漏)。
FPM
修正錯誤
#76003
(FPM /status 回報的作用中處理程序數量錯誤)。
修正錯誤
#77023
(FPM 無法關閉處理程序)。
修正 kqueue 移除回呼日誌訊息中的註解。
Hash
修正錯誤
#81714
(序列化已完成的 HashContext 時發生區段錯誤)。
Iconv
修正錯誤
GH-8218
(ob_end_clean 不會重設 Content-Encoding 標頭)。
Intl
修正錯誤
GH-8364
(msgfmt_format $values 可能不支援參考)。
MBString
針對無效 UTF-8 文字發出的錯誤標記數目符合 WHATWG 規格。這是回到 PHP 8.0 及更早版本的行為。
MySQLi
修正錯誤
GH-8267
(MySQLi 在 Windows 上使用不受支援的格式規範)。
SPL
修正錯誤
GH-8366
(在呼叫 __construct() 時,ArrayIterator 可能會洩漏)。
修正錯誤
GH-8273
(SplFileObject:key() 傳回錯誤的值)。
Streams
修復 php://temp 在切換至暫存檔案時不會保留檔案位置的問題。
zlib
修正錯誤
GH-8218
(ob_end_clean 不會重設 Content-Encoding 標頭)。
版本 8.1.5
2022 年 4 月 14 日
核心
修正錯誤
GH-8176
(屬性初始設定式中的列舉值會洩漏)。
修正內部屬性引數的釋放。
修正錯誤
GH-8070
(內部函式屬性雜湊的記憶體洩漏)。
修正錯誤
GH-8160
(Alpine 上的 ZTS 支援已損壞)。
Filter
修正 php_filter_validate_domain() 中有號性混淆的問題。
Intl
修正錯誤
GH-8115
(在具現化 Intl 類別時,無法擷取引數類型棄用)。
修正錯誤
GH-8142
(cygwin 上的編譯錯誤)。
修正錯誤
GH-7734
(修正 IntlPartsIterator 索引關閉一錯誤和第一個索引)。
MBString
修正錯誤
GH-8208
(mb_encode_mimeheader: $indent 功能已損壞)。
MySQLi
修正錯誤
GH-8068
(mysqli_fetch_object 建立無法存取的屬性)。
Pcntl
修正錯誤
GH-8142
(cygwin 上的編譯錯誤)。
PgSQL
修正在 LLP64 架構上與 result_type 相關的堆疊損壞。
修正錯誤
GH-8253
(pg_insert() 對於參考失敗)。
Sockets
修正 Solaris 建置。
SPL
修正錯誤
GH-8121
(SplFileObject - 使用 csv 檔案時,seek 和 key 不一致)。
修正錯誤
GH-8192
(無法在 8.1 中覆寫沒有返回類型提示的 DirectoryIterator::current())。
Standard
修正錯誤
GH-8048
(強制 macOS 使用 statfs)。
版本 8.1.4
2022 年 3 月 17 日
核心
修正 Haiku ZTS 建置。
修正錯誤
GH-8059
未針對擴充功能重新產生 arginfo。
修正錯誤
GH-8083
傾印具有靜態變數的未呼叫虛擬閉包時發生區段錯誤。
修正了錯誤
GH-7958
(巢狀 CallbackFilterIterator 導致記憶體洩漏)。
修正了錯誤
GH-8074
(range() 結果的類型推斷錯誤)。
修正了錯誤
GH-8140
(透過名稱優化第一類可呼叫物件錯誤)。
修正了錯誤
GH-8082
(當觀察時,具有暫時 run_time_cache 的 op_arrays 會導致記憶體洩漏)。
GD
修正了載入交錯影像時 libpng 發出的警告。
FPM
修正了錯誤
#76109
(不安全地存取 fpm 計分板)。
Iconv
修正了錯誤
GH-7953
(ob_clean() 只清除內容,未設定 Content-Encoding)。
修正了錯誤
GH-7980
(iconv_mime_decode 的非預期結果)。
MBString
修正了錯誤
GH-8128
(mb_check_encoding 對於 7bit 的錯誤結果)。
MySQLnd
修正了錯誤
GH-8058
(mysqlnd 套件中的 NULL 指標取值)。
Reflection
修正了錯誤
GH-8080
(ReflectionClass::getConstants() 依賴定義順序)。
Zlib
修正了錯誤
GH-7953
(ob_clean() 只清除內容,未設定 Content-Encoding)。
版本 8.1.3
2022 年 2 月 17 日
核心
修正了錯誤
#81430
(屬性實例化留下懸空指標)。
修正了錯誤
GH-7896
(在 Windows 上,環境變數可能會被損壞)。
修正了錯誤
GH-7883
(當 INI 檔案不可讀取時發生 Segfault)。
FFI
修正了錯誤
GH-7867
(從指標轉換為陣列的 FFI::cast() 損壞)。
Filter
修正 #81708:由於 php_filter_float() 對於整數失敗導致 UAF。(CVE-2021-21708)
FPM
修正了無效連接埠上的記憶體洩漏問題。
修正了錯誤
GH-7842
(FPM 狀態頁面傳回無效的 OpenMetrics 回應格式)。
MBString
修正了錯誤
GH-7902
(mb_send_mail 可能只使用 LF 分隔標頭)。
MySQLnd
修正了錯誤
GH-7972
(MariaDB 版本前綴 5.5.5- 未被移除)。
pcntl
修正了 DragonFlyBSD 的 pcntl_rfork 建置問題。
Sockets
修正了錯誤
GH-7978
(sockets 擴充功能編譯錯誤)。
Standard
修正了錯誤
GH-7899
(unpack 對於負整數值的迴歸錯誤)。
修正了錯誤
GH-7875
(即使記錄失敗拋出例外,郵件仍會被傳送)。
版本 8.1.2
2022 年 1 月 20 日
核心
修正了錯誤
#81216
(Nullsafe 運算符導致動態屬性名稱洩漏)。
修正了錯誤
#81684
(將 null 合併賦值與 $GLOBALS["x"] 結合使用會產生 opcode 錯誤)。
修正了錯誤
#81656
(GCC-11 靜默忽略 -R)。
修正了錯誤
#81683
(最終或抽象介面方法上產生誤導性的「存取類型 ... 必須為 public」錯誤訊息)。
修正了錯誤
#81585
(cached_chunks 在關閉時未計入 real_size)。
修正了錯誤
GH-7757
(多重繼承的 final 常數導致嚴重錯誤)。
使用 ZEND_FIBER_UCONTEXT 修正 zend_fibers.c 的建置。
新增 riscv64 對 fiber 的支援。
Filter
修正 FILTER_FLAG_NO_RES_RANGE 旗標。
Hash
修正了錯誤
GH-7759
(hash() 和 hash_hmac() 的回傳類型不正確)。
修正了錯誤
GH-7826
(hash_hmac_file 和 hash_file 中的參數名稱不一致)。
MBString
修正了錯誤
#81693
(mb_check_encoding(7bit) 產生 segfault)。
MySQLi
修正了錯誤
#81658
(MariaDB 中無法使用 MYSQL_OPT_LOAD_DATA_LOCAL_DIR)。
引入 MYSQLI_IS_MARIADB。
修正了錯誤
GH-7746
(mysqli_sql_exception->getSqlState())。
MySQLnd
修正了可能會截斷大型 bigint 的錯誤。
OCI8
修正了錯誤
GH-7765
(php_oci_cleanup_global_handles 在第二次呼叫時發生 segfault)。
OPcache
修正了錯誤
#81679
(追蹤 JIT 在重新附加時崩潰)。
Readline
修正了錯誤
#81598
(無法在 PHP 8 互動式 shell 中輸入 Unicode 字元)。
Reflection
修正了錯誤
#81681
(ReflectionEnum 拋出例外)。
PDO_PGSQL
修正了 PDO PgSQL 的錯誤訊息分配問題。
Sockets
避免在 NetBSD 上 sockets/multicast.c 中使用 void* 算術。
修正了 Haiku 上的 ext/sockets 建置問題。
Spl
修正了錯誤
#75917
(SplFileObject::seek 在使用 CSV 旗標時損壞)。
修正了錯誤
GH-7809
(複製偽造的 SplFileInfo 物件可能會產生 segfault)。
Standard
修正了錯誤
GH-7748
(gethostbyaddr 輸出二進位字串)。
修正了錯誤
GH-7815
(php_uname 無法識別最新的 Windows 版本)。
版本 8.1.1
2021 年 12 月 2 日
IMAP
修正了錯誤
#81649
(imap_(un)delete 接受序列,而不是單個數字)。
PCRE
將捆綁的 PCRE2 更新至 10.39。
修正了錯誤
#74604
(php_pcre_replace_impl 中的越界)。
Standard
修正了錯誤
#81659
(stream_get_contents() 可能會不必要地過度分配記憶體)。
版本 8.1.0
2021 年 11 月 25 日
核心
修正了 Windows 上 phpize 建置的包含順序。
為 arr/obj/ref 新增遺失的雜湊表插入 API。
實作 FR
#77372
(從上傳檔案中移除相對檔案路徑)。
修正了錯誤
#81607
(使用並行存取時的 CE_CACHE 分配)。
修正了錯誤
#81507
(Fiber 在 AIX 上無法編譯)。
修正了錯誤
#78647
(zend_do_perform_implementation_check 中的 SEGFAULT)。
修正了錯誤
#81518
(透過 default_mimetype / default_charset 進行標頭注入)。
修正了錯誤
#75941
(修正使用 clang 在 Solaris 上編譯失敗的問題)。
修正了錯誤
#81380
(觀察者可能未正確初始化)。
修正了錯誤
#81514
(在 WeakMap 中使用 Enum 作為鍵會觸發 GC + SegFault)。
修正了錯誤
#81520
(在 run-tests.php 中,TEST_PHP_CGI_EXECUTABLE 設定錯誤)。
修正了錯誤
#81377
(unset() $GLOBALS 子鍵會產生警告)。
修正了錯誤
#81342
(新的 & 符號 token 解析取決於它之後是否有新的一行)。
修正了錯誤
#81280
(cli.prompt 中的 Unicode 字元導致 segfault)。
修正了錯誤
#81192
(「宣告應與之相容」在 traits 中給出不正確的行號)。
修正了錯誤
#78919
(CLI 伺服器:如果請求啟動失敗,則清理不足)。
修正了錯誤
#81303
(改進 match 錯誤訊息)。
修正了錯誤
#81238
(Solaris Sparc 缺少 Fiber 支援)。
修正了錯誤
#81237
(偽造閉包的比較不起作用)。
修正了錯誤
#81202
(powerpc64 建置在 fibers 上失敗)。
修正了錯誤
#80072
(TMPVAR 運算元中的循環反序列化可能會洩漏)。
修正了錯誤
#81163
(__sleep 允許回傳非陣列)。
修正了錯誤
#75474
(函式作用域的靜態變數未繫結至唯一的函式)。
修正了錯誤
#53826
(如果方法是私有的,則透過父層呼叫在基底類別中觸發 __callStatic)。
修正了錯誤
#81076
(具有隱式繫結的閉包上不正確的偵錯資訊)。
CLI
修正了錯誤
#81496
(伺服器記錄不正確的請求方法)。
COM
使用 LANG_NEUTRAL 而非 LOCALE_SYSTEM_DEFAULT 進行分派。
Curl
修正了錯誤
#81085
(支援憑證字串的 CURLOPT_SSLCERT_BLOB)。
Date
修正了錯誤
#81458
(時區變更後,回歸錯誤的不正確差異)。
修正了錯誤
#81500
(自 7.3.14 / 7.4.2 以來的間隔序列化迴歸)。
修正了錯誤
#81504
(POSIX 資料的時區轉換詳細資訊不正確)。
修正了錯誤
#80998
(反轉間隔缺少秒數)。
加快尋找時區偏移資訊的速度。
修正了錯誤
#79580
(date_create_from_format 遺漏閏年)。
修正了錯誤
#80963
(DateTimeZone::getTransitions() 被截斷)。
修正了錯誤
#80974
(不同時區中 2 個日期之間的錯誤差異)。
修正了錯誤
#80998
(反轉間隔缺少秒數)。
修正了錯誤
#81097
(當提供帶有秒數的偏移量時,DateTimeZone 會靜默地退回至 UTC)。
修正了錯誤
#81106
(8.1 中的回歸:add() 現在會截斷 ->f)。
修正了錯誤
#81273
(日期間隔計算不正確)。
修正了錯誤
#52480
(使用 DateInterval 的不正確差異)。
修正了錯誤
#62326
(date_diff() 函式回傳錯誤結果)。
修正了錯誤
#64992
(dst 在 2038 年之後未被處理)。
修正了錯誤
#65003
(錯誤的日期差異)。
修正了錯誤
#66545
(DateTime. diff 回傳負值)。
修正了錯誤
#68503
(在設定時區的情況下,date_diff 針對兩個日期傳回本地化的錯誤結果)。
修正了錯誤
#69806
(來自時間戳記的錯誤日期)。
修正了錯誤
#71700
(在 2016 年 3 月初和月底之間差異多出的一天)。
修正了錯誤
#71826
(DateTime::diff 在時區「Asia/Tokyo」上混淆)。
修正了錯誤
#73460
(Datetime add 未意識到它已套用 DST 變更)。
修正了錯誤
#74173
(DateTimeImmutable::getTimestamp() 在錯誤的時間觸發 DST 切換)。
修正了錯誤
#74274
(正確處理 DST 轉換)。
修正了錯誤
#74524
(日期差異計算錯誤,在相同的時區中)。
修正了錯誤
#75167
(DateTime::add 只關心向後 DST 轉換,而不是向前轉換)。
修正了錯誤
#76032
(DateTime->diff 在 UTC 之前的時區中閏日存在問題)。
修正了錯誤
#76374
(日期差異因時間而異)。
修正了錯誤
#77571
(DateTime 的 diff DateInterval 在 UTC+01:00 至 UTC+12:00 的時區中不正確)。
修正了錯誤
#78452
(diff 對於 Asia/Tehran 的小時計算錯誤)。
修正了錯誤
#79452
(DateTime::diff() 在時區之間產生不同的月份)。
修正了錯誤
#79698
(timelib 錯誤處理未來的時間戳記 (由 'zic -b slim' 觸發))。
修正了錯誤
#79716
(建立的無效日期時間 (日期為「00」))。
修正了錯誤
#80610
(DateTime 使用 DateInterval 計算錯誤)。
修正了錯誤
#80664
(DateTime 物件在 DST 轉換附近行為不正確)。
修正了錯誤
#80913
(DateTime(Immutable)::sub 在 DST 附近產生錯誤的時間)。
DBA
修正了錯誤
#81588
(TokyoCabinet 驅動程式洩漏記憶體)。
DOM
修正了錯誤
#81433
(DOMElement::setIdAttribute() 呼叫兩次可能會移除 ID)。
FFI
修正了錯誤
#79576
(當未定義類型時,「TYPE *」顯示無用的訊息)。
Filter
修正了錯誤
#61700
(FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE 失敗)。
FPM
修正了錯誤
#81513
(FPM zlog 中未來可能發生堆積溢位)。
修正了錯誤
#81026
(PHP-FPM 在根程序中的 oob R/W 導致權限提升) (CVE-2021-21703)。
新增 openmetrics 狀態格式。
在 macOS 上啟用程序重新命名。
新增 pm.max_spawn_rate 選項來配置最大產生子程序速率。
修正了錯誤
#65800
(事件連接埠機制)。
FTP
將 resource<ftp> 轉換為物件 \FTP\Connection。
GD
修正了錯誤
#71316
(來自 imagecreatefromstring 的 libpng 警告)。
將 resource<gd font> 轉換為物件 \GdFont。
新增 Avif 影像的支援
hash
實作 FR
#68109
(新增 MurmurHash V3)。
實作 FR
#73385
(新增 xxHash 支援)。
JSON
修復錯誤
#81532
(PHP 8.1 中 json_encode() 的 $depth 行為變更)。
LDAP
將 resource<ldap link> 轉換為物件 \LDAP\Connection。
將 resource<ldap result> 轉換為物件 \LDAP\Result。
將 resource<ldap result entry> 轉換為物件 \LDAP\ResultEntry。
MBString
修復錯誤
#76167
(mbstring 可能會使用先前請求的指標)。
修復錯誤
#81390
(mb_detect_encoding() 回歸問題)。
修復錯誤
#81349
(mb_detect_encoding 在某些情況下會誤判 ASCII)。
修復錯誤
#81298
(指定 7 位元編碼時 mb_detect_encoding() 會發生段錯誤)。
MySQLi
修復錯誤
#70372
(為 libmysqlclient 模擬 mysqli_fetch_all())。
修復錯誤
#80330
(替換 API 和原始碼/文件中的語言)。
修復錯誤
#80329
(新增選項以指定 LOAD DATA LOCAL 白名單資料夾 (包含 libmysql))。
MySQLnd
修復錯誤
#63327
(mysqlnd 中由於對齊錯誤導致崩潰 (匯流排錯誤))。
修復錯誤
#80761
(PDO 使用過多記憶體)。
Opcache
修復錯誤
#81409
(帶有陣列參照的 ADD 指令的 JIT 程式碼不正確)。
修復錯誤
#81255
(使用功能性 JIT 時,PHPUnit 中的記憶體洩漏)。
修復錯誤
#80959
(在 JIT 編譯期間,建置 cfg 時出現無限迴圈)。
修復錯誤
#81225
(啟用 JIT 時,pow 運算子結果錯誤)。
修復錯誤
#81249
(啟用 JIT 時,屬性指派間歇性失敗)。
修復錯誤
#81256
(對於使用 JIT 的「preload」,斷言 `zv != ((void *)0)` 失敗)。
修復錯誤
#81133
(使用 phpize 建置 opcache 失敗)。
修復錯誤
#81136
(opcache 標頭未安裝)。
新增繼承快取。
OpenSSL
修復錯誤
#81502
(openssl_decrypt() 的 $tag 參數應接受 null/空字串)。
將最低 OpenSSL 版本提升至 1.0.2。
PCRE
修復錯誤
#81424
(PCRE2 10.35 JIT 效能回歸)。
捆綁的 PCRE2 為 10.37。
PDO
修復錯誤
#40913
(PDO_MYSQL:PDO::PARAM_LOB 不會繫結至用於提取 BLOB 的串流)。
PDO MySQL
修復錯誤
#80908
(PDO::lastInsertId() 回傳錯誤)。
修復錯誤
#81037
(PDO 捨棄預備陳述式的錯誤訊息文字)。
PDO OCI
修復錯誤
#77120
(支援連線時的「成功並附帶資訊」)。
PDO ODBC
為 PDO::getAttribute() 實作 PDO_ATTR_SERVER_VERSION 和 PDO_ATTR_SERVER_INFO。
PDO PgSQL
修復錯誤
#81343
(pdo_pgsql:在呼叫 closeCursor() 後,布林值轉換不一致)。
PDO SQLite
修復錯誤
#38334
(PDO_SQLITE 的正確資料類型支援)。
PgSQL
修復錯誤
#81509
(pg_end_copy 仍需要資源)。
將 resource<pgsql link> 轉換為物件 \PgSql\Connection。
將 resource<pgsql result> 轉換為物件 \PgSql\Result。
將 resource<pgsql large object> 轉換為物件 \PgSql\Lob。
Phar
預設為簽章使用 SHA256。
新增 OpenSSL_SHA256 和 OpenSSL_SHA512 簽章的支援。
phpdbg
修復錯誤
#81135
(不明的說明主題導致斷言失敗)。
PSpell
將 resource<pspell> 轉換為物件 \PSpell\Dictionary。
將 resource<pspell config> 轉換為物件 \PSpell\Config。
readline
修復錯誤
#72998
(readline 完成時的無效讀取)。
Reflection
修復錯誤
#81611
(從使用 new 的 ReflectionParameter 取得預設值時發生 ArgumentCountError)。
修復錯誤
#81630
(PHP 8.1:ReflectionClass->getTraitAliases() 發生內部錯誤而崩潰)。
修復錯誤
#81457
(Enum:ReflectionMethod->getDeclaringClass() 回傳 ReflectionClass)。
修復錯誤
#81474
(讓 ReflectionEnum 和相關類別為非 final)。
修復錯誤
#80821
(ReflectionProperty::getDefaultValue() 回傳靜態屬性的目前值)。
修復錯誤
#80564
(ReflectionProperty::__toString() 呈現目前值,而非預設值)。
修復錯誤
#80097
(ReflectionAttribute 不是 Reflector)。
修復錯誤
#81200
(無法判斷 Closure 是否為 static)。
實作 ReflectionFunctionAbstract::getClosureUsedVariables。
Shmop
修復錯誤
#81407
(shmop_open 無法附加並導致 php 崩潰)。
SimpleXML
修復錯誤
#81325
(zif_simplexml_import_dom 中的段錯誤)。
SNMP
為安全協定實作 SHA256 和 SHA512。
Sodium
新增 XChaCha20 串流加密函式。
新增 Ristretto255 函式,這些函式可在 libsodium 1.0.18 中使用。
SPL
修復錯誤
#66588
(SplFileObject::fgetcsv 在提早 EOF 時錯誤地回傳列)。
修復錯誤
#80663
(遞迴 SplFixedArray::setSize() 可能會導致雙重釋放)。
修復錯誤
#81477
(8.0.1 中 LimitIterator + SplFileObject 的回歸問題)。
修復錯誤
#81112
(SplFixedArray 的特殊 json_encode 行為)。
修復錯誤
#80945
(在 unset() ArrayObject 不存在的索引鍵時出現「Notice:未定義的索引」)。
修復錯誤
#80724
(FilesystemIterator::FOLLOW_SYMLINKS 從位元遮罩中移除 KEY_AS_FILE)。
Standard
修復錯誤
#81441
(在呼叫其他方法後,gethostbyaddr('::1') 回傳 IP 而非名稱)。
修復錯誤
#81491
(argon2 雜湊不正確地使用 libsodium)。
修復錯誤
#81142
(在對關聯陣列使用 unserialize() 時,PHP 7.3+ 發生記憶體洩漏)。
修復錯誤
#81111
(匿名類別具有 __serialize() 時,意外允許序列化)。
修復錯誤
#81137
(hrtime 在 Sierra 之前的 OSX 上中斷建置)。
修復錯誤
#77627
(Closure::__invoke 的 method_exists 不一致)。
Streams
修復錯誤
#81475
(stream_isatty 在附加串流封裝器時發出警告)。
XML
修復錯誤
#79971
(特殊字元中斷 xml 函式中的路徑) (CVE-2021-21707)。
修復錯誤
#70962
(XML_OPTION_SKIP_WHITE 會移除內嵌的空格)。
Zip
修復錯誤
#81490
(ZipArchive::extractTo() 可能會洩漏記憶體)。
修復錯誤
#77978
(以冒號結尾的 Dirname 解壓縮至錯誤的目錄)。
修復錯誤
#81420
(ZipArchive::extractTo 解壓縮至目的地之外) (CVE-2021-21706)。
修復錯誤
#80833
(ZipArchive::getStream 不使用 setPassword)。
版本 8.0.30
2023 年 8 月 3 日
Libxml
修正了 GHSA-3qrf-m4j2-pcrr 錯誤 (在未啟用 XML 的情況下,於 XML 中載入外部實體的安全性問題)。(CVE-2023-3823)
Phar
修正了 GHSA-jqcx-ccgc-xwhv 錯誤 (phar_dir_read() 中的緩衝區管理不當)。(CVE-2023-3824)
版本 8.0.29
2023 年 6 月 8 日
Soap
修正錯誤 GHSA-76gg-c692-v2mw (SOAP 的 HTTP Digest 驗證中遺失錯誤檢查且隨機位元組不足)。(CVE-2023-3247)
版本 8.0.28
2023 年 2 月 14 日
核心
修正錯誤
#81744
(Password_verify() 總是針對某些雜湊傳回 true)。
修正錯誤
#81746
(通用路徑解析程式碼中的 1 位元組陣列溢出)。
SAPI
修正了錯誤 GHSA-54hq-v5wp-fqgv (解析 multipart 請求主體時的 DOS 漏洞)。 (CVE-2023-0662)
版本 8.0.27
2023 年 1 月 5 日
PDO/SQLite
修正了錯誤
#81740
(PDO::quote() 可能會回傳未加引號的字串)。 (CVE-2022-31631)
版本 8.0.26
2022 年 11 月 24 日
CLI
修正了錯誤
GH-9709
(使用 -w/-s 選項時的 Null 指標取消引用)。
核心
修正了錯誤
GH-9752
(當使用額外的命名參數在引數評估期間中斷時,產生器會當機)。
修正了錯誤
GH-9801
(當初始化期間超出記憶體限制時,產生器會當機)。
修復 Windows shm*() 函式中潛在的 NULL 指標取值。
修正了錯誤
GH-9750
(當在引數評估期間中斷時,產生器發生記憶體洩漏)。
Date
修正錯誤
GH-9763
(DateTimeZone ctr 處理輸入錯誤,如果參數是超過 100*60 分鐘的偏移量,則會新增空位元組)。
FPM
修正了錯誤
GH-9754
(當執行 php-fpm 8.1.11 時,SaltStack (使用 Python subprocess) 會掛起)。
mysqli
修正錯誤
GH-9841
(即使使用靜音錯誤模式,mysqli_query 仍會拋出警告)。
OpenSSL
修正錯誤
GH-8430
(使用 no-md2、no-md4 或 no-rmd160 編譯的 OpenSSL 無法建置)。
SOAP
修正
GH-9720
(序列化回應時的空指標取值)。
版本 8.0.25
2022 年 10 月 27 日
GD
修正了錯誤
#81739
:由於 imageloadfont() 中輸入驗證不足造成的 OOB 讀取。 (CVE-2022-31630)
Hash
修正了錯誤
#81738
:長參數上的 hash_update() 中的緩衝區溢位。 (CVE-2022-37454)
Session
修正錯誤
GH-9583
(session_create_id() 在使用者定義的儲存處理常式沒有 validateId() 方法時失敗)。
Streams
修正錯誤
GH-9590
(stream_select 不會在例外或空的有效 fd 集合時中止)。
版本 8.0.24
2022 年 9 月 29 日
核心
修正了錯誤
GH-9323
(ZEND_RETURN/GC/zend_call_function 中當機) (Tim Starling)
修正錯誤
GH-9361
(腳本退出時發生區段錯誤 #9379)。
修復錯誤
GH-9407
(eval 程式碼中的 LSP 錯誤是指向靜態類型的錯誤類別)。
修正錯誤
#81727
:不要篡改與具有特定語義含義的 HTTP 變數名稱衝突的變數名稱。(CVE-2022-31629)
DOM
修正錯誤
#79451
(在 doctype 上執行 DOMDocument->replaceChild 會導致 double free)。
FPM
修正錯誤
GH-8885
(在守護進程重新載入後,使用 stderr 的 FPM access.log 開始將日誌寫入 error_log)。
修正錯誤
#77780
(當先前的連線中止時,出現「Headers already sent...」)。
GMP
修正了錯誤
GH-9308
(當將 GMP 物件傳遞至 gmp_init() 時,GMP 會拋出錯誤訊息)。
Intl
修正錯誤
GH-9421
(NumberFormatter 中 ValueError 的參數數量不正確)。
Phar
修正錯誤
#81726
:phar 封裝:使用 quine gzip 檔案時發生 DOS 攻擊。(CVE-2022-31628)
PDO_PGSQL
修正錯誤
GH-9411
(PgSQL 大型物件資源關閉不正確)。
Reflection
修正錯誤
GH-8932
(ReflectionFunction 無法取得 Closure 的已呼叫類別)。
修復錯誤
GH-9409
(私有方法會錯誤地傾印為「覆寫」)。
Streams
修正錯誤
GH-9316
(長狀態列的 $http_response_header 不正確)。
版本 8.0.23
2022 年 9 月 1 日
核心
修正了最新 clang 中不正確的 double 到 long 的轉換。
DBA
修正 LMDB 驅動程式在資料庫建立失敗時的記憶體洩漏。
修正錯誤
GH-9155
(dba_open("non-existing", "c-", "flatfile") 發生區段錯誤)。
Intl
修正 IntlDateFormatter::formatObject() 參數類型。
OPcache
修正錯誤
GH-9033
(由於長度為負數,載入黑名單檔案可能會失敗)。
PDO_SQLite
修正錯誤
GH-9032
(SQLite3 authorizer 在 NULL 值時崩潰)。
SQLite3
修正錯誤
GH-9032
(SQLite3 authorizer 在 NULL 值時崩潰)。
Standard
修正錯誤
GH-9017
(php_stream_sock_open_from_socket 可能會傳回 NULL)。
Streams
修正錯誤
GH-8472
(stream_socket_accept 傳回的資源可能具有不正確的中繼資料)。
修正錯誤
GH-8409
(SSL 交握逾時會導致持續連線掛起)。
版本 8.0.22
2022 年 8 月 4 日
CLI
修正了透過 PHP_CLI_SERVER_WORKERS 環境變數,內建伺服器可能發生的溢位問題。
核心
修正錯誤
GH-8923
(Windows 上的 error_log 可能會保留檔案寫入鎖定)。
修正了錯誤
GH-8995
(WeakMap 物件參考偏移導致 TypeError)。
Date
修正錯誤
#80047
(DatePeriod 不會警告自訂的 DateTimeImmutable)。
DBA
修復在嘗試刪除不存在的索引鍵時,LMDB 驅動程式掛起的問題。
FPM
修正 zlog 訊息前置,在不正確的位址上釋放。
修復在組態載入失敗時可能發生的雙重釋放。
GD
修正錯誤
GH-8848
(imagecopyresized() 錯誤參考到錯誤的引數)。
Intl
修正 ICU 69.x 及更新版本的建置問題。
OPcache
修復錯誤
GH-8847
(當檢查有效檔案的 php 語法時,PHP 無限期掛起並占用 100% CPU)。
Standard
修正使用 clang > 12 建置的 crypt_sha256/512 api。
在 macOS 上使用 CCRandomGenerateBytes 而非 arc4random_buf。
版本 8.0.21
2022 年 7 月 7 日
核心
修正 php_binary_init() 中潛在的 use after free。
CLI
修正
GH-8827
(不再能刻意關閉標準處理常式)。
COM
修正錯誤
GH-8778
(大型數字變體的整數算術失敗)。
Curl
修正 CURLOPT_TLSAUTH_TYPE 未被視為字串選項。
Date
修正錯誤
#74671
(DST 時區縮寫具有不正確的偏移量)。
修正錯誤
#77243
(對於負數年份,星期幾的計算不正確)。
修正錯誤
#78139
(timezone_open 接受無效的時區字串引數)。
FPM
修正錯誤
#67764
(fpm:syslog.ident 無法運作)。
MBString
修正錯誤
GH-8685
(mbstring 啟動時 pcre 尚未就緒)。
ODBC
修正單一金鑰連線字串的處理。
OpenSSL
修正錯誤
#50293
(數個 openssl 函式會忽略 VCWD)。
修正錯誤
#81713
(數個使用憑證的 OpenSSL 函式中注入 NULL 位元組)。
PDO_ODBC
修復成功執行 PDOStatement->execute() 的 errorInfo() 結果。
修正單一金鑰連線字串的處理。
Zip
修正錯誤
GH-8781
(ZipArchive::close 會刪除 zip 檔案,而不會更新 stat 快取)。
版本 8.0.20
2022 年 6 月 9 日
CLI
修正錯誤
GH-8575
(CLI 過早關閉標準串流)。
核心
修正 Haiku ZTS 建置。
Date
修復錯誤
GH-8471
(使用反射建立不可變和可變 DateTime 實例時發生區段錯誤)。
FPM
修正 MacOS 上的 ACL 建置檢查。
修正錯誤
#72185
: php-fpm 寫入空白 fcgi 記錄導致 nginx 502。
Mysqlnd
修正錯誤
#81719
:mysqlnd/pdo 密碼緩衝區溢位。(CVE-2022-31626)
OPcache
修復錯誤
GH-8466
(當選項不存在時,ini_get() 會被最佳化移除)。
Pcntl
修正 Haiku 建置。
Pgsql
修正錯誤
#81720
:pg_query_params() 中未初始化的陣列。(CVE-2022-31625)
Soap
修正錯誤
GH-8578
(SoapHeader 建構函式上錯誤參數的錯誤)。
修正錯誤
GH-8538
(SoapClient 可能會移除 nmtokens 的部分內容)。
SPL
修正錯誤
GH-8235
(iterator_count() 可能會無限期地執行)。
Zip
修正 ZipArchive::replaceFile 中索引的類型。
版本 8.0.19
2022 年 5 月 12 日
核心
修正錯誤
GH-8289
(在產生器中,不會重新擲回從產生器中產生之迭代器內擲回的例外)。
Date
修復錯誤
GH-7979
(DatePeriod 迭代器在檢查是否有效時前進)。
FFI
修正錯誤
GH-8433
(在 FFI 中將函式指標指派給結構時發生洩漏)。
FPM
修正錯誤
#76003
(FPM /status 回報的作用中處理程序數量錯誤)。
修正錯誤
#77023
(FPM 無法關閉處理程序)。
修正 kqueue 移除回呼日誌訊息中的註解。
Iconv
修正錯誤
GH-8218
(ob_end_clean 不會重設 Content-Encoding 標頭)。
Intl
修正錯誤
GH-8364
(msgfmt_format $values 可能不支援參考)。
MySQLi
修正錯誤
GH-8267
(MySQLi 在 Windows 上使用不受支援的格式規範)。
SPL
修正錯誤
GH-8366
(在呼叫 __construct() 時,ArrayIterator 可能會洩漏)。
修正錯誤
GH-8273
(SplFileObject:key() 傳回錯誤的值)。
Streams
修復 php://temp 在切換至暫存檔案時不會保留檔案位置的問題。
zlib
修正錯誤
GH-8218
(ob_end_clean 不會重設 Content-Encoding 標頭)。
版本 8.0.18
2022 年 4 月 14 日
核心
修正內部屬性引數的釋放。
修正錯誤
GH-8070
(內部函式屬性雜湊的記憶體洩漏)。
修正錯誤
GH-8160
(Alpine 上的 ZTS 支援已損壞)。
Filter
修正 php_filter_validate_domain() 中有號性混淆的問題。
Intl
修正錯誤
GH-8142
(cygwin 上的編譯錯誤)。
MBString
修正錯誤
GH-8208
(mb_encode_mimeheader: $indent 功能已損壞)。
MySQLi
修正錯誤
GH-8068
(mysqli_fetch_object 建立無法存取的屬性)。
Pcntl
修正錯誤
GH-8142
(cygwin 上的編譯錯誤)。
PgSQL
修正在 LLP64 架構上與 result_type 相關的堆疊損壞。
修正錯誤
GH-8253
(pg_insert() 對於參考失敗)。
Sockets
修正 Solaris 建置。
SPL
修正錯誤
GH-8121
(SplFileObject - 使用 csv 檔案時,seek 和 key 不一致)。
Standard
修正錯誤
GH-8048
(強制 macOS 使用 statfs)。
版本 8.0.17
2022 年 3 月 17 日
核心
修正 Haiku ZTS 建置。
GD
修正了載入交錯影像時 libpng 發出的警告。
FPM
修正了錯誤
#76109
(不安全地存取 fpm 計分板)。
Iconv
修正了錯誤
GH-7953
(ob_clean() 只清除內容,未設定 Content-Encoding)。
修正了錯誤
GH-7980
(iconv_mime_decode 的非預期結果)。
MySQLnd
修正了錯誤
GH-8058
(mysqlnd 套件中的 NULL 指標取值)。
OPcache
修正了錯誤
GH-8074
(range() 結果的類型推斷錯誤)。
Reflection
修正了錯誤
GH-8080
(ReflectionClass::getConstants() 依賴定義順序)。
Zlib
修正了錯誤
GH-7953
(ob_clean() 只清除內容,未設定 Content-Encoding)。
版本 8.0.16
2022 年 2 月 17 日
核心
修正了錯誤
#81430
(屬性實例化留下懸空指標)。
修正了錯誤
GH-7896
(在 Windows 上,環境變數可能會被損壞)。
FFI
修正了錯誤
GH-7867
(從指標轉換為陣列的 FFI::cast() 損壞)。
Filter
修復 #81708:由於 php_filter_float() 處理整數失敗而導致的 UAF。
FPM
修正了無效連接埠上的記憶體洩漏問題。
MBString
修正了錯誤
GH-7902
(mb_send_mail 可能只使用 LF 分隔標頭)。
MySQLnd
修正了錯誤
GH-7972
(MariaDB 版本前綴 5.5.5- 未被移除)。
Sockets
修正了 Haiku 上的 ext/sockets 建置問題。
修正了錯誤
GH-7978
(sockets 擴充功能編譯錯誤)。
Standard
修正了錯誤
GH-7875
(即使記錄失敗拋出例外,郵件仍會被傳送)。
版本 8.0.15
2022 年 1 月 20 日
核心
修正了錯誤
#81656
(GCC-11 靜默忽略 -R)。
修正了錯誤
#81585
(cached_chunks 在關閉時未計入 real_size)。
Filter
修正 FILTER_FLAG_NO_RES_RANGE 旗標。
Hash
修正了錯誤
GH-7759
(hash() 和 hash_hmac() 的回傳類型不正確)。
修正了錯誤
GH-7826
(hash_hmac_file 和 hash_file 中的參數名稱不一致)。
MySQLnd
修正了可能會截斷大型 bigint 的錯誤。
OCI8
修正了錯誤
GH-7765
(php_oci_cleanup_global_handles 在第二次呼叫時發生 segfault)。
OPcache
修正了錯誤
#81679
(追蹤 JIT 在重新附加時崩潰)。
PDO_PGSQL
修正了 PDO PgSQL 的錯誤訊息分配問題。
Sockets
避免在 NetBSD 上 sockets/multicast.c 中使用 void* 算術。
Spl
修正了錯誤
#75917
(SplFileObject::seek 在使用 CSV 旗標時損壞)。
版本 8.0.14
2021 年 12 月 16 日
核心
修復錯誤
#81582
(如果 __toString() 來自 trait,則不會隱含宣告 Stringable)。
修復錯誤
#81591
(在特定情況下,沒有正確記錄嚴重錯誤)。
修復錯誤
#81626
(在 __сallStatic() 中使用 static:: 並封裝至 Closure::fromCallable() 時發生錯誤)。
修復錯誤
#81631
(動態類別名稱的 ::class 可能會產生錯誤的行號)。
FPM
修正了錯誤
#81513
(FPM zlog 中未來可能發生堆積溢位)。
GD
修正了錯誤
#71316
(來自 imagecreatefromstring 的 libpng 警告)。
IMAP
修正了錯誤
#81649
(imap_(un)delete 接受序列,而不是單個數字)。
OpenSSL
修復錯誤
#75725
(./configure:偵測 RAND_egd)。
PCRE
修正了錯誤
#74604
(php_pcre_replace_impl 中的越界)。
SPL
修復錯誤
#81587
(使用附加的 SimpleXMLElement 時,MultipleIterator 發生區段錯誤)。
Standard
修復錯誤
#81618
(在 FreeBSD 上,dns_get_record 由於遺失類型而失敗)。
修正了錯誤
#81659
(stream_get_contents() 可能會不必要地過度分配記憶體)。
版本 8.0.13
2021 年 11 月 18 日
核心
修正了錯誤
#81518
(透過 default_mimetype / default_charset 進行標頭注入)。
Date
修正了錯誤
#81500
(自 7.3.14 / 7.4.2 以來的間隔序列化迴歸)。
DBA
修正了錯誤
#81588
(TokyoCabinet 驅動程式洩漏記憶體)。
MBString
修復錯誤
#76167
(mbstring 可能會使用先前請求的指標)。
Opcache
修復錯誤
#81512
(陣列和 JIT 的非預期行為)。
PCRE
修復錯誤
#81424
(PCRE2 10.35 JIT 效能回歸)。
XML
修復錯誤
#79971
(特殊字元中斷 xml 函式中的路徑)。 (CVE-2021-21707)
XMLReader
修復錯誤
#81521
(XMLReader::getParserProperty 可能會對有效的屬性擲回)。
版本 8.0.12
2021 年 10 月 21 日
CLI
修正了錯誤
#81496
(伺服器記錄不正確的請求方法)。
核心
修復錯誤
#81435
(觀察器 current_observed_frame 可能會指向舊的 (覆寫的) 框架)。
修正了錯誤
#81380
(觀察者可能未正確初始化)。
DOM
修正了錯誤
#81433
(DOMElement::setIdAttribute() 呼叫兩次可能會移除 ID)。
FFI
修正了錯誤
#79576
(當未定義類型時,「TYPE *」顯示無用的訊息)。
FPM
修正了錯誤
#81026
(PHP-FPM 在根程序中的 oob R/W 導致權限提升) (CVE-2021-21703)。
Fileinfo
修復錯誤
#78987
(編碼偵測期間的高記憶體使用量)。
Filter
修正了錯誤
#61700
(FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE 失敗)。
Opcache
修復錯誤
#81472
(讀取 /proc/self/maps 時,無法支援大型 linux 主要/次要裝置編號)。
Reflection
ReflectionAttribute 不再是 final。
SPL
修復錯誤
#80663
(遞迴 SplFixedArray::setSize() 可能會導致雙重釋放)。
修復錯誤
#81477
(8.0.1 中 LimitIterator + SplFileObject 的回歸問題)。
Standard
修復錯誤
#69751
(變更 sprintf/printf 缺少/錯別字位置指定器的錯誤訊息)。
Streams
修復錯誤
#81475
(stream_isatty 在附加串流封裝器時發出警告)。
XML
修復錯誤
#70962
(XML_OPTION_SKIP_WHITE 會移除內嵌的空格)。
Zip
修復錯誤
#81490
(ZipArchive::extractTo() 可能會洩漏記憶體)。
修復錯誤
#77978
(以冒號結尾的 Dirname 解壓縮至錯誤的目錄)。
版本 8.0.11
2021 年 9 月 23 日
核心
修復錯誤
#81302
(在移除串流篩選器之後的串流位置)。
修復錯誤
#81346
(不可搜尋的串流在寫入之後不會更新位置)。
修復錯誤
#73122
(串連字串時的整數溢位)。
GD
修復錯誤
#53580
(在調整大小期間,gdImageCopyResampled 會導致顏色變更)。
Opcache
修復錯誤
#81353
(使用預先載入和靜態繫結的閉包時發生區段錯誤)。
Shmop
修復錯誤
#81407
(shmop_open 無法附加並導致 php 崩潰)。
Standard
修復錯誤
#71542
(disk_total_space 無法與相對路徑搭配使用)。
修復錯誤
#81400
(dns_get_record() 結果中未終止的字串)。
SysVMsg
修復錯誤
#78819
(msg_send 中的堆積溢位)。
XML
修復錯誤
#81351
(xml_parse 可能會失敗,但沒有錯誤碼)。
Zip
修復錯誤
#80833
(ZipArchive::getStream 不使用 setPassword)。
修復錯誤
#81420
(ZipArchive::extractTo 解壓縮至目的地之外)。
版本 8.0.10
2021 年 8 月 26 日
核心
修復錯誤
#72595
(php_output_handler_append 非法寫入存取)。
修復錯誤
#66719
(將 get_called_class() 與 call_user_func() 搭配使用時的怪異行為)。
修復錯誤
#81305
(內建 Web 伺服器捨棄帶有「Upgrade」標頭的請求)。
BCMath
修復錯誤
#78238
(BCMath 回傳「-0」)。
CGI
修復錯誤
#80849
(HTTP 狀態標頭截斷)。
Date
修復錯誤
#64975
(當 AM/PM 不在結尾時,剖析錯誤)。
修復錯誤
#78984
(DateTimeZone 接受無效的 UTC 時區)。
修正了錯誤
#79580
(date_create_from_format 遺漏閏年)。
修復錯誤
#80409
(DateTime::modify() 會遺失「weekday」參數的時間)。
GD
修復錯誤
#51498
(imagefilledellipse 不適用於大型圓形)。
MySQLi
修復錯誤
#74544
(mysqli_real_escape_string() 中的整數溢位)。
Opcache
修復錯誤
#81225
(啟用 JIT 時,pow 運算子結果錯誤)。
修復錯誤
#81249
(啟用 JIT 時,屬性指派間歇性失敗)。
修復錯誤
#81206
(多個 PHP 程序在啟用 JIT 時崩潰)。
修復錯誤
#81272
(使用 JIT 的 array_slice 之後,var[] 發生區段錯誤)。
修復錯誤
#81255
(使用功能性 JIT 時,PHPUnit 中的記憶體洩漏)。
修復錯誤
#80959
(JIT 編譯期間建置 cfg 時的無限迴圈) (Nikita, Dmitry)
修復錯誤
#81226
(啟用 JIT 時,整數溢位行為不同)。
OpenSSL
修復錯誤
#81327
(在 php 7.4.22 上建置 openssl 擴充功能時發生錯誤)。
PDO_ODBC
修正錯誤
#81252
(PDO_ODBC 未考慮 SQL_NO_TOTAL)。
Phar
修正錯誤
#81211
:建立 PHAR 封存檔時會追蹤符號連結
Shmop
修正錯誤
#81283
(shmop 無法讀取超過 2147483647 位元組的資料)。
SimpleXML
修復錯誤
#81325
(zif_simplexml_import_dom 中的段錯誤)。
Standard
修正錯誤
#72146
(substr_replace 出現整數溢位)。
修正錯誤
#81265
(getimagesize 對於 256px ICO 圖片回傳 0)。
修正錯誤
#74960
(透過 str_repeat 造成堆積緩衝區溢位)。
Streams
修正錯誤
#81294
(移除篩選器時發生 Segfault)。
版本 8.0.9
2021 年 7 月 29 日
核心
修正錯誤
#81145
(copy() 和 stream_copy_to_stream() 對於 +4GB 的檔案失敗)。
修正錯誤
#81163
(__sleep 中間接變數處理不正確)。
修正錯誤
#81159
(當使用物件作為字串偏移時,物件轉整數警告)。
修正錯誤
#80728
(PHP 內建網頁伺服器在可以終止程序時重置逾時)。
修正錯誤
#73630
(內建網頁伺服器 - 覆寫 $_SERVER['request_uri'])。
修正錯誤
#80173
(使用 zend_assign_to_variable() 的回傳值是不安全的)。
修正錯誤
#73226
(--r[fcez] 總是回傳零的結束代碼)。
Intl
修正錯誤
#72809
(Locale::lookup() 使用正規化選項時結果錯誤)。
修正錯誤
#68471
(IntlDateFormatter 對於 "GMT+00:00" 時區失敗)。
修正錯誤
#74264
(grapheme_strrpos() 對於負偏移量損壞)。
OpenSSL
修正錯誤
#52093
(openssl_csr_sign 截斷 $serial)。
PCRE
修正錯誤
#81101
(PCRE2 10.37 顯示意外結果)。
修正錯誤
#81243
(preg_replace() 配置過多記憶體)。
Reflection
修正錯誤
#81208
(從屬性建立 newInstance 時發生分段錯誤)。
Standard
修正錯誤
#81223
(flock() 只鎖定檔案的第一個位元組)。
版本 8.0.8
2021 年 7 月 1 日
核心
修正了錯誤
#81076
(具有隱式繫結的閉包上不正確的偵錯資訊)。
修正錯誤
#81068
(realpath_cache_clean() 中重複釋放)。
修正錯誤
#76359
(透過新增 ".." 繞過 open_basedir)。
修正錯誤
#81090
(使用 .= 運算子的類型化屬性效能降低)。
修正錯誤
#81070
(記憶體限制比較中的整數下溢)。
修正錯誤
#81122
(FILTER_VALIDATE_URL 中的 SSRF 繞過)。(CVE-2021-21705)
Bzip2
修正錯誤
#81092
(在 stream_filter_remove 之前 fflush 會破壞串流)。
Fileinfo
修正錯誤
#80197
(函式 'magic_stream' 的隱式宣告無效)。
GMP
修正錯誤
#81119
(GMP 運算子以錯誤的參數名稱拋出錯誤)。
OCI8
修正錯誤
#81088
(oci_fetch_object() 和 oci_fetch_array() 的迴歸測試錯誤)。
Opcache
修正錯誤
#81051
(遞增參考後的損壞屬性類型處理)。
修正錯誤
#80968
(從必要檔案傳回時的 JIT 分段錯誤)。
OpenSSL
修正錯誤
#76694
(原生 Windows 憑證驗證使用 CN 作為伺服器名稱)。
MySQLnd
修復錯誤
#80761
(PDO 使用過多記憶體)。
PDO_Firebird
修正錯誤
#76448
(firebird_info_cb 中的堆疊緩衝區溢位)。(CVE-2021-21704)
修正錯誤
#76449
(firebird_handle_doer 中的 SIGSEGV)。(CVE-2021-21704)
修正錯誤
#76450
(firebird_stmt_execute 中的 SIGSEGV)。(CVE-2021-21704)
修正錯誤
#76452
(在 firebird_fetch_blob 中剖析 blob 資料時當機)。(CVE-2021-21704)
readline
修復錯誤
#72998
(readline 完成時的無效讀取)。
Standard
修正錯誤
#81048
(phpinfo(INFO_VARIABLES)「陣列轉字串轉換」)。
修復錯誤
#77627
(Closure::__invoke 的 method_exists 不一致)。
Windows
修正錯誤
#81120
(未使用主要 PHP DLL 的 PGO 資料)。
版本 8.0.7
2021 年 6 月 3 日
核心
修正錯誤
#80960
(在 Windows 上失敗時 opendir() 警告錯誤資訊)。
修正錯誤
#67792
(HTTP 授權配置被視為區分大小寫)。
修正錯誤
#80972
(無效字串偏移量上的記憶體耗盡)。
FPM
修正了錯誤
#65800
(事件連接埠機制)。
FTP
修正錯誤
#80901
(ftp 擴充功能中的資訊洩漏)。
修正錯誤
#79100
(錯誤的 FTP 錯誤訊息)。
GD
修正錯誤
#81032
(GD 安裝受到外部 libgd 安裝的影響)。
Intl
修正錯誤
#81019
(在失敗的 parse() 之後無法複製 NumberFormatter)。
MBString
修正錯誤
#81011
(mb_convert_encoding 從陣列中移除參考)。
ODBC
修正錯誤
#80460
(ODBC 未考慮 SQL_NO_TOTAL 指標)。
Opcache
修正錯誤
#81007
(32 位元 x86 上的 JIT「不支援」-- 建置問題?)。
修正錯誤
#81015
(Opcache 優化假設 if 條件中三元運算子的錯誤部分)。
修正錯誤
#81046
(字面壓縮合併不相等相關的字面)。
PDO_MySQL
修復錯誤
#81037
(PDO 捨棄預備陳述式的錯誤訊息文字)。
PDO_ODBC
修正錯誤
#44643
(綁定的參數忽略明確的類型定義)。
pgsql
修正 php_pgsql_fd_cast() 針對 php_stream_can_cast()。
SPL
修正錯誤
#80933
(SplFileObject::DROP_NEW_LINE 對於 NUL 和 CR 損壞)。
XMLReader
修正錯誤
#73246
(XMLReader:未檢查編碼長度)。
Zip
修正錯誤
#80863
(ZipArchive::extractTo() 忽略參考)。
版本 8.0.6
2021 年 5 月 6 日
PDO_pgsql
還原「修正錯誤
#80892
(PDO::PARAM_INT 與 PDO::PARAM_STR 的處理方式相同)」
版本 8.0.5
2021 年 4 月 29 日
核心
修正錯誤
#75776
(使用壓縮篩選器刷新串流損壞)。
修正錯誤
#80811
(不使用 $output 但使用 $restult_code 參數的 exec 函式當機)。
修正錯誤
#80814
(執行緒化的 mod_php 無法在 FreeBSD 上載入:沒有可用於靜態執行緒本地儲存的空間)。
變更 Zend VM 使用的 PowerPC CPU 暫存器以解決 GCC 錯誤。舊的暫存器 (r28/r29) 可能被 _restgpr 常式覆寫,該常式用於從使用 -Os 編譯的 C 函式傳回。
Dba
修正錯誤
#80817
(dba_popen() 可能會在 RSHUTDOWN 期間造成分段錯誤)。
DOM
修正錯誤
#66783
(當將 DOMDocument 附加至元素時的 UAF)。
FFI
修正錯誤
#80847
(具有 struct 類型欄位的 CData struct 無法作為 C 函式引數傳遞)。
FPM
修正錯誤
#80024
(在移除集區後重複繼承的 socket 資訊)。
FTP
修正錯誤
#80880
(在關機時的 SSL_read、ftp/proc_open)。
IMAP
修正錯誤
#80800
(當 flags 參數包含 CL_EXPUNGE 時,imap_open() 失敗)。
修正錯誤
#80710
(imap_mail_compose() 標頭注入)。
Intl
修正錯誤
#80763
(msgfmt_format() 不接受 DateTime 參考)。
LibXML
修正錯誤
#73533
(php_libxml_xmlCheckUTF8 中的無效記憶體存取)。
修正錯誤
#51903
(simplexml_load_file() 不使用 HTTP 標頭)。
MySQLnd
修正錯誤
#80837
(在擷取之後呼叫 stmt_store_result 不會拋出錯誤)。
Opcache
修正錯誤
#80839
(PHP 的 JIT 問題)。
修正錯誤
#80861
(具有 JIT 的 2D 陣列中的錯誤陣列索引鍵溢位)。
修正錯誤
#80786
(使用 JIT 時的 PHP 當機)。
修正錯誤
#80782
(PHP_INT_MIN-1 上的 DASM_S_RANGE_VREG)。
Pcntl
修正錯誤
#79812
(pcntl_exec() 中的潛在整數溢位)。
PCRE
修正錯誤
#80866
(當具有 \K 的模式具有 0 寬度完整字串比對時,preg_split 會忽略限制標誌)。
PDO_ODBC
修正錯誤
#80783
(PDO ODBC 在每 256 個位元組截斷 BLOB 記錄)。
PDO_pgsql
修正錯誤
#80892
(PDO::PARAM_INT 與 PDO::PARAM_STR 的處理方式相同)。
Session
修正錯誤
#80889
(當 save_handler 無效時無法設定儲存處理常式)。
修正錯誤
#80774
(session_name() 的反斜線問題)。
SOAP
修正錯誤
#69668
(SOAP 名稱空間 URI 中未編碼的特殊 XML 字元)。
Standard
修正錯誤
#80915
(取得 $_SERVER 的參考會隱藏其來自 phpinfo() 的值)。
修正錯誤
#80914
('getdir' 被意外地定義為 'dir' 的別名)。
修正錯誤
#80771
(phpinfo(INFO_CREDITS) 在 CLI 中不顯示任何內容)。
修正錯誤
#78719
(http 包裝函式會無聲地忽略長的 Location 標頭)。
修正錯誤
#80838
(HTTP 包裝函式在 HTTP 101 之後等待 HTTP 1 回應)。
Zip
修正錯誤
#80825
(ZipArchive::isCompressionMethodSupported 不存在)。
版本 8.0.3
2021 年 3 月 4 日
核心
修正錯誤
#80706
(mail():Bcc 標頭之後的標頭可能會被忽略)。
DOM
修正錯誤
#80600
(DOMChildNode::remove() 不適用於 CharacterData 節點)。
Gettext
修正錯誤
#53251
(具有 null dir 的 bindtextdomain 不會回傳舊值)。
MySQLnd
修正錯誤
#78680
(mysqlnd 的 mysql_clear_password 不會傳輸 null 結尾的密碼)。
修正錯誤
#80713
(停用 ATTR_EMULATE_PREPARES 和 MySQL 8.0 時發生 SegFault)。
MySQLi
修正錯誤
#74779
(x() 和 y() 將浮點數截斷為整數)。
Opcache
修正錯誤
#80634
(在預先載入的 JIT 程式碼上跳過內部類別的 write_property 處理常式)。
修正錯誤
#80682
(opcache 不遵守 pcre.jit 選項)。
修正錯誤
#80742
(Opcache JIT 使某些布林邏輯意外地為 true)。
修正錯誤
#80745
(JIT 在涉及位元移位的程式碼中產生 Assert 失敗和 UNKNOWN:0 var_dumps)。
OpenSSL
修正錯誤
#80747
(提供 RSA 金鑰大小 < 512 會產生使 PHP 當機的金鑰)。
Phar
修正錯誤
#75850
(關於沒有分號的 __halt_compiler() 的不明確錯誤訊息)
修正錯誤
#70091
(Phar 不會在 ZIP 封存檔中標記 UTF-8 檔案名稱)。
修正錯誤
#53467
(Phar 無法壓縮大型封存檔)。
Socket
修正錯誤
#80723
(不同的 socket 會被視為相等 (8.0 中的回歸錯誤))。
SPL
修正錯誤
#80719
(在 ArrayObject::setIteratorClass() 失敗後迭代會導致分段錯誤)。
Standard
修正錯誤
#80654
(file_get_contents() 的 maxlen 在超過 (2**31)-1 位元組時會失敗)。
修正錯誤
#80718
(ext/standard/dl.c 回退程式碼路徑有語法錯誤)。
版本 8.0.2
2021 年 2 月 4 日
核心
修正錯誤
#80523
(大於 4GB 的原始碼會產生虛假的剖析錯誤)。
修正錯誤
#80384
(篩選器會緩衝整個讀取直到檔案關閉)。
修正錯誤
#80596
(匿名類別中出現無效的聯集型別 TypeError)。
修正錯誤
#80617
(GCC 會在 ZEND_TYPE_INIT_CODE 中拋出關於型別縮小的警告)。
BCMath
修正錯誤
#80545
(bcadd('a', 'a') 不會拋出例外)。
Curl
修正錯誤
#80595
(將 POSTFIELDS 重設為空陣列會中斷請求)。
Date
修正錯誤
#80376
(每月最後一天會導致 CPU 使用率過高)。
DOM
修正錯誤
#80537
(DOMElement::removeAttributeNode stub 中的參數型別錯誤)。
Filter
修正錯誤
#80584
(0x 和 0X 被 filter_var() 視為有效的十六進位數字)。
GMP
修正錯誤
#80560
(僅包含基底前綴的字串會傳回 0 物件)。
Intl
修正錯誤
#80644
(遺失的資源會導致後續的 get() 呼叫失敗)。
MySQLi
修正錯誤
#67983
(使用 MYSQLI_OPT_INT_AND_FLOAT_NATIVE 的 mysqlnd 無法解譯位元欄位)。
修正錯誤
#64638
(從具有游標的預存程序中擷取結果集會失敗)。
修正錯誤
#72862
(在預存程序中使用預處理語句會導致分段錯誤)。
修正錯誤
#77935
(當呼叫具有游標的 SP 時,mysqlnd_fetch_stmt_row_cursor 會崩潰)。
ODBC
修正錯誤
#80592
(ODBC 參數中的所有浮點數都相同)。
Opcache
修正錯誤
#80422
(當 Apache 2.4 與 JIT 一起使用時,php_opcache.dll 會崩潰)。
PDO_Firebird
修正錯誤
#80521
(不再識別帶有底線的參數)。
Phar
修正錯誤
#76929
(基於 zip 的 phar 不會遵守 phar.require_hash)。
修正錯誤
#77565
(在基於 ZIP 的 phar 中偵測到不正確的定位器)。
修正錯誤
#69279
(壓縮的 ZIP Phar extractTo() 會建立垃圾檔案)。
Phpdbg
還原錯誤
#76813
的修復 (在來源運算元附近存取違規)。
SOAP
修正錯誤
#80672
(SoapClient 中的空值取消引用)。 (CVE-2021-21702)
版本 8.0.1
2021 年 1 月 7 日
核心
修正錯誤
#80345
(PHPIZE 組態具有過時的 PHP_RELEASE_VERSION)。
修正錯誤
#72964
(CC/Bcc 標頭的空白字元未展開)。
修正錯誤
#80391
(可迭代物件不與混合型別協變)。
修正錯誤
#80393
(由於與 libtool 的組態差距,導致 PHP 擴充功能組建失敗)。
修正錯誤
#77069
(串流篩選器遺失最後的資料區塊)。
Fileinfo
修正錯誤
#77961
(finfo_open 精心製作的 magic 剖析 SIGABRT)。
FPM
修正錯誤
#69625
(FPM 在沒有 SCRIPT_FILENAME 環境變數的情況下,對請求傳回 200 狀態)。
IMAP
修正錯誤
#80438
(imap_msgno() 在 PHP 8 中會對有效的 UID 錯誤地發出警告並傳回 false)。
修復 imap_savebody() 中有效 UID 的回歸錯誤。
使函式之間關於無效訊息編號/UID 的警告保持一致。
Intl
修正錯誤
#80425
(重新定義 MessageFormatAdapter::getArgTypeList)。
Opcache
修正錯誤
#80404
(當除法結果為浮點數時,範圍推斷結果不正確)。
修正錯誤
#80377
(Opcache 遺失 executor_globals)。
修正錯誤
#80433
(無法在使用 JIT 時停用 AVX 命令的使用)。
修正錯誤
#80447
(在 JIT 執行時發生奇怪的記憶體不足錯誤)。
修正錯誤
#80480
(啟用 JIT 時發生分段錯誤)。
修正錯誤
#80506
(在 ini_set("opcache.jit_debug", 1) 時立即發生 SIGSEGV)。
OpenSSL
修正錯誤
#80368
(由於缺少 OCB 支援,OpenSSL 擴充功能無法針對 LibreSSL 進行組建)。
PDO MySQL
修正錯誤
#80458
(PDOStatement::fetchAll() 會針對 upsert 查詢拋出錯誤)。
修正錯誤
#63185
(nextRowset() 會忽略具有原生預處理語句的 MySQL 錯誤)。
修正錯誤
#78152
(PDO::exec() - 多個命令的錯誤處理不佳)。
修正錯誤
#66878
(除非 unset() PDO 語句物件,否則不會傳回多個結果集)。
修正錯誤
#70066
(出現意外的「無法在其他未緩衝的查詢時執行查詢」)。
修正錯誤
#71145
(初始化命令中的多個語句會觸發未緩衝的查詢錯誤)。
修正錯誤
#76815
(當 PROCEDURE 結果集 SIGNAL 時,PDOStatement 無法進行 GC 或 closeCursor)。
修正錯誤
#79872
(無法執行具有擱置結果集的查詢)。
修正錯誤
#79131
(當參數值遺失時,PDO 不會拋出例外)。
修正錯誤
#72368
(PdoStatement->execute() 失敗,但不會拋出例外)。
修正錯誤
#62889
(LOAD DATA INFILE 中斷)。
修正錯誤
#67004
(多次執行 PDOStatement::fetch() 會阻止釋放結果集)。
修正錯誤
#79132
(PDO 會重複使用先前對 execute() 呼叫的參數值)。
Phar
修正錯誤
#73809
(Phar Zip 剖析崩潰 - mmap 失敗)。
修正錯誤
#75102
(`PharData` 對於有效的 tar 說校驗碼無效)。
修正錯誤
#77322
(PharData::addEmptyDir('/') 可能的整數溢位)。
Phpdbg
修正錯誤
#76813
(在來源運算元附近存取違規)。
SPL
修正錯誤
#62004
(SplFileObject:在 seek 之後的 fgets 會傳回錯誤的行)。
Standard
修正錯誤
#80366
(未檢查 zend_fstat() 的傳回值)。
修正錯誤
#77423
(FILTER_VALIDATE_URL 接受具有無效 userinfo 的 URL)。 (CVE-2020-7071)
Tidy
修正錯誤
#77594
(ob_tidyhandler 永遠不會重設)。
Tokenizer
修正錯誤
#80462
(使用 TOKEN_PARSE 旗標的 Nullsafe 運算子符號化失敗)。
XML
XmlParser 不透明物件已重新命名為 XMLParser,以與其他 XML 物件保持一致。
Zlib
修正錯誤
#48725
(在 zlib 串流中支援刷新)。
版本 8.0.0
2020 年 11 月 26 日
BZ2
修正錯誤
#71263
(fread() 不會回報 bzip2.decompress 錯誤)。
CLI
允許 debug 伺服器透過 `-S localhost:0` 繫結至臨時埠。
COM
修正錯誤
#55847
(DOTNET .NET 4.0 GAC 新位置)。
修正錯誤
#62474
(com_event_sink 在某些參數上會崩潰)。
Calendar
修正錯誤
#80007
(unixtojd() 參數剖析中可能出現型別混淆)。
核心
修正錯誤
#36365
(scandir 在每 65535 個檔案時重複檔案名稱)。
修正錯誤
#49555
(應重新命名「函式必須為字串」的嚴重錯誤訊息)。
修正錯誤
#62294
(register_shutdown_function() 無法正確處理結束代碼)。
修正錯誤
#62609
(允許在抽象類別上實作 Traversable)。
修正錯誤
#65274
(使用類別名稱增強未定義的類別常數錯誤)。
修正錯誤
#65275
(在關閉函式中呼叫 exit() 不會變更 CLI 中的結束值)。
修正錯誤
#69084
(當未實作重新命名的抽象 trait 函式時,會出現不清楚的錯誤訊息)。
修正錯誤
#70839
(LSP 檢查禁止將選用參數轉換為可變參數)。
修正錯誤
#74558
(無法重新繫結 Closure::fromCallable() 傳回的閉包)。
修正錯誤
#77561
(非主要指令碼不會移除 Shebang 行)。
修正錯誤
#77619
(MultipleIterator::__construct 的反射錯誤)。
修正錯誤
#77966
(無法別名名稱為「namespace」的方法)。
修正錯誤
#78236
(接收變數時重複 [ 時發生轉換錯誤)。
修正錯誤
#78770
(內部方法內的呼叫性檢查不正確)。
修正錯誤
#79108
(參考函式中的引數會使其成為堆疊追蹤中的參考)。
修正錯誤
#79368
(「檔案意外結束」不是可接受的錯誤訊息)。
修正錯誤
#79462
(method_exists 和 property_exists 行為不一致)。
修正錯誤
#79467
(data:// 包裝器是可寫入的)。
修正錯誤
#79521
(檢查 __set_state 結構)。
修正錯誤
#79790
(AST 評估期間未正確處理「非法偏移類型」例外)。
修正錯誤
#79791
(在二元運算期間取消設定變數時,斷言失敗)。
修正錯誤
#79828
(當嘗試存取不存在的變數時發生分段錯誤)。
修正錯誤
#79841
(configure 中的語法錯誤 / php.m4 中未逸出的「[]」)。
修正錯誤
#79852
(count(DOMNodeList) 與 count(IteratorIterator(DOMNodeList)) 不符)。
修正錯誤
#79867
(升級的未輸入屬性應取得 null 預設值)。
修正錯誤
#79897
(具有屬性的升級建構子參數會導致崩潰)。
修正錯誤
#79927
(在從可迭代物件產生多個 yield 之後,產生器不會拋出例外)。
修正錯誤
#79946
(由於未宣告 UINT32_C,導致組建失敗)。
修正錯誤
#79948
(在自動附加的檔案中結束不會中止 PHP 執行)。
修正錯誤
#80045
(在使用 __call 呼叫兩個 set_exception_handler 之後發生記憶體洩漏)。
修正錯誤
#80096
(在巢狀呼叫中使用命名引數時發生分段錯誤)。
修正錯誤
#80109
(當啟用擴充偵錯時,無法略過引數)。
修正錯誤
#80225
(eval 程式碼中命名空間使用中斷)。
修正錯誤
#80258
(Windows 重複資料刪除已啟用,隨機權限錯誤)。
修正錯誤
#80280
(ext/standard 和 ext/date 的 ADD_EXTENSION_DEP() 失敗)。
修正錯誤
#80334
(assert() 與命名參數 - 令人困惑的錯誤)。
修正錯誤
#80055
(傳回「self」的抽象 trait 方法無法由 trait 滿足)。
修正 faulty generator cleanup with yield from.
實作 #[Attr] Attribute 語法,如 RFC
https://wiki.php.net/rfc/shorter_attribute_syntax_change
中的最終投票所示
實作 FR
#47074
(phpinfo() 將某些擴充功能的「On」回報為 1)。
實作 FR
#72089
(require() 拋出致命錯誤而非例外)。
移除 pdo_odbc.db2_instance_name php.ini 指令。
使用 SSE2 指令執行與地區無關的 strtolower。
Curl
將 libcurl 最低版本需求提升至 7.29.0。
修正錯誤
#80121
(直接實例化 CurlHandle 時會發生空指標取值)。
DOM
新增 DOMXPath::$registerNodeNamespaces 屬性和建構式參數,允許全域標記設定 query() 或 evaluate() 呼叫。
修正錯誤
#79968
(DOMChildNode API 在未附加節點時崩潰)。
修正錯誤
#80268
(loadHTML() 在 NUL 位元組處截斷)。
Date
修正錯誤
#60302
(DateTime::createFromFormat 應該使用 new static(),而不是 new self())。
修正錯誤
#65547
(日出/日落天頂角的預設值仍然錯誤)。
修正錯誤
#69044
(time 和 microtime 之間存在差異)。
修正錯誤
#80057
(DateTimeImmutable::createFromFormat() 不會填入時間)。
實作 FR
#79903
(datetime:新增 "p" 格式,與 "P" 相同,但 UTC 回傳 "Z")。
Enchant
新增 LIBENCHANT_VERSION 巨集。
新增 enchant_dict_add 和 enchant_dict_is_added 函式。
棄用 enchant_broker_set_dict_path、enchant_broker_get_dict_path、enchant_dict_add_to_personal 和 enchant_dict_is_in_session。
在可用時使用 libenchant-2。
FFI
新增 FFI\CType::getName() 方法。
修正錯誤
#79177
(FFI 無法很好地處理回呼中的 PHP 例外)。
修正錯誤
#79749
(將 FFI 實例轉換為布林值失敗)。
FPM
新增 pm.status_listen 選項。
Fileinfo
升級至 libmagic 5.39。
GD
新增 imagegetinterpolation()。
修正錯誤
#55005
(imagepolygon num_points 需求)。
使 php_imagepolygon 的 $num_points 參數為選用。
移除已棄用的 image2wbmp()。
移除已棄用的 png2wbmp() 和 jpeg2wbmp()。
將 gd 資源替換為物件。
IMAP
修正錯誤
#64076
(imap_sort() 在失敗時不會回傳 FALSE)。
修正錯誤
#76618
(imap_reopen 時發生區段錯誤)。
修正錯誤
#80213
(imap_mail_compose() 在某些 $bodies 上發生區段錯誤)。
修正錯誤
#80215
(imap_mail_compose() 可能會修改 by-val 參數)。
修正錯誤
#80216
(imap_mail_compose() 不驗證類型/編碼)。
修正錯誤
#80220
(imap_mail_compose() 可能會洩漏記憶體)。
修正錯誤
#80223
(imap_mail_compose() 在格式錯誤的 body 上洩漏封包)。
修正錯誤
#80226
(imap_sort() 洩漏 sortpgm 記憶體)。
修正錯誤
#80239
(imap_rfc822_write_address() 洩漏記憶體)。
修正錯誤
#80242
(imap_mail_compose() 在 multipart 搭配 rfc822 時發生區段錯誤)。
修正因修正錯誤
#80220
所造成的小退步。
Iconv
停止支援沒有正確設定 errno 的 iconv。
Intl
移除已棄用的 INTL_IDNA_VARIANT_2003。
JIT
修正錯誤
#77857
(如果使用 JIT 執行,則結果錯誤)。
修正錯誤
#79255
(無法使用 enable JIT 編譯 PHP)。
修正錯誤
#79582
(當 opcache.jit=1235 和 opcache.jit_debug=2 時發生崩潰)。
修正錯誤
#79743
(啟用 JIT 時,指派給陣列屬性時發生致命錯誤)。
修正錯誤
#79864
(Symfony OptionsResolver 中的 JIT 區段錯誤)。
修正錯誤
#79888
(啟用 JIT 時執行不正確)。
JSON
JSON 擴充功能現在是 PHP 的一個組成部分,根據 RFC:https://wiki.php.net/rfc/always_enable_json (tandre) 無法停用。
LDAP
修正記憶體洩漏。
移除已棄用的 ldap_sort。
MBString
修正錯誤
#76999
(mb_regex_set_options() 回傳目前的選項)。
從 mb_decode_numericentity() 移除未使用的 $is_hex 參數。
MySQLi
修正錯誤
#76809
(使用持續連線時,不會遵守 SSL 設定)。
Mysqlnd
修正錯誤
#60594
(mysqlnd 在 phpinfo 中公開 160 行統計資訊)。
OCI8
棄用舊的 OCI8 函式別名。
現代化 oci_register_taf_callback() 可呼叫參數解析實作。
移除過時的 no-op 函式 oci_internal_debug()。
ODBC
修正錯誤
#22986
(odbc_connect() 可能會重複使用持續連線)。
修正錯誤
#44618
(提取可能會依賴未初始化的資料)。
Opcache
修正錯誤
#76535
(Opcache 不會重播編譯時警告)。
修正錯誤
#78654
(在具有非 ASCII 字元的檔案上錯誤計算 opcache 總和檢查碼)。
修正錯誤
#79665
(ini_get() 和 opcache_get_configuration() 不一致)。
修正錯誤
#80030
(在具有未定義動態類別名稱的靜態屬性上使用 isset 時,最佳化工具發生區段錯誤)。
修正錯誤
#80175
(PHP8 RC1 - JIT 緩衝區無法運作)。
修正錯誤
#80184
(while / if 陳述式中的複雜運算式錯誤地解析為 false)。
修正錯誤
#80255
(8.0.0rc1 中的 Opcache 錯誤 (錯誤的條件結果))。
修正預先載入動態宣告函式的執行階段繫結。
OpenSSL
新增密碼編譯訊息語法 (CMS) 支援。
PCRE
不要忽略無效的跳脫序列。
更新至 PCRE2 10.35。
PDO
將預設的 PDO 錯誤模式變更為例外。
修正錯誤
#77849
(停用 PDO 控制代碼/連線物件的複製)。
PDO_Firebird
修正錯誤
#64937
(Firebird PDO 預先處理 sql)。
PDO_OCI
新增設定和取得 Oracle OCI 18c 呼叫逾時的支援。
PDO_PGSQL
將 libpq 最低版本需求提升至 9.1。
PGSQL
將 libpq 最低版本需求提升至 9.1。
Phpdbg
修正錯誤
#76596
(phpdbg 支援 display_errors=stderr)。
修正錯誤
#76801
(開啟的檔案過多)。
修正錯誤
#77800
(phpdbg 在列出某些條件中斷點時發生區段錯誤)。
修正錯誤
#77805
(readline 共用時,phpdbg 建置失敗)。
Reflection
修正錯誤
#64592
(ReflectionClass::getMethods() 回傳範圍之外的方法)。
修正錯誤
#69180
(Reflection 不會遵循 trait 衝突解決/方法別名)。
修正錯誤
#74939
(巢狀 trait 的別名方法會轉換為小寫)。
修正錯誤
#77325
(ReflectionClassConstant::$class 在擴充時回傳錯誤的類別)。
修正錯誤
#78697
(ReflectionClass::implementsInterface - 對於 trait 的不準確錯誤訊息)。
修正錯誤
#80190
(ReflectionMethod::getReturnType() 不會將靜態作為聯合類型的一部分處理)。
修正錯誤
#80299
(ReflectionFunction->invokeArgs 在參數中混淆)。
修正錯誤
#80370
(在動態屬性上使用 getAttributes 時發生區段錯誤)。
實作 FR
#79628
(新增 ReflectionClass::getConstants 和 ReflectionClass::getReflectionConstants 的 $filter 參數) (carusogabriel)
實作 ReflectionProperty::hasDefaultValue 和 Reflection::getDefaultValue (beberlei)
SNMP
修正錯誤
#70461
(在 net-snmp 中不支援 md5 程式碼時停用它)。
SPL
修正錯誤
#65006
(spl_autoload_register 在使用 self 的多個可呼叫物件、相同方法時失敗)。
修正錯誤
#65387
(SPL 迭代器中的循環參考不會被垃圾回收)。
修正錯誤
#71236
(spl_autoload_register() 的第二次呼叫如果沒有引數則不會執行任何動作)。
修正錯誤
#79987
(SplFileInfo 中因缺少 zend_restore_error_handling() 而造成的記憶體洩漏)。
SplFixedArray 現在是 IteratorAggregate 而非 Iterator。
SQLite3
新增 SQLite3::setAuthorizer() 和相關的類別常數。
Session
修正錯誤
#73529
(session_decode() 在錯誤輸入時會無聲無息地失敗)。
修正錯誤
#78624
(使用者定義的會期處理程式的 session_gc 回傳值)。
Shmop
將 shmop 資源轉換為物件。
SimpleXML
修正錯誤
#63575
(根元素未正確複製)。
修正錯誤
#75245
(不要設定僅有空白的元素內容)。
Sodium
修正錯誤
#77646
(sign_detached() 字串未終止)。
Standard
當 HTTP 串流包裝器填入 $http_response_header 變數時,不要強制重建符號表。
修正錯誤
#47983
(mail() 中的混合 LF 和 CRLF 行結尾)。
修正錯誤
#64060
(lstat_stat_variation7.phpt 在某些檔案系統上失敗)。
修正錯誤
#75902
(當 str_replace 與巢狀陣列誤用時應發出警告)。
修正錯誤
#76859
(如果 stream_get_line 與產生資料的篩選器一起使用,則會略過資料)。
修正錯誤
#77204
(getimagesize(): 讀取錯誤!應提及檔案路徑)。
修正錯誤
#78385
(當問號是最後一個字元時,parse_url() 不包含 'query')。
修正錯誤
#79868
(使用 array_unique 排序會產生不想要的結果)。
修正錯誤
#80256
(file_get_contents 會以分塊編碼重新導向方式去除第一行)。
修正錯誤
#80266
(parse_url 會無聲無息地捨棄連接埠號碼 0)。
修正錯誤
#80290
(當 ASSERT_CALLBACK 與動態訊息一起使用時發生雙重釋放)。
實作 FR
#78638
(__PHP_Incomplete_Class 應為 final)。
使 cmd 執行函式的引號一致。
Tidy
從 tidy_repair_string() 移除未使用的 $use_include_path 參數。
Tokenizer
修正錯誤
#80328
(PhpToken::getAll() 名稱令人困惑)。
XML
修正錯誤
#76874
(xml_parser_free() 絕不應洩漏記憶體)。
XMLWriter
變更函式以接受/回傳 XMLWriter 物件而不是資源。
實作 FR
#79344
(xmlwriter_write_attribute_ns: $prefix 應為可為 null)。
從 XMLWriter 存根移除回傳類型。
Zip
將 "flags" 選項新增至 ZipArchive::addGlob 和 addPattern 方法,預設保留先前的 FL_OVERWRITE 行為。
新增 ZipArchive::EM_UNKNOWN 和 ZipArchive::EM_TRAD_PKWARE 常數。
新增 ZipArchive::isCompressionMethodSupported() 和 ZipArchive::isEncryptionMethodSupported() 方法 (libzip 1.7.0)。
新增 ZipArchive::replaceFile() 方法。
新增 ZipArchive::setCancelCallback 方法 (自 libzip 1.6.0 起)。
新增 ZipArchive::setMtimeName 和 ZipArchive::setMtimeIndex 方法。
新增 ZipArchive::setProgressCallback 方法 (自 libzip 1.3.0 起)。
新增 lastId 屬性至 ZipArchive。
新增可選的 "flags" 參數至 ZipArchive::addEmptyDir、addFile 和 addFromString 方法。
修正錯誤
#50678
(ZipArchive 類別解壓縮的檔案會遺失其原始修改時間)。
修正錯誤
#72374
(remove_path 會移除檔名的第一個字元)。
實作 FR
#77960
(為 ZipArchive::addGlob 和 ZipArchive::addPattern 新增壓縮/加密選項)。
ZipArchive::status 和 ZipArchive::statusSys 屬性以及 ZipArchive::getStatusString() 方法在封存檔關閉後仍然有效。
Zlib
修正錯誤
#71417
(fread() 不會回報 zlib.inflate 錯誤)。
修正錯誤
#78792
(Content-Type: image/ 會停用 zlib.output_compression)。
↑
和
↓
鍵導覽 •
Enter
鍵選擇 •
Esc
鍵關閉
直接按下
Enter
鍵不選取任何內容會使用 Google 搜尋