perl5143delta - Perl v5.14.3 新功能
本文描述了 5.14.2 版本和 5.14.3 版本之間的差異。
如果您正在從較早版本升級,例如 5.12.0,請首先閱讀 perl5140delta,該文件描述了 5.12.0 和 5.14.0 之間的差異。
與 5.14.0 相比沒有變化。
Digest
eval 使用不當的漏洞修復 (CVE-2011-3597)在使用 eval() 調用之前,Digest->new()
函數未正確對輸入進行清理,這可能導致注入任意 Perl 代碼。
為了利用此漏洞,攻擊者需要能夠設置所使用的算法名稱,或者能夠執行任意 Perl 代碼。
此問題已得到修復。
寫得不好的 Perl 代碼允許攻擊者指定 count 給 perl 的 'x' 字符串重複操作符,已經能夠導致內存耗盡的拒絕服務攻擊。在 perl 5.15.5 之前的版本中存在漏洞,可能導致堆緩衝區溢出;再加上 glibc 2.16 之前的版本,可能允許執行任意代碼。
此問題已得到修復。
與 5.14.0 有意相容性的變更不存在。如果存在任何變更,則屬於錯誤,歡迎報告。
自 5.14.0 以來沒有廢棄項目。
無
PerlIO::scalar 已更新,修復了一個錯誤,該錯誤使得對 glob 複本打開文件句柄引起斷言失敗(在調試時)或死鎖或其他不穩定行為(沒有調試)。
IPC::Open3 已更新,以修復 perl 5.12 中引入的回歸,該回歸破壞了 IPC::Open3::open3($in, $out, $err, '-')
。[perl #95748]
Digest 已從版本 1.16 升級到 1.16_01。
請參閱 "安全性"。
Module::CoreList 已更新到版本 2.49_04,以添加此版本的數據。
無
無
perlcheat已更新至5.14版本。
在具有多架構支援的平台(如Debian)上,h2ph已更新以正確搜索gcc包含目錄。
在Configure中,對procselfexe的測試被重構為一個循環。
無
無
FreeBSD提示檔已修正為與FreeBSD 10.0相容。
為了在Solaris和NetBSD上支援"procselfexe",已更新Configure。
README.hpux已更新以注意到HP-UX 11.00中存在的一個錯誤標頭。
在Linux平台編譯時不再使用libutil,從而避免產生警告。
現在在搜索庫(例如-lm
)時使用系統gcc(而不是編譯用戶的路徑中可能存在的其他gcc)。
地域測試已更新以反映Mountain Lion中的地域行為。
為GNU/Hurd包括了各種構建和測試修正。
在GNU/Hurd中啟用了LFS支援。
NetBSD提示檔已修正為與NetBSD 6.*相容。
修正了在5.14中引入的回歸,即在/i正則表達式匹配中,如果模式是UTF-8,目標字符串不是,並且在字符串中的拉丁1字符之前有一個應該匹配模式的字符,則匹配會不正確失敗。[perl #101710]
在不區分大小寫的正則表達式模式匹配中,不再僅對UTF-8編碼的字符串進行開始匹配的掃描。這導致像"f\x{FB00}" =~ /ff/i
這樣的匹配失敗。
支援 sitecustomize 的功能已經能夠支援 RelocatableInc,因此可以同時使用 -Dusesitecustomize 和 -Duserelocatableinc。
改變了 smartmatch 運算子 (~~
) 的行為,使得在 Any ~~ Object
運算中右側的優先順序更高。
修復了關於污染支援的錯誤,以前對污染的常數執行 index()
操作會導致所有其他常數都變得污染。[perl #64804]
修復了一個在 perl 5.12 中引入的回歸錯誤,即污染錯誤未能正確通過 die()
傳播。[perl #111654]
修復了一個在 perl 5.14 中引入的回歸錯誤,即 /[[:lower:]]/i
和 /[[:upper:]]/i
不再匹配相反的大小寫。[perl #101970]
Perl 5.14.3 約經過了 12 個月的開發,包含了來自 22 位作者的大約 2,300 行的更改,涉及 64 個檔案。
Perl 在第三個十年裡持續茁壯,這要歸功於一個充滿活力的使用者和開發者社群。以下人士已經貢獻了 Perl 5.14.3 的改進。
Abigail、Andy Dougherty、Carl Hayter、Chris 'BinGOs' Williams、Dave Rolsky、David Mitchell、Dominic Hargreaves、Father Chrysostomos、Florian Ragwitz、H.Merijn Brand、Jilles Tjoelker、Karl Williamson、Leon Timmermans、Michael G Schwern、Nicholas Clark、Niko Tyni、Pino Toscano、Ricardo Signes、Salvador Fandiño、Samuel Thibault、Steve Hay、Tony Cook。
以上名單幾乎肯定是不完整的,因為它是從版本控制歷史自動生成的。特別是,它不包括向 Perl bug 追蹤器報告問題的(非常感謝)貢獻者的名字。
許多此版本中包含的改變源於 Perl 核心中包含的 CPAN 模組。我們感謝整個 CPAN 社群幫助 Perl 茁壯成長。
有關 Perl 所有歷史貢獻者的更完整列表,請參閱 Perl 源代碼發行版中的 AUTHORS 文件。
如果您發現了您認為是一個 bug,您可以查看最近在 comp.lang.perl.misc 新聞組和 perl bug 數據庫(http://rt.perl.org/perlbug/)上發布的文章。在 http://www.perl.org/,Perl 主頁也可能有相關信息。
如果您認為您發現了一個未報告的 bug,請運行您的發行版中包含的 perlbug 程序。請確保將您的 bug 削減到一個小但足夠的測試案例。您的 bug 報告以及 perl -V
的輸出將被發送到 perlbug@perl.org 以供 Perl 移植團隊分析。
如果您報告的錯誤具有安全性影響,不適合發送到公開歸檔的郵件列表,請發送至perl5-security-report@perl.org。這將指向一個封閉的訂閱未歸檔的郵件列表,其中包含所有核心提交者,他們將能夠幫助評估問題的影響,找出解決方案,並協調在Perl支持的所有平台上釋出補丁以減輕或修復問題。請僅將此地址用於Perl核心的安全問題,而不用於獨立分佈在CPAN上的模塊。
有關如何查看詳細的變更信息,請參閱Changes文件。
有關如何構建Perl的信息,請參閱INSTALL文件。
有關一般信息,請參閱README文件。
版權信息請參閱Artistic和Copying文件。