7.9. コンパイラーおよび開発ツール
- ANSI_X3.110-1983 コーデックが
glibc-gconv-extraに移動されました 今回のアップデート以前は、ANSI_X3.110-1983 文字セットコーデックが誤ってメインの
glibcパッケージに同梱されていました。その結果、最小限のインストールとコンテナーイメージのサイズがわずかに大きくなっていました。また、glibc-gconv-extraパッケージがインストールされていない場合でも、アプリケーションが ANSI_X3.110-1983 変換コードの脆弱性にさらされる可能性がありました。今回のリリースにより、ANSI_X3.110-1983 コーデックが、メインの
glibcパッケージからglibc-gconv-extraパッケージに移動されました。その結果、最小限のインストールに含まれる変換コードの量が削減されました。また、ANSI_X3.110-1983 のサポートが必要なお客様は、glibc-gconv-extraパッケージをインストールすることで明示的にサポートを入手できます。
glibc-locale-sourceにおける圧縮ロケール文字マップのgzip依存関係の欠落を修正しました今回のアップデート以前は、
glibc-locale-sourceパッケージは文字マップをgzip圧縮形式で提供していましたが、gzipパッケージへの依存関係は宣言していませんでした。その結果、システムにgzipがインストールされていない場合、圧縮アーカイブを展開できないため、glibc-locale-sourceが提供する文字マップでlocaledefを使用すると失敗する可能性がありました。今回のリリースにより、
glibc-locale-sourceは、文字マップデータとともに必要な圧縮ユーティリティーがインストールされるように、gzipパッケージに依存するようになりました。その結果、以前はgzipが欠落していたシステムにおいても、glibc-locale-sourceが提供する文字マップを使用したlocaledefの使用が期待どおりに動作するようになりました。Jira:RHEL-111005[1]
- NSS グループのマージが ERANGE エラーで失敗した場合、
glibcがグループメンバーシップの完全な結果を返すようになりました 今回のアップデート以前は、Name Service Switch (NSS) が 2 つ以上のソースからグループをマージするシステムにおいて、内部バッファーが小さすぎるために 2 つのグループのマージが失敗した場合、
glibcはより大きなバッファーを使用して再試行する代わりに、そのマージ結果をスキップしていました。その結果、そのようなシステムでは、
getent groupなどのコマンドを実行しても、不完全なグループリストや空のグループリストが返されることがありました。今回のアップデートにより、
glibcは内部バッファーの不足が原因で発生したマージの失敗をスキップしなくなりました。代わりに本来の仕様どおりに、より大きなバッファーを使用してマージを再試行するようになりました。その結果、複数のグループデータベースソースを持つシステムにおけるグループメンバーシップの検索では、完全かつ正確なグループメンバーシップデータが返されるようになりました。
- Boost.JSON の整数解析がビッグエンディアンシステムでエンディアンを考慮するようになりました
今回のアップデート以前は、Boost.JSON における整数のデシリアライゼーションが、ビッグエンディアンシステムでエンディアンを考慮しておらず、整数フィールドが誤ったバイト順で解釈されていました。その結果、Boost.JSON を使用してビッグエンディアンアーキテクチャー上で整数値をデシリアライズするアプリケーションが、誤った整数値を取得し、予期しない動作をする可能性がありました。
今回のリリースでは、
boostパッケージにより Boost.JSON が更新され、ビッグエンディアンシステムで整数のデシリアライゼーションをエンディアンを考慮した方法で処理できるようになりました。その結果、ライブラリーがビッグエンディアンシステムで正しい整数値を返すようになり、アプリケーションの動作が予測可能なものになりました。Jira:RHEL-116553[1]
glibcNSS データベース検索の安定性が向上しました今回のアップデート以前は、
glibcパッケージの__nss_database_get関数においてチェック処理が不足していたため、Name Service Switch (NSS) データベースの検索中に null ポインター逆参照やアサーションの失敗が発生する可能性がありました。その結果、NSS に依存するアプリケーションが予期せず停止したり、特定の検索条件下で C ライブラリーがクラッシュしたりするおそれがありました。今回のリリースでは、無効な内部状態や予期しない内部状態を安全に処理するために、
glibcの NSS データベース検索パスにバリデーションチェックが追加されました。その結果、NSS データベースの検索がより堅牢になり、システムの安定性が向上しました。
- 検索パスが
.に設定されている場合に、DNS クエリーが重複する問題を修正しました 今回のアップデート以前は、
/etc/resolv.confファイルの Domain Name System (DNS) 検索パスに単一の.エントリーが含まれている場合、glibcDNS スタブリゾルバーは、元のドメイン名と末尾にドットが付いた同じドメイン名の両方をクエリーしていました。その結果、存在しないドメインに対する DNS クエリーが重複し、DNS サーバーへの負荷が増加しました。
今回のアップデート後、
glibcDNS スタブリゾルバーは、検索パスに単一の.エントリーのみが含まれている場合、ドメイン名の末尾にドットを追加しなくなりました。これにより、この設定では DNS クエリーの重複がなくなり、不要な DNS トラフィックとサーバー負荷が軽減されました。