第5章 コンパイラーおよびツール
tail --follow が Veritas Clustered ファイルシステム(VXFS)のファイルで適切に機能するようになりました。
Veritas Clustered File System (VXFS)はリモートファイルシステムであり、リモートファイルシステムの場合、tail は
--follow
モードで inotify
機能を使用することはできません。Veritas Clustered ファイルシステムが、inotify
の代わりにポーリングモードが使用されるリモートファイルシステムの一覧に追加されました。tail --follow は、VXFS のファイルで使用した場合でも適切に機能するようになりました。
dd コマンドが転送の進捗を表示できるようになりました。
ファイルをバイト単位でコピーするために使用される dd コマンドは、転送の進捗を表示する
status=progress
オプションを提供するようになりました。これは、ユーザーが残った時間を見積もり、転送の潜在的な問題を検出できるため、大きなファイルの転送に特に便利です。
libcurl の待機時間が改善
libcurl
ライブラリーは、短い操作であっても、アクティブなファイル記述子のないアクションに不必要に長いブロッキング遅延を使用していました。つまり、/etc/hosts
を使用したホスト名の解決などの一部のアクションは、完了までに人為的に長い時間がかかることを意味します。libcurl
のブロックコードが変更され、最初の遅延が短くなり、イベントが発生するまで徐々に増加するようになりました。高速な libcurl
操作がより迅速に完了するようになりました。
libcurl ライブラリーが非ブロッキング SSL ハンドシェイクを実装するようになりました。
以前は、
libcurl
ライブラリーはノンブロッキング SSL ハンドシェイクを実装しなかったため、libcurl
マルチ API に基づくアプリケーションのパフォーマンスに悪影響を及ぼしていました。この問題を解決するには、ノンブロッキング SSL ハンドシェイクが libcurl に実装され、 libcurl
マルチ API が基礎となるネットワークソケットとの間でデータを読み書きできないたびに、制御をアプリケーションに即座に返すようになりました。
シンボルテーブルへのアクセス時に IBM Power Systems の GDB が失敗しなくなりました。
以前は、64 ビットの IBM Power Systems の GDB は、デバッグするバイナリーのシンボルテーブルを保持する重要な変数を誤って割り当てていたため、GDB がそのシンボルテーブルにアクセスしようとするとセグメンテーション違反が発生していました。この問題を解決するには、この特定の変数が永続化され、GDB は無効なメモリー領域を読み取らず、後でデバッグセッション中に必要な情報にアクセスできるようになりました。
nscd が設定データを自動的に再読み込みするように更新
Name Server Caching Daemon (nscd)の今回の更新で、nscd 設定ファイルの inotify ベースの監視および stat ベースのバックアップ監視のシステムが追加され、nscd が設定への変更を正しく検出し、データを再読み込みするようになりました。これにより、nscd が古いデータを返さないようにします。
dlopen ライブラリー関数が再帰的呼び出しでクラッシュしなくなる
以前は、ライブラリー関数
dlopen
の不具合により、この関数への再帰呼び出しがクラッシュしたり、ライブラリーアサーションで中断したりする可能性がありました。ユーザー提供の malloc
実装が dlopen
を呼び出す場合は、再帰呼び出しが可能です。
この実装は再付与され、再帰呼び出しはアサーションでクラッシュしたり、中断したりしなくなりました。
operf ツールが静的な Huge Page 識別子を認識するようになりました。
以前は、静的 Huge Page を有効にして Java の just-in-time (JIT)のコードをプロファイリングすると、OProfile の operf コマンドは、適切な Java メソッドではなく、匿名メモリー(anon_hugepage)に多数のイベントサンプルが記録されていました。今回の更新により、operf は静的な Huge Page 識別子を認識し、静的に割り当てられた Huge Page を使用する場合にサンプルを Java メソッドに正しくマッピングするようになりました。
rsync -X が正常に動作するようになりました。
以前は、
rsync
ツールは、以前ではなく、セキュリティー属性を設定した後にファイルの所有権を変更していました。その結果、ターゲットのセキュリティー属性がなく、特定の状況で rsync -X コマンドの実行が正しく機能しませんでした。今回の更新で、操作の順序が切り替わり、rsync
がセキュリティー属性を設定する前に所有権を変更するようになりました。その結果、上記の状況ではセキュリティー属性が想定どおりに存在します。
Subversion 実行可能ファイルが完全な RELRO データでビルドされるようになりました。
subversion パッケージで提供される実行可能ファイルは、完全に読み取り専用再配置データ(RELRO)でビルドされるようになりました。これにより、一部のタイプのメモリー破損攻撃に対する保護が可能になります。その結果、将来の脆弱性が発見された場合、Subversion を正常に悪用することが困難になります。
TCL のスレッド拡張が正しく機能するようになりました。
以前は、Tools Command Language (TCL)のスレッドサポートは最適に実装されませんでした。fork ()呼び出しが TCL インタープリターで有効になっているスレッド拡張とともに使用された場合、プロセスが応答しなくなる可能性がありました。このため、TCL インタープリターと TK アプリケーションは、以前はスレッド拡張機能が無効になっていました。そのため、スレッド化された TCL または TK に依存するサードパーティーアプリケーションが正しく機能しませんでした。このバグを修正するためのパッチが実装され、TCL と TK のスレッド拡張機能がデフォルトで有効になりました。
AES 暗号化スイートは、TLS に対して明示的に有効または無効にできます。
更新された curl パッケージでは、TLS プロトコルに使用する新しい Advanced Encryption Standard (AES)暗号スイートを明示的に有効または無効にできます。
OpenJDK 7 が ECC に対応
今回の更新で、OpenJDK 7 は Elliptic Curve Cryptography (ECC)と TLS 接続に関連する暗号をサポートするようになりました。ほとんどの場合、ECC は、安全なネットワーク接続を行うのに古い暗号化ソリューションよりも推奨されます。
ABRT は、コアダンプ全体ではなく、core_backtrace ファイルを保存できるようになりました。
ABRT は、ディスクにコアダンプファイルを書き込みせずにバックトレースを生成するように設定できるようになりました。これにより、大量のメモリーブロックが割り当てられているプロセスを使用する際に時間を節約できます。この機能は、
/etc/abrt/plugins/CCpp.conf
ファイルで CreateCoreBacktrace オプションを yes に設定し、SaveFullCore オプションを no に設定します。
Python 標準ライブラリーに追加されたセキュリティー機能
466 Python Enhancent Proposal (http://legacy.python.org/dev/peps/pep-0466/)で説明されている多くのセキュリティー機能強化が、Python 標準ライブラリーにバックポートされています。セキュリティーの強化には、Server Name Indication (SNI)のサポートや新しい TLSv1.x プロトコルのサポート、hash
lib モジュールの新しいハッシュアルゴリズムなど、ssl
モジュール
の新機能などが含まれます。
Python 標準ライブラリーの SSL/TLS 証明書の検証用の新しいグローバル設定
Python 標準ライブラリーの HTTP クライアント(urllib、httplib、xmlrpclib など)で SSL/TLS 証明書の検証をグローバルに有効または無効にできる新しいオプションが追加されました。オプションは、493 Python Enhancement Proposal (https://www.python.org/dev/peps/pep-0493/)で説明されています。デフォルト値は、証明書を検証しません。詳細は、https://access.redhat.com/articles/2039753 を参照してください。