perl5142delta - Perl v5.14.2 的新特性
本文档描述了 5.14.1 版本和 5.14.2 版本之间的差异。
如果您从 5.14.0 或更早的版本升级,请先阅读 perl5141delta,该文档描述了 5.14.0 和 5.14.1 之间的差异。
自 5.14.0 以来没有变化。
File::Glob::bsd_glob()
使用 GLOB_ALTDIRFUNC 时的内存错误 (CVE-2011-2728)。使用不支持的标志 GLOB_ALTDIRFUNC 调用 File::Glob::bsd_glob
会导致访问冲突/段错误。接受来自外部来源的标志值的 Perl 程序可能会暴露于拒绝服务或任意代码执行攻击。目前没有已知的漏洞。该问题已通过显式禁用所有不支持的标志并将未使用的函数指针设置为 null 来解决。错误由 Clément Lecigne 报告。
Encode
decode_xs n 字节堆溢出 (CVE-2011-2939)Encode
中的一个错误可能会在某些输入上导致堆溢出。该问题已得到解决。错误由 Robert Zacek 报告。
没有故意与 5.14.0 不兼容的更改。如果有任何更改,它们都是错误,欢迎报告。
自 5.14.0 以来没有弃用。
无
CPAN 已从版本 1.9600 升级到版本 1.9600_01。
CPAN::Distribution 已从版本 1.9602 升级到 1.9602_01。
从 CPAN 版本 1.9800 回溯的错误修复。确保在 dynamic_config
为 true 的情况下,从 CPAN 元数据文件中正确检测到 configure_requires
先决条件。[rt.cpan.org #68835]
还确保 configure_requires
仅在 META 文件中检查,而不是 MYMETA 文件中,因此可以防止删除 configure_requires
的 MYMETA 生成。
Encode 已从版本 2.42 升级到 2.42_01。
参见 "安全"。
File::Glob 已从版本 1.12 升级到版本 1.13。
参见 "安全"。
PerlIO::scalar 已从版本 0.11 升级到 0.11_01。
它修复了当$scalar
是一个写时复制标量时,open my $fh, ">", \$scalar
不起作用的问题。
无
无
无
修复了套接字大小的错误,现在测试套件在 HP-UX PA-RISC 上针对 64 位所有构建通过。
构建系统已更新,可与 Mac OS X 10.7 上的构建工具配合使用。
在 @INC 过滤器(由 @INC 中子程序返回的子程序)中,$_ 曾经表现异常:如果从子程序返回,它不会被复制,而是会返回变量本身;释放 $_(例如,使用 undef *_
)会导致 perl 崩溃。此问题已修复 [perl #91880]。
Perl 5.10.0 引入了一些错误的逻辑,导致在 pack 模板中间的 "U*" 如果输入字符串为空,则等效于 "U0"。此问题已修复 [perl #90160]。
如果在第一次调用 caller
之后将 @DB::args
赋值给它,caller
在从 DB 包调用时不再泄漏内存。 Carp 触发了此错误 [perl #97010]。
utf8::decode
存在一个严重的错误,会导致就地修改写时复制标量的字符串缓冲区(即跳过复制)。这会导致哈希具有两个具有相同键的元素 [perl #91834]。
本地化绑定变量如果包含写时复制字符串,则会使其变为只读。
包含写时复制值的受限哈希(参见 fields 语义)的元素无法删除,也不能清除此类哈希(%hash = ()
)。
锁定作为 glob 复制的哈希元素不再导致后续对其的赋值破坏 glob。
已修复与在 5.14.0 中引入的正则表达式修饰符 /aa
和 \b
转义序列组合相关的恐慌 [perl #95964]。
这是一个关于一些重要的未修复错误的列表,这些错误是 5.12.0 的回归。
PERL_GLOBAL_STRUCT
已损坏。
自 Perl 5.14.0 起,使用 `-DPERL_GLOBAL_STRUCT` 构建已不再可能。这意味着 Perl 目前无法在任何需要以这种方式构建的平台上运行,包括 Symbian。
虽然 `PERL_GLOBAL_STRUCT` 现在在最新的 Perl 开发版本中再次有效,但它在 Symbian 上是否再次有效尚未得到验证。
我们非常希望与任何在 Symbian 上使用 Perl 的人交流。
Perl 5.14.2 代表了自 Perl 5.14.1 以来大约三个月的开发,包含了来自 9 位作者的 61 个文件中的大约 1200 行更改。
得益于充满活力的用户和开发人员社区,Perl 继续在它的第三个十年蓬勃发展。以下人员已知为 Perl 5.14.2 的改进做出了贡献。
Craig A. Berry、David Golden、Father Chrysostomos、Florian Ragwitz、H.Merijn Brand、Karl Williamson、Nicholas Clark、Pau Amma 和 Ricardo Signes。
如果您发现您认为是错误,您可以查看最近发布到 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 文件。