Glibc 2.30 システム ライブラリのリリース

XNUMXか月の開発期間を経て 公開済み システムライブラリのリリース GNU Cライブラリ (glibc) 2.30、ISO C11 および POSIX.1-2008 の要件に完全に準拠しています。 新しいリリースには、48 人の開発者による修正が含まれています。

Glibc 2.30で実装 改善 あなたは注意することができます:

  • ダイナミック リンカーは、共有オブジェクトをプリロードするための「--preload」オプションをサポートします (LD_PRELOAD 環境変数と同様)。
  • twalk_r 関数を追加しました。これは既存の twalk 関数に似ていますが、指定されたコールバック関数に追加の引数を渡すことができます。
  • Linux の場合、新しい getdents64、gettid、および tgkill 関数が追加されました。
  • メモリ管理関数 malloc、calloc、realloc、reallocarray、valloc、pvalloc、memalign、および posix_memalign は、オブジェクトの合計サイズが PTRDIFF_MAX 値を超えると、エラー コードで終了します。 この変更により、ポインター操作の結果 ptrdiff_t 型のオーバーフローが発生した場合の未定義の動作が回避されます。
  • POSIX 提案関数 pthread_cond_lockwait、pthread_mutex_locklock、を追加しました。
    pthread_rwlock_lockrdlock、pthread_rwlock_lockwrlock、および sem_lockwait は、「timed」同等のものと似ていますが、さらにタイマーを選択するために Clockid_t パラメータを受け取ります。

  • Unicode 12.1.0 仕様をサポートするために、エンコード データ、文字タイプ情報、および音訳テーブルが更新されました。
  • 新しいアプリケーションの librt ライブラリでは、 Clock_gettime 、 Clock_getres 、 Clock_settime 、 Clock_getcpu Clockid 、および Clock_nanosleep 関数が提供されなくなり、代わりに libc 定義が自動的に使用されます。
  • /etc/resolv.conf では、「inet6」オプションが非推奨になりました。 廃止された RES_USE_INET6、RES_INSECURE1、RES_INSECURE2 フラグを resolv.h から削除しました。
  • 「--enable-bind-now」オプションを指定すると、インストールされたプログラムは BIND_NOW フラグを使用してバインドされるようになりました。
  • Linux 固有の sys/sysctl.h ヘッダー ファイルと sysctl 関数は非推奨になったため、アプリケーションは代わりに /proc 擬似 FS を使用する必要があります。
  • Glibc のビルドには GCC 6.2 以降が必要になりました (アプリケーションのビルドには任意のコンパイラーを使用できます)。
  • 脆弱性が修正されました CVE-2019-7309 memcmp関数の実装において 時代遅れ x32 サブアーキテクチャ (x86 IA-32 と混同しないでください)。その結果、関数は一致しない文字列に対して誤って値 0 を返す可能性がありました。
  • 脆弱性が修正されました CVE-2019-9169これにより、特定の正規表現を処理するときに境界外のバッファからデータが読み取られる可能性があります。

出所: オープンネット.ru

コメントを追加します