内容

名称

perl5261delta - perl v5.26.1 的新增功能

说明

本文档介绍了 5.26.0 版本和 5.26.1 版本之间的差异。

如果您要从较早的版本(如 5.24.0)升级,请先阅读 perl5260delta,其中介绍了 5.24.0 和 5.26.0 之间的差异。

安全性

[CVE-2017-12837] 正则表达式编译器中的堆缓冲区溢出

使用不区分大小写的修饰符编译某些正则表达式模式可能会导致堆缓冲区溢出并使 perl 崩溃。此问题现已修复。 [GH #16021]

[CVE-2017-12883] 正则表达式解析器中的缓冲区溢出

对于正则表达式模式中的某些类型的语法错误,错误消息可能包含一段随机的、可能很大的内存块的内容,或者可能导致 perl 崩溃。此问题现已修复。 [GH #16025]

[CVE-2017-12814] Windows 上的 $ENV{$key} 堆栈缓冲区溢出

Windows 上的 %ENV 代码中可能存在的堆栈缓冲区溢出已通过完全删除缓冲区修复,因为该缓冲区本来就是多余的。 [GH #16051]

不兼容的更改

没有故意与 5.26.0 不兼容的更改。如果存在任何此类更改,它们都是 bug,我们要求您提交报告。请参见下文的“报告错误”。

模块和实用程序

已更新的模块和实用程序

平台支持

特定于平台的说明

FreeBSD
  • 已修复在 FreeBSD-11.0 上使用 g++ 构建的问题。 [GH #15984]

Windows
  • 已添加在 Windows 上使用 Microsoft Visual Studio 2017(包含 Visual C++ 14.1)编译 perl 的支持。

  • 由于 strtollstrtoull 的映射不正确,在 Perl 的 64 位版本中使用 GCC 6 构建 XS 模块会失败。此问题现已修复。 [GH #16074] [cpan #121683] [cpan #122353]

已选择的错误修复

致谢

Perl 5.26.1 自 Perl 5.26.0 以来大约经历了 4 个月的开发,包含来自 23 位作者的 85 个文件中的大约 8,900 行更改。

不包括自动生成的文件、文档和发布工具,大约有 990 行更改到 38 个 .pm、.t、.c 和 .h 文件。

Perl 在用户和开发者的活跃社区的支持下,在第三个十年继续蓬勃发展。已知以下人员为 Perl 5.26.1 的改进做出了贡献

Aaron Crane、Andy Dougherty、Aristotle Pagaltzis、Chris 'BinGOs' Williams、Craig A. Berry、Dagfinn Ilmari Mannsåker、David Mitchell、E. Choroba、Eric Herman、Father Chrysostomos、Jacques Germishuys、James E Keenan、John SJ Anderson、Karl Williamson、Ken Brown、Lukas Mai、Matthew Horsfall、Ricardo Signes、Sawyer X、Steve Hay、Tony Cook、Yves Orton、Zefram。

上面的列表几乎肯定是不完整的,因为它是由版本控制历史自动生成的。特别是,它不包括向 Perl bug 跟踪器报告问题的(非常感谢的)贡献者的姓名。

此版本中包含的许多更改源自 Perl 核心包含的 CPAN 模块。我们感谢整个 CPAN 社区帮助 Perl 蓬勃发展。

有关 Perl 所有历史贡献者的更完整列表,请参阅 Perl 源代码发行版中的 AUTHORS 文件。

报告错误

如果您发现您认为是一个错误,您可以在 https://rt.perl.org/ 查看 perl 错误数据库。Perl 主页 https://www.perl5.cn/ 上也可能有一些信息。

如果您认为您有一个未报告的错误,请运行发行版中包含的 perlbug 程序。务必将您的错误精简为一个微小但足够的测试用例。您的错误报告以及 perl -V 的输出将被发送到 [email protected],供 Perl 移植团队分析。

如果您报告的错误具有安全影响,不适合发送到公开存档的邮件列表,请参阅 perlsec 中的“安全漏洞联系信息”,了解如何报告该问题。

感谢

如果您希望感谢 Perl 5 Porters 在 Perl 5 中所做的工作,您可以通过运行 perlthanks 程序来实现

perlthanks

这将向 Perl 5 Porters 列表发送一封电子邮件,表达您的谢意。

另请参阅

Changes 文件,解释如何查看已更改内容的详尽详细信息。

INSTALL 文件,了解如何构建 Perl。

README 文件,了解一般信息。

ArtisticCopying 文件,了解版权信息。