NAME

perl5222delta - perl v5.22.2 での変更点

DESCRIPTION

この文書は 5.22.1 リリースと 5.22.2 リリースの変更点を記述しています。

5.22.0 のような以前のリリースから更新する場合は、まず 5.22.0 と 5.22.1 の違いについて記述している perl5221delta を読んでください。

Security

Fix out of boundary access in Win32 path handling

これは CVE-2015-8608 です。 さらなる情報については [perl #126755] を 参照してください。

Fix loss of taint in canonpath()

これは CVE-2015-8607 です。 さらなる情報については [perl #126862] を 参照してください。

Set proper umask before calling mkstemp(3)

5.22.0 から、perl は mkstemp(3) を呼び出す前に umask を 0600 に設定し、 後で復元するようになりました。 これにより、所有者の読み込みと書き込みのビットだけを残したいという意図とは 逆に、間違って open(2) に、与えられたモードを適用する前に、 これらのビットを取り除くように伝えていました。

(古いバージョンの glibc のように) mkstemp(3) でモード 0666 を使う システムはパーミッション 0066 でファイルを作ります; これにより現在の umask に関わらず誰でも読み書きできるパーミッションのままになります。

これは代わりに umask 0177 を使うことによって修正されました。

[perl #127322]

Win32 crypt() で未初期化メモリにアクセスしないように

短いソルトやソルトの中の不正な文字の検出処理が追加されました。

[perl #126922]

environ から重複した環境変数を削除する

以前は、一つの環境変数が environ[] に複数回現れると、 %ENV|perlvar/%ENV はその名前の最後のエントリを保持していました; 一方 典型的なgetenv() は最初のエントリを保持します。 %ENVgetenv() が返すものと同じものを保持するようになりました。

次に、environ[] から重複を取り除くようになったので、その名前の設定が %ENV で設定された場合、安全でない値が子プロセスに渡らないようになりました。

これは CVE-2016-2381 です。

互換性のない変更

故意に、5.22.1 から互換性がなくなるようにした変更はありません。 もし 5.22.1 との互換性がなければ、それはバグですので、報告をお願いします。 以下の "Reporting Bugs" を参照してください。

モジュールとプラグマ

更新されたモジュールとプラグマ

文書

既存の文書の変更

perldiag

perlfunc

設定とコンパイル

プラットフォーム対応

プラットフォーム固有の注意

Darwin

Darwin での -Dusecbacktrace 付きでの perl のコンパイルが再び 動作するようになりました。

[perl #127764]

OS X/Darwin

-DDEBUGGING とスレッドの両方を有効にしたビルドは、OS X の Terminal で ビルドやテストをすると "panic: free from wrong pool" で失敗します。 これは、perl 内部の環境管理が、環境を更新するために libc の setenv() 関数を 使う atfork ハンドラと競合するからです。

Perl は OS X の環境の更新に setenv()/unsetenv() を使うようになりました。

[perl #126240]

ppc64el

ppc64el (リトルエンディアン PowerPC の Debian での呼び名) の浮動小数点形式は 正しく検出されるようになりました。

Tru64

t/porting/extrefs.t でのテスト失敗が修正されました。

Internal Changes

バグ修正の抜粋

Acknowledgements

Perl 5.22.2 は、Perl 5.22.1 以降、24 人の作者によって、 110 のファイルに約 3,000 行の変更を加えて、 約 5 ヶ月開発されてきました。

自動生成ファイル、文書、リリースツールを除くと、52 の .pm, .t, .c, .h ファイルに約 1,500 行の変更を加えました。

Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 20 年を超えて 繁栄しています。 以下の人々が、Perl 5.22.2 になるための改良に貢献したことが分かっています:

Aaron Crane, Abigail, Andreas König, Aristotle Pagaltzis, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, David Golden, David Mitchell, H.Merijn Brand, James E Keenan, Jarkko Hietaniemi, Karen Etheridge, Karl Williamson, Matthew Horsfall, Niko Tyni, Ricardo Signes, Sawyer X, Stevan Little, Steve Hay, Todd Rinaldo, Tony Cook, Vladimir Timofeev, Yves Orton.

これはバージョンコントロール履歴から自動的に生成しているので、ほぼ確実に 不完全です。 特に、Perl バグトラッカーに問題を報告をしてくれた (とてもありがたい)貢献者の 名前を含んでいません。

このバージョンに含まれている変更の多くは、Perl コアに含まれている CPAN モジュール由来のものです。 私たちは Perl の発展を助けている CPAN コミュニティ全体に感謝します。

全ての Perl の歴史的な貢献者のより完全な一覧については、どうか Perl ソース 配布に含まれている AUTHORS を参照してください。

バグ報告

もしバグと思われるものを見つけたら、comp.lang.perl.misc ニュースグループに 最近投稿された記事や https://rt.perl.org/ にある perl バグ データベースを確認してください。 Perl ホームページ、http://www.perl.org/ にも情報があります。

もしまだ報告されていないバグだと確信したら、そのリリースに含まれている perlbug プログラムを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。 バグレポートは perl -V の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます。

もし報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、 perl5-security-report@perl.org に送ってください。 このアドレスは、問題の影響を評価し、解決法を見つけ、Perl が対応している 全てのプラットフォームで問題を軽減または解決するパッチをリリースするのを 助けることが出来る、全てのコアコミッタが参加している非公開の メーリングリストになっています。 このアドレスは、独自に CPAN で配布されているモジュールではなく、 Perl コアのセキュリティ問題だけに使ってください。

SEE ALSO

変更点の完全な詳細を見る方法については Changes ファイル。

Perl のビルド方法については INSTALL ファイル。

一般的なことについては README ファイル。

著作権情報については Artistic 及び Copying ファイル。