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)Digest->new()
函数在使用 eval() 调用之前没有正确地对输入进行清理,这可能导致注入任意 Perl 代码。
为了利用此漏洞,攻击者需要能够设置使用的算法名称,或者能够执行任意 Perl 代码。
此问题已修复。
编写不当的 perl 代码允许攻击者指定 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。
h2ph 已更新,可在 Debian 等支持多架构的平台上正确搜索 gcc 包含目录。
在 Configure 中,procselfexe 的测试被重构为循环。
无
无
FreeBSD hints 文件已更正,以与 FreeBSD 10.0 兼容。
Configure 已更新,以支持 Solaris 和 NetBSD 上的“procselfexe”。
README.hpux 已更新,以说明 HP-UX 11.00 中存在一个损坏的标头。
在 Linux 平台上编译时不再使用 libutil,这避免了警告的发出。
现在在搜索库(如 -lm
)时,使用系统 gcc(而不是编译用户路径中可能存在的任何其他 gcc)。
区域设置测试已更新,以反映 Mountain Lion 中区域设置的行为。
包含了针对 GNU/Hurd 的各种构建和测试修复。
在 GNU/Hurd 中启用了 LFS 支持。
NetBSD hints 文件已更正,以与 NetBSD 6.* 兼容。
已修复 5.14 中引入的回归,在 /i
正则表达式匹配中,如果模式为 UTF-8,目标字符串不是,并且拉丁文 -1 字符位于字符串中应该匹配模式的字符之前,则匹配会错误地失败。[perl #101710]
在不区分大小写的正则表达式模式匹配中,不再对 UTF-8 编码的字符串进行扫描,以查找匹配的开头,只查看第一个可能的位置。这会导致匹配(如 "f\x{FB00}" =~ /ff/i
)失败。
sitecustomize 支持已成为 relocatableinc 意识,因此 -Dusesitecustomize 和 -Duserelocatableinc 可以一起使用。
智能匹配运算符 (~~
) 已更改,以便在 Any ~~ Object
操作中,右侧优先级更高。
修复了污染支持中的一个错误,该错误会导致对污染常量的 index()
操作导致所有其他常量被污染。[perl #64804]
修复了 perl 5.12 中引入的一个回归问题,该问题导致污染错误无法通过 die()
正确传播。[perl #111654]
修复了 perl 5.14 中引入的一个回归问题,该问题导致 /[[:lower:]]/i
和 /[[:upper:]]/i
不再匹配相反的大小写。[perl #101970]
Perl 5.14.3 代表了自 Perl 5.14.2 以来大约 12 个月的开发,包含了来自 22 位作者的 64 个文件中的大约 2,300 行更改。
得益于充满活力的用户和开发人员社区,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 错误跟踪器报告问题的贡献者(非常感谢)的姓名。
此版本中包含的许多更改源于 Perl 核心包含的 CPAN 模块。我们感谢整个 CPAN 社区帮助 Perl 蓬勃发展。
有关 Perl 所有历史贡献者的更完整列表,请参阅 Perl 源代码分发中的 AUTHORS 文件。
如果您发现您认为是错误的内容,您可能需要检查最近发布到 comp.lang.perl.misc 新闻组和 perl 错误数据库 (http://rt.perl.org/perlbug/) 的文章。您也可以在 Perl 主页 (https://www.perl5.cn/) 上找到信息。
如果您认为您遇到了未报告的错误,请运行随您的发行版提供的 perlbug 程序。请务必将您的错误缩减为一个微小但足够的测试用例。您的错误报告以及 perl -V
的输出将被发送到 [email protected],由 Perl 移植团队进行分析。
如果您要报告的错误存在安全隐患,不适合发送到公开存档的邮件列表,请将其发送到 [email protected]。此地址指向一个封闭订阅的未存档邮件列表,其中包括所有核心提交者,他们可以帮助评估问题的影响,找出解决方案,并帮助协调跨所有支持 Perl 平台发布补丁以缓解或修复问题。请仅将此地址用于 Perl 核心中的安全问题,不要用于独立分发在 CPAN 上的模块。
Changes 文件,了解如何查看有关更改的详尽详细信息。
INSTALL 文件,了解如何构建 Perl。
README 文件,了解一般信息。
Artistic 和 Copying 文件,了解版权信息。