第25章 コンパイラーとツール

GCC での libgomp に対する OpenMP 4.5 のサポート

今回の更新により、GCC での新規バージョンの OpenMP のサポートが提供されます。これにより、Developer Toolset の各種プログラムが適切にリンクされ、実行されます (BZ#1357060)。

GCC のスタック保護の強化

さn今回の更新の前は、GCC のスタック保護は可変長配列のみを含み、それ以外の (または非常に小さい) 配列を含まない関数については機能しませんでした。そのため、バッファーオーバーフローのエラーが検出されない可能性がありました。このバグは修正され、コンパイラーはこれらの関数もインストルメント化できるようになりました (BZ#1289022)。

gdbserver がコンテナーのプロセスのシームレスなデバッグをサポート

今回の更新の前には、GDB が SPC (スーパー特権コンテナー) 内で実行されていて、Red Hat Enterprise Linux Atomic Host の別のコンテナーで実行されているプロセスに接続されている場合、 GDB は、デバッグするプロセスでロードされる主な実行可能ファイルまたは共有ライブラリーのバイナリーイメージを見つけることができませんでした。
そのため、GDB は存在しないか、または存在しているが一致しないファイルに関連するエラーメッセージを表示していた可能性があります。また、GDB は正常に接続されているようでも、その後のコマンドが失敗したり、不正な情報を表示する可能性がありました。
Red Hat Enterprise Linux 7.3 では、コンテナーのプロセスのシームレスなデバッグをサポートするために gdbserver が拡張されました。Red Hat Enterprise Linux 7.3 バージョンの gdbserverqXfer:exec-file:read および vFile:setfs パケットを新たにサポートします。ただし、Red Hat Enterprise Linux 7.3 バージョンの gdb はこれらのパケットを使用できません。Red Hat Developer Toolset 4.1 (および 4.1 以降の) バージョンの gdb をコンテナーおよび Red Hat Enterprise Linux 7.3 gdbserver と共に使用することをお勧めします。Red Hat Developer Toolset バージョンの gdbserver も使用できます。
Red Hat Enterprise Linux 7.3 gdb は、-p パラメーター (または attach コマンド) と共に実行される場合で、接続されているプロセスがコンテナー内のプロセスであることを検出する場合に gdbserver の使用を提案します。さらに、Red Hat Enterprise Linux 7.3 gdb は、デバッグ対象となる実行可能なプロセスのコンテナー内の場所を指定するために file コマンドの明示的な使用を提案します。Red Hat Developer Toolset バージョンの gdb が使用されている場合には file コマンドを入力する必要はありません。
今回の更新により、Red Hat Enterprise Linux 7.3 gdbserver は Red Hat Developer Toolset 4.1 (または 4.1 以降) の gdb と共にコンテナーのプロセスのシームレスなデバッグを行います。さらに、Red Hat Enterprise Linux 7.3 gdb は、Red Hat Developer Toolset gdb が利用できない場合にコンテナー内のプロセスのデバッグをガイドします (BZ#1186918)。

GDB が削除された実行可能ファイルで実行中のプロセスを強制終了しない

今回の更新の前には、削除された実行可能ファイルで実行中のプロセスへの接続を試行する GDB がプロセスを間違って強制終了することがありました。このバグは修正され、GDB が削除された実行可能なファイルを使ってプロセスを誤って強制終了することがなくなりました (BZ#1326476)。

GDB が生成するコアファイルが小さくなり、コアダンプフィルターが使用される

GDB に独自のコアダンプ機能を提供する gcore コマンドは、Linux カーネルコアダンプコードの機能のより詳細なシミュレーションを実行できるように更新されました。これにより、生成されあるコアダンプファイルのサイズが小さくなりました。GDB は、どのメモリーセグメントをコアダンプファイルに書き込むかを制御する /proc/PID/coredump_filter ファイルも使用します (BZ#1265351)。

AArch64 のエラーメッセージを改善

AArch64 ターゲットの場合、プログラムがグローバル変数を整数型よりも小さい型として宣言するものの、それが別のファイルで整数として参照される場合、リンカーにより混乱させるエラーメッセージが生成される可能性がありました。今回の更新により、このエラーメッセージは修正され、原因が明確に特定されると共に、考えられるエラーの理由がユーザーに表示されるようになりました (BZ#1300543)。

大規模または高アドレスのプログラムが AArch64 で正常にリンクされ、実行される

以前のリリースでは、リンカー内の正しくないコードにより、正しくないブランチスタブが生成される可能性がありました。そのため、プログラムのサイズが非常に大きい場合や、プログラマーがプログラムの一部が非常に高アドレスに置かれるようにコード化した場合にはリンクに失敗しました。このバグは修正され、ブランチスタブの正しいタイプが選択されるようになりました (BZ#1243559)。

opreport および opannote ユーティリティーがアーカイブデータを適切に解析

以前のリリースでは、データを保存するために oparchive を使用する際に関連サンプルがアーカイブに組み込まれませんでした。さらに、oprofile ユーティリティーは、アーカイブではなく、実行中の oprofile_data ディレクトリーにあるデータを選択しました。そのため、opreport および opannote ユーティリティーは、oparchive で生成されるアーカイブのデータを適切に解析できませんでした。今回の更新により、プロファイリングサンプルをアーカイブに保存し、それらをアーカイブで使用するための修正が提供されています。また、opreport および opannote が予想どおりに機能するようになりました (BZ#1264443)。

同じ数値のユニットマスクを複数持つイベントが名前で処理される

第 5 世代 Core i3、i5、および i7 インテルプロセッサーには、同じ数値のユニットマスクが複数あるイベントが含まれます。そのため、一部のイベントのデフォルトのユニットマスクを検索したり、選択したりすることができませんでした。今回の更新により、イベントがデフォルトのユニットマスクに数値ではなく名前を使用するよう変更され、このバグが修正されました (BZ#1272136)。

新規の MACRO_INSTS_FUSED イベント識別子

以前のリリースでは、MACRO_INSTS 識別子は、第 1 世代 Core i3、i5、および i7 インテルプロセッサーの 2 つの異なるイベントに使用されていました。そのため、MACRO_INSTS を使用してそれらのいずれかを明確に選択することはできませんでした。今回の更新により、その内の 1 つのイベントの名前が MACRO_INSTS_FUSED に変更されたため、このバグが修正されました (BZ#1335145)。

libpfm を複数回にわたって初期化してもアプリケーションがクラッシュしない

以前のリリースでは、libpfm 初期化コードが複数回呼び出されると (例: PAPI fmultiplex1 テストでの呼び出し)、root で実行されている場合に libpfm 内部データ構造が破損し、予期しない終了が発生しました。今回の更新により、利用可能なイベントのカウンターが適切にリセットされ、root で実行されている libpfm を使用するアプリケーションが libpfm の再初期化時にもクラッシュしなくなりました (BZ#1276702)。

物理的に存在しないノードについての不要な警告メッセージの削除

以前のリリースでは、numa_node_to_cpus() 関数が sysfs ディレクトリーにエントリーを持たないノードで呼び出されると、libnuma ライブラリーが無効な sysfs についての警告メッセージを常に出力していました。そのため、libnuma は物理的に存在しないノードについても混乱させる警告メッセージを出力し (連続していないノード番号など)、この警告は dlsym インターフェースを使って関数が呼び出される場合にオーバーライドされませんでした。今回の更新により、この警告メッセージは初回のスキャン時に検出されたものの、sysfs には表示されなかった NUMA ノードについてのみ出力されるようになりました。これにより、libnuma のユーザーは連続していないノード番号の警告メッセージを受信することはなくなりました (BZ#1270734)。

OpenJDK バージョンファミリーの選択が複数の更新間で記憶される

今回の更新以前は、複数の JDK がインストールされているときに、yum update は、ユーザーが優先度の低い JDK を 事前に選択している場合でも最新の JDK に更新していました。今回の更新により、chkconfig--family スイッチが導入され、選択した JDK がシステム更新後にもバージョン family に残るようになりました (BZ#1296413)。

RC4 が OpenJDK 6 と OpenJDK 7 でデフォルトで無効にされる

以前の OpenJDK パッケージでは、トランスポート層セキュリティー (TLS) を使用した安全な接続を作成する際に RC4 暗号化アルゴリズムを使用できました。しかし、このアルゴリズムの使用は安全でないため、今回のリリースでは無効にされています。これを引き続き使用するには、SSLv3, DH keySize < 768jdk.tls.disabledAlgorithms の設定に戻す必要があります。これを実行するには、<java.home>/jre/lib/security/java.security ファイルで永続的に実行します。
jdk.tls.disabledAlgorithms=SSLv3, DH keySize < 768
または、以下の行を新たなテキストファイルに追加し、引数 -Djava.security.properties=<path to file> をコマンドラインで使用してこのファイルの場所を Java に渡します (BZ#1302385)。

zshmalloc() 実行時もデッドロック状態にならない

以前のリリースでは、zsh プロセスがメモリー割り当て関数の実行時にシグナルを受信し、シグナルハンドラーがメモリーの割り当てや解放を試行すると、zsh はデッドロック状態になり、応答しなくなりました。今回の更新により、シグナルハンドラーは zsh のグローバルな状態の処理中や、ヒープメモリーアロケーターの使用中に有効にされることがなくなりました。これにより、先のデッドロックが発生しなくなりました (BZ#1267912)。

複数文字で記述される SCSI デバイスタイプも正常に処理される

今回の更新の前には、rescan-scsi-bus.sh ツールは Medium Changer または Optical Device などの 2 文字以上を使用して記述される SCSI デバイスタイプを誤って解釈していました。そのため、このようなデバイスタイプが接続されたシステムでスクリプトが実行されると、スクリプトは複数の誤解を招くエラーメッセージを出力しました。今回の更新により、複数文字で記述されるデバイスタイプも適切に処理されるようになり、適切なデバイスタイプの記述がエラーなしにユーザーに返されるようになりました (BZ#1298739)。

Sphinx が FIPS モードで HTML ドキュメントを適切にビルド

以前のリリースでは、Python Sphinx ジェネレーターは FIPS モードがアクティブ状態の場合、システム上で HTML 形式のドキュメントをビルドできませんでした。今回の更新により、used_for_security パラメーターを false に設定することで md5() 関数の使用に関連する問題は修正されました。これにより、Sphinx が HTML ドキュメントを予想どおりにビルドできるようになりました (BZ#966954)。

Perl インタープリターが PerlIO ロケールプラグマの使用後にクラッシュしない

スレッドが PerlIO ロケールプラグマの使用後に生成されると、Perl インタープリターはセグメンテーション違反により予期せずに終了しました。アップストリームのパッチが適用されることにより、PerlIO::encoding オブジェクトの重複が解決されました。この結果、スレッドがファイルハンドルのエンコーディングの設定後に適切に作成されるようになりました (BZ#1344749)。

行末が Net::FTP Perl モジュールを使ってテキストモードでアップロードされたファイルに保持される

以前のリリースでは、ファイルを Net::FTP Perl モジュールを使ってテキストモードでアップロードした場合、アップロードしたファイルの行の終わりは正しく変換されませんでした。今回の更新により、データの FTP サーバーへのアップロード時にローカルからネットワーク仮想端末 (NVT; Network Virtual Terminal) のエンコーディングにおける行末の正規化が修正されました。これにより、この問題は発生しなくなりました (BZ#1263734)。

Perl インタープリターがスレッド化されたプログラムで glob() を使用してもクラッシュしない

以前のリリースでは、スレッドの生成後に Perl glob() 関数を呼び出すと、Perl インタープリターはセグメント違反で予期せずに終了しました。アップストリームのパッチが glob() インタープリター全体のデータをクローンできるように適用され、スレッド化されたプログラムで Perl glob() を使用しても予想どおりに機能するようになりました (BZ#1223045)。

親プロセス下のスレッドの cgroup 値を ps -o thcgr を使用して表示

以前のリリースでは、ps コマンドは親プロセスのコントロールグループ (cgroup) のみを表示していました。そのため、親プロセスの下にある cgroup の値は親プロセスの cgroup 値と同じでした。今回の更新により、最新の cgroup リストとの互換性を維持するための thcgr という新たなオプションが導入されました。thcgr オプションを使用すると、親プロセス下のスレッドについての正しい cgroup 値を表示できるようになりました (BZ#1284087)。

pmap が合計数を誤って報告しない

VmFlags がカーネル smaps インターフェースに導入されることにより、pmap ツールは VmFlags エントリーの形式の違いにより、コンテンツを正確に処理できなくなりました。そのため、pmap によって正しくない合計数が報告されました。しかし、基礎となるソースコードへのパッチの適用により、pmap は予想どおりに機能するようになりました (BZ#1262864)。

vmstat -d で長い名前のデバイスを表示できる

以前のリリースでは、ディスクの統計レポートが必要になる場合、デバイス名の最初の 15 文字のみが /proc/diskstats ファイルから読み取られました。そのため、16 文字以上の文字が使用された名前を持つデバイスは vmstat -d コマンドの出力に表示されませんでした。今回の更新により、フォーマット文字列は 31 文字までを読み取れるように変更され、長い名前を持つデバイスは vmstat -d で正しく表示されるようになりました (BZ#1169349)。

新規の perl-Perl4-CoreLibs サブパッケージには削除済みファイルが含まれる

provides タグが perl パッケージに組み込まれなくなった非推奨ファイルに間違って設定されていました。このバグを修正するために、これらのファイルが以前のバージョンの Perl からバックポートされ、新たに作成された perl-Perl4-CoreLibs サブパッケージで提供されるようになりました (BZ#1365991)。

GSS-Proxy がファイルディスクリプターをキャッシュする頻度が低下

以前のリリースでは、GSS-Proxy の mechglue レイヤーは、プロセスの有効期間にファイルディスクリプターをキャッシュしました。そのため、autofs などの UID または GID をたびたび変更するデーモンが予期しない動作をする可能性がありました。ID の変更時に GSS-Proxy への接続を閉じたり、再度開いたりできるようにするパッチが適用されました。その結果、GSS-Proxy がファイルディスクリプターをキャッシュする頻度が低くなり、UID または GID を変更するデーモンが予想どおりに機能するようになりました (BZ#1340259)。

PAPI_L1_TCM イベント計算への修正

以前のリリースでは、L1 キャッシュミスの合計回数 (PAPI_L1_TCM) の PAPI の事前設定が第 4 世代 Core i3、i5、および i7 インテルプロセッサーについて間違って計算されていました。今回の更新により、PAPI_L1_TCM イベントおよびこれらのプロセッサーで PAPI_L1_TCM を使用するプログラムからより正確な測定値を取得できるようになりました (BZ#1277931)。

IBM Power7 および IBM Power8 プラットフォームでの PAPI_L1_DC* イベントの精度が向上

以前のリリースでは、キャッシュイベントの PAPI イベントの事前設定は各種 IBM Power7 および Power8 プロセッサーの派生値を間違って計算していました。そのため、PAPI_L1_DCRPAPI_L1_DCW、および PAPI_L1_DCA イベントの値は正しくありませんでした。事前に設定された計算値は修正され、このイベントの精度が上がりました (BZ#1263666)。

Postfix 式パーサーを改良

以前のリリースでは、papi_events.csv ファイルの式から派生メトリックを計算するために使用された Postfix 式パーサーは、適切なエラーチェックを実行せず、一部の式を正しく解析しませんでした。そのため、パーサーは派生メトリックの値を計算するために使用されるバッファー外で書き込みを行う可能性があり、一部の式についてスタックスマッシュのエラーが発生する可能性がありました。そこで、パーサーが正しくない式でメモリーを上書きしないようにするための修正が提供されています。現在パーサーは、papi_events.csvPostfix 式を適切かつ確実に解析し、メモリーのランダム領域を上書きするのではなく、不適切な式についてのエラーを報告するようになりました (BZ#1357587)。

python-dns ツールキットの udp() 関数の未定義変数を設定

以前のリリースでは、python-dns ツールキットは udp() 関数の finally セクションにある未定義の response_time 変数を使用しました。そのため、ユーザーには間違った例外が表示されました。このバグは修正され、間違った例外が返されるようになりました (BZ#1312770)。

zsh がエスケープされていない感嘆符を解析

以前のリリースでは、zsh パーサーの状態の初期化は十分に実行されていませんでした。そのため、zsh はテキスト文字列でエスケープされていない感嘆符を解析できませんでした。今回の更新により、zsh はパーサーの状態を適切に解析できるようになりました。その結果、zsh はエスケープされていない感嘆符を適切に解析できるようになりました (BZ#1338689)。

zsh がジョブ終了の処理中のシグナルの受信時にハングしない

以前のリリースでは、シグナルハンドラーは zsh でのジョブ終了を処理中に有効にされました。そのため、メモリーアロケーターの使用中にシグナルが受信され、そのハンドラーがメモリーを割り当てるか、または解放しようとする際に、zsh プロセスはデッドロックで終了し、応答しなくなりました。今回の更新により、シグナルハンドラーはジョブ終了の処理中に有効にされなくなりました。その代わりに、シグナルはシグナルハンドラーの遅延実行のキューに入れられます。その結果、デッドロックは発生しなくなり、zsh はハングしなくなりました (BZ#1291782)。

zshout of memory (メモリー不足) シナリオを正常に処理

zsh シェルは、out of memory という致命的なエラーメッセージの出力中にメモリーを割り当てます。以前のリリースでは、出力のルーチンがメモリーの割り当てに失敗した場合、無限再帰がトリガーされました。そのため、zsh プロセスはスタックオーバーフローにより予期せずに終了しました。今回の更新により、無限再帰がこのシナリオで発生しなくなりました。その結果、致命的なエラーメッセージの出力後に zsh はメモリーが不足する場合も正常に終了するようになりました (BZ#1302229)。

ksh 互換性モードでの構文チェックが zsh で予想どおりに機能

以前のリリースでは、ksh 互換性モードでシェルスクリプトの構文をチェックする間に zsh$HOME 内部変数を正しく初期化しませんでした。そのため、zsh プロセスは NULL ポインターの逆参照を試行した後に予期せずに終了しました。今回の更新により、$HOME 内部変数は適切に初期化されるようになりました。その結果、ksh 互換性モードの構文チェックは zsh で予想どおりに機能します (BZ#1267251)。

コマンド置換の解析でコマンド履歴が破損しない

以前のリリースでは、$() コマンド置換コンストラクトを持つコマンドはコマンド履歴に正常に記録されませんでした。このバグは修正され、コマンド置換の解析によってコマンド履歴が破損することはなくなりました (BZ#1321303)。

haproxy 設定ファイルで 32 文字を超えるホスト名を正常に使用できる

以前のリリースでは、haproxy がピアホスト名を使用するように設定された場合、バグにより 32 文字を超えるホスト名が切り捨てられていました。そのため、haproxy 設定ファイルは無効になりました。このバグは修正され、ピアとして指定されるホスト名は 32 文字を超えても正常に処理されるようになりました (BZ#1300392)。

psacct のインストール後に RPM 検証の失敗が発生しない

psacct パッケージのインストール時に、/var/account/pacct ファイルのモードは psacctlogrotate ルールに基づいて設定されませんでした。そのため、/var/account/pacct のモードはインストール後もこれらのルールとは異なるものとなり、これにより RPM 検証が失敗しました。今回の更新により、/var/account/pacct のモードは psacct のインストール時に 0600 に設定され、logrotate ghost ファイルルールに一致するものになりました。これによって RPM 検証の失敗は発生しなくなりました (BZ#1249665)。

sadc で渡される SIGINT によってシステムが予期せずに再起動されない

競合状態により、sadc コマンドは SIGINT シグナルを init プロセスに渡すことがありました。そのため、システムが予期せずに再起動する可能性がありました。今回の更新により、SIGINT シグナルが init プロセスに送信されていないことを確認する検証が追加されました。その結果、システムが予期せずに再起動することがなくなりました (BZ#1328490)。

pidstat が特定フィールドに 100% を超える値を出力しない

以前のリリースでは、pidstat コマンドによって有効期間の短いプロセスを多数持つシステムの PID に事前に割り当てたスペースが不足することが稀にありました。そのため、pidstat 出力の %CPU%user、および %sys フィールドに 100% を超える無意味な値が含まれていました。今回の更新により、pidstat は PID のスペースを自動的に再割り当てし、すべてのフィールドに正しい値を出力するようになりました (BZ#1224882)。

sysstat が提供する /usr/bin/nfsiostat が非推奨となり nfs-utils が提供する /sbin/nfsiostat が推奨される

以前のリリースでは、sysstat パッケージが提供する /usr/bin/nfsiostatnfs-utils パッケージが提供する /sbin/nfsiostat という 2 つのパッケージが同じ名前の実行可能ファイルを提供していました。そのため、完全パスが指定されるまでどちらのバイナリーが実行されたのかが明確ではありませんでした。sysstat が提供する nfsiostat ユーティリティーは非推奨となり、その代わりに nfs-utils が提供するユーリティティーが推奨されるようになりました。移行期間に sysstat パッケージの nfsiostat バイナリーの名前は nfsiostat-sysstat に変更されます (BZ#846699)。

iostat が 72 文字を超えるデバイス名を出力

以前のリリースでは、72 文字を超えるデバイス名は、デバイス名フィールドが短すぎるために iostat コマンド出力で切り捨てられました。今回の更新により、デバイス名に割り当てられた領域は 128 文字に拡大し、iostat が出力に表示できるデバイス名は長くなりました (BZ#1267972)。

cp を使用して後続エクステントのあるスパースファイルをコピーしてもデータ破損が生じない

スパースファイルの作成時に、fallocate ユーティリティーは FALLOC_FL_KEEP_SIZE を使用して EOF を超えてエクステントを割り当てる可能性がありました。そのため、エクステント間にギャップ (穴) があり、EOF がギャップにある場合に最後の穴は再現されなくなりました。これにより、コピーされるファイルに、そのサイズが小さすぎることから無兆候データ破損 (silent data corruption) が生じました。今回の更新により、cp コマンドでは、明確なファイルサイズを超えるエクステントの処理とその割り当てがサポートされなくなったことから、これらの処理が実行されなくなりました。その結果、特定タイプのスパースファイルで無兆候データ破損 (silent data corruption) が発生しなくなりました (BZ#1284906)。

autofs でマウントされる NFS 共有によって、df の使用によるローカルマウントのリスト時のタイムアウトがなくなる

df のバグにより、autofs でマウントされる NFS 共有はローカルマウントとして検出される可能性がありました。-l オプションを使用してローカルマウントのみを一覧表示しようとすると、df がこれらの誤って検出された共有を一覧表示しようとするためにタイムアウトが生じました。このバグは修正され、ローカルマウントの一覧表示は予想どおりに機能するようになりました (BZ#1309247)。

ksh がログインメッセージを正しく表示

対話型ログインシェルにログインすると、初期環境をセットアップするために /etc/profile スクリプトの内容が実行されました。Korn シェル (ksh) へのログイン時にユーザーに表示されるはずのメッセージは、シェルが /etc/profile の実行前にすでに設定されている PS1 環境変数の値に依存した、ログインシェルであるかを判別する内部テストが実行されるために表示されませんでした。しかし、この環境変数は /etc/profile の実行後にのみ Korn シェルで設定されるため、メッセージが ksh ユーザーに表示されることはありませんでした。今回の更新により、/etc/profile の実行前に設定される PS1 変数に依存しない代替テストが提供されるようになり、メッセージがログイン時に Korn シェルのユーザーに表示されるようになりました (BZ#1321648)。

新規の POSIX セマフォ破壊セマンティクス

以前のリリースでは、glibc での POSIX セマフォの実装は、セマフォを自己同期型にするための現在の POSIX 要件に基づいていませんでした。そのため、sem_post() および sem_wait() 関数はセマフォの破壊後にこれにアクセスするため、予期せずに終了したり、EINVAL エラーコードを返したりしました。今回の更新により、待機処理を記録し、セマフォの早まった破壊を防ぐ新規の POSIX セマフォ破壊セマンティクスが実装されます。glibc で実装されるセマフォは自己同期型となるため、このバグは修正されました (BZ#1027348)。

SELinux の自動再ラベル付け後にディスクが正常にアンマウントされる

以前のリリースでは、SELinux の再ラベル付け後に rhel-autorelabel スクリプトは systemctl --force reboot コマンドを実行してシステム再起動を開始しました。そのため、rootfs イメージを正常にアンマウントし、基礎となるデバイスマッパー (DM) デバイスの非アクティブ化を実行するために必要な特定のステップが省略されました。このバグを修正するために、rhel-autorelabel スクリプトは、再起動の前に dracut-initframs-restore スクリプトを起動できるように変更されました。その結果、ディスクはこのシナリオで正常にアンマウントされるようになりました (BZ#1281821)。

sosreport が ASCII 以外の文字を含むソースの出力を正常に収集

今回の更新の前は、sosreport ユーティリティーが名前に ASCII 以外の文字を含むファイルやコマンドの出力を収集しようとする際に sosreport が完全に生成されませんでした。今回の更新により、これらのファイルやコマンドは適切に収集され、ユーティリティーで報告されます (BZ#1296813)。

Kernel Dump Configuration GUI で kdump を NFS ターゲット宛先に設定できる

以前のリリースでは、Kernel Dump Configuration GUI の NFS ターゲット宛先の入力ボックスは、エクスポートパスを入力する必要があることを示唆しませんでした。そのため、ユーザーはこの GUI を使って kdump 機能を NFS ターゲット宛先に設定できませんでした。今回の更新により、入力ボックスのラベルはエクスポートパスが必須であることを示唆するように変更され、ユーザーはこの状況で kdump を設定できるようになりました (BZ#1208191)。

NFS 共有がアンマウントされた状態で kdump を NFS ターゲットに設定すると正しい警告メッセージが表示される

今回の更新の前には、NFS 共有がマウントされていない場合にユーザーが kdump を NFS ターゲット宛先に設定しようとすると混乱させるエラーメッセージと共に警告が出されました。Kernel Dump Configuration GUI で操作される system-config-kdump ユーティリティーは、kdump 設定の適用前に NFS エクスポートをマウントする必要があることを示唆しませんでした。その代わりに、複数の混乱させるエラーメッセージが返されました。今回の更新により、警告メッセージは、NFS エクスポートがその時点でマウントされておらず、kdump 設定の段階にすでにマウントされている必要があることを示唆するように変更されました。この警告メッセージにより混乱が少なくなり、kdump 設定を正常に完了する方法についての適切な情報がユーザーに提供されるようになります (BZ#1121590)。

lparstat/proc/interrupts の長い行によって失敗しない

今回の更新の前には、/proc/interrupts ファイルの SPU 行が 512 文字を超える場合に lparstat コマンドを使用すると失敗しました。今回の更新により、lparstat は interrupt 行を正常に解析するようになり、この状況でも正常な結果を返すようになりました (BZ#1366512)。

lparstat のデフォルト出力モードで適切な報告が実行される

以前のリリースでは、lparstat ユーティリティーのデフォルト出力モードを使用すると、lparstatphysc0.00 とするなど、特定パラメーターの値を誤って報告しました。この問題は修正され、影響を受けた値は適切に表示されるようになりました (BZ#1347083)。

Socket::getnameinfo モジュールが汚染された値を正常に処理できる

以前のリリースでは、Perl Socket::getnameinfo モジュールは汚染された値を処理できませんでした。今回の更新でパッチが適用された結果、モジュールは汚染された値を使用できるようになりました (BZ#1200167)。

python-sphinx モジュールがドキュメントのビルドに失敗しない

以前のリリースでは、python-sphinx パッケージの man ページ作成モジュールには meta および inline ノードビジターがありませんでした。そのため、ドキュメントのビルドは失敗する可能性がありました。欠落しているノードビジターを追加するパッチが提供されることにより、ドキュメントが正常にビルドされるようになりました (BZ#1291573)。

プログラムが polkit アクションの一覧を繰り返し表示してもメモリー不足にならない

以前のリリースでは、polkit クライアントライブラリーは利用可能なアクションを一覧表示する際にメモリーを適切に解放しませんでした。これにより、プログラムのメモリーが不足し、プログラムが終了する可能性がありました。今回の更新により、ライブラリーはメモリーを正常に解放し、プログラムはこのシナリオでクラッシュしなくなりました (BZ#1310738)。

unzip がラテン以外および Unicode 以外のエンコーディングをサポート

以前のリリースでは、unzip はラテン以外および Unicode 以外のエンコーディングをサポートしなかったため、正しくない名前のファイルが作成される可能性がありました。今回の更新により、unzip-O および -I オプションを使用してこれらのエンコーディングをサポートします。詳細は、unzip -h コマンドを実行して確認してください (BZ#1276744)。

zlib が RFC1951 互換ファイルを正常に圧縮解除

以前のリリースでは、zlib のバグにより RFC1951 互換ファイルは正常に圧縮解除されませんでした。この更新によりバグが修正され、zlib は RFC1951 互換ファイルを正常に圧縮解除できます (BZ#1127330)。

glibc times() 関数がバッファーの NULL をサポート

以前のリリースでは、glibctimes() 関数は、ユーザーがバッファーに NULL 値を設定することを許可しませんでした。そのため、この関数を使用するアプリケーションが予期せずに終了する可能性がありました。今回の更新でパッチが適用された結果、バッファーに NULL 値を設定でき、カーネルシステムの呼び出しで予想どおりの結果が返されるようになりました (BZ#1308728)。

iconv が不要なシフトシーケンスを追加しない

以前のリリースでは、iconv で使用される IBM930、IBM933、IBM935、IBM937、および IBM939 文字セットの文字変換ルーチンのバグにより、不要なシフトシーケンスがツールの出力に組み込まれる可能性がありました。不適合の出力が生成されて出力データを読み取れなくなる可能性がありました。しかし、文字変換ルーチンは修正さ、不要なシフトシーケンスが返されなくなりました (BZ#1293916)。

コア C ライブラリー (glibc) が機能強化され、malloc() の拡張性が増大

malloc() 関数の実装にあった不具合により、複数スレッド間でのメモリー割り当て要求が不必要にシリアル化される可能性がありました。今回の更新によりバグが修正され、スレッドを頻繁に作成し、破棄するアプリケーションの割り当て要求の同時スループットが向上しました (BZ#1276753)。

動的リンカーが監査モードによる代替 DSO の提供時に失敗しない

以前のリリースでは、監査モジュールが代替 DSO (動的共有オブジェクト) パスを提供すると、ld.so 動的リンカーはセグメテーション違反で予期せずに終了しました。今回の更新によりバグが修正され、動的リンカーは後の参照用に元の DSO パスを記録し、このシナリオでクラッシュしなくなりました (BZ#1211100)。

selinux-policyhypervkvpd による全ファイルシステムタイプでの getattr を許可

以前のリリースでは、IP インジェクションが Data Exchange オプションが有効な状態で仮想マシンに実行された後に restorecon コマンドを実行すると SELinux 拒否が生じました。selinux-policy パッケージが更新されてから、IP インジェクションは SELinux の permissive および enforcing モードの両方で正常に終了するようになりました (BZ#1349356)。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。