XNUMXか月の開発期間を経て
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