Выпуск системной библиотеки Glibc 2.35
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library (glibc) 2.35, которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2017. В состав нового выпуска включены исправления от 66 разработчиков.
Из реализованных в Glibc 2.35 улучшений можно отметить:
- Добавлена поддержка локали "C.UTF-8", включающей правила сортировки для всех Unicode-кодов, но для экономии места ограниченной использованием ASCII-диапазонов в функциях fnmatch, regexec и regcomp. Локаль занимает около 400 КБ, из которых 346 КБ составляют данные LC_CTYPE для Unicode, и требует отдельной установки (не встроена в Glibc).
- Данные кодировок, информация о типах символов и таблицы транслитерации обновлены для поддержки спецификации Unicode 14.0.0.
- В <math.h> и <tgmath.h> реализованы функции и макросы, округляющие результат до более узкого типа: fsqrt, fsqrtl, dsqrtl, ffma, ffmal, dfmal, fMsqrtfN, fMsqrtfNx, fMxsqrtfN, fMxsqrtfNx, fMfmafN, fMfmafNx, fMxfmafN и
fMxfmafNx. Функции описаны в спецификациях TS 18661-1:2014, TS 18661-3:2015 и добавлены в черновик будущего Си-стандарта ISO C2X.
- В <math.h> и <tgmath.h> реализованы функции и макросы для нахождения минимума и максимума чисел с плавающей запятой с типами float,
long double, _FloatN и _FloatNx, описанные в спецификации IEEE 754-2019 и добавленные в черновик будущего Си-стандарта ISO C2X: fmaximum,
fmaximum_num, fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_num,
fminimum_mag, fminimum_mag_num.
- В <math.h> добавлены константы для чисел с плавающей запятой одинарной точности: M_Ef, M_LOG2Ef, M_LOG10Ef, M_LN2f, M_LN10f, M_PIf,
M_PI_2f, M_PI_4f, M_1_PIf, M_2_PIf, M_2_SQRTPIf, M_SQRT2f и
M_SQRT1_2f.
- Для функций exp10 в заголовочный файл <tgmath.h> добавлены соответствующие макроcы, не привязанные к конкретным типам.
- В <stdio.h> добавлен макрос _PRINTF_NAN_LEN_MAX, предложенный в черновике стандарта ISO C2X.
- В функции семейства printf добавлены спецификаторы формата "%b" и "%B" для вывода целых чисел в двоичном представлении.
- В системе динамического связывания реализован новый алгоритм сортировки DSO, использующий метод поиска в глубину (DFS) для решения проблем с производительностью при обработке зацикленных зависимостей. Для выбора алгоритма сортировки DSO предложен параметр glibc.rtld.dynamic_sort, которому можно присвоить значение "1" для отката на старый алгоритм.
- В ABI добавлена поддержка новой функции '__memcmpeq', применяемой компиляторами для оптимизации использования 'memcmp', в случае если возвращаемое данной функцией значение используется только для проверки статуса завершения операции.
- Добавлена поддержка автоматической регистрации потоков, используя системный вызов rseq (restartable sequences), предоставляемый начиная с ядра Linux 4.18. Системный вызов rseq позволяет организовать неразрывное выполнение группы инструкций, не прерываемой и подтверждающей результат последней инструкцией в группе. По сути предоставляется средство для очень быстрого атомарного выполнения операций, которые в случае прерывания другим потоком очищаются и предпринимается повторная попытка выполнения.
- Добавлена символическая ссылка /usr/bin/ld.so.
- Обеспечена сборка по умолчанию всех исполняемых файлов встроенных программ и тестового набора в режиме PIE (position independent executable).
Для отключения данного поведения предусмотрена опция "--disable-default-pie".
- Для Linux добавлена настройка glibc.malloc.hugetlb, позволяющая переключить реализацию malloc на использование системного вызова madvise с флагом MADV_HUGEPAGE для mmap и sbrk или напрямую использовать большие страницы памяти через указание флага MAP_HUGETLB в вызовах mmap. В первом случае можно добиться увеличения производительности, если Transparent Huge Pages используются в режиме madvise, а во втором предоставляется возможность использования зарезервированных системой больших страниц (Huge Pages).
- Добавлена функция _dl_find_object, которую можно использовать для добавления информации о раскрутке стека вызовов (unwind).
- Добавлена поддержка архитектуры OpenRISC (or1k-linux-gnu) в режиме программной обработки операций с плавающей запятой (soft-float). Для работы порта требуется binutils 2.35, GCC 11, и ядро Linux 5.4.
- Добавлен сборочный флаг "--with-rtld-early-cflags", при помощи которого можно указать дополнительные флаги компиляции, используемые при сборке начального кода для динамического связывания.
- Для платформы Linux добавлена функция epoll_pwait2, отличающаяся от
epoll_wait указанием таймаута с наносекундной точностью.
- Добавлена функция posix_spawn_file_actions_addtcsetpgrp_np, исключающая состояния гонки при установке управляющего терминала для нового процесса.
- Для приложений, компилируемых с Glibc и GCC 12+, реализован режим защиты "_FORTIFY_SOURCE=3", выявляющий возможные переполнения буфера при выполнении строковых функций, определённых в заголовочном файле string.h. Отличие от режима "_FORTIFY_SOURCE=2" сводится к дополнительным проверкам, которые потенциально могут приводить к снижению производительности.
- Прекращена поддержка расширений Intel MPX (Memory Protection Extensions), используемых для проверки указателей на соблюдение границ областей памяти (указанная технология не получила распространения и уже удалена из GCC и LLVM).
- Объявлен устаревшим и будет удалён в следующем выпуске механизм prelink и связанные с ним переменные окружения LD_TRACE_PRELINKING и LD_USE_LOAD_BIAS.
Устранены уязвимости:
- CVE-2022-23218, CVE-2022-23219 - переполнение буфера в функциях svcunix_create и clnt_create, вызванное копированием в стек содержимого параметра с именем файла без проверки размера копируемых данных. Для приложений, собранных без защиты стека и использующих протокол "unix", уязвимость может привести к организации выполнения кода злоумышленника при обработке очень длинных имён файлов.
- CVE-2021-3998 - уязвимость в функции realpath(), вызванная возвращением при определённых условиях некорректного значения, содержащего неочищенные остаточные данные из стека. Для SUID-root программы fusermount уязвимость можно использовать для получения конфиденциальных сведений из памяти процесса, например, для получения сведений об указателях.
- CVE-2021-3999 - однобайтовое переполнение буфера в функции getcwd(). Проблема вызвана ошибкой, присутствующей с 1995 года. Для вызова переполнения достаточно в отдельном пространстве имён точек монтирования выполнить вызов chdir() для каталога "/".
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://sourceware.org/piperma...)
- OpenNews: Выпуск системной библиотеки Glibc 2.34
- OpenNews: Уязвимость в Glibc, позволяющая вызвать крах чужого процесса
- OpenNews: Уязвимости в OpenSSL, Glibc, util-linux, драйверах i915 и vmwgfx
- OpenNews: Проект Glibc отменил обязательную передачу прав на код Фонду СПО
- OpenNews: Выпуск стандартной Си-библиотеки PicoLibc 1.4.7
Похожие новости:
- Уязвимости в OpenSSL, Glibc, util-linux, драйверах i915 и vmwgfx
- Уязвимось в Glibc, позволяющая вызвать крах чужого процесса
- Выпуск системной библиотеки Glibc 2.34
- Проект Glibc отменил обязательную передачу прав на код Фонду СПО
- Разработчики Glibc рассматривают вопрос прекращения передачи прав на код Фонду СПО
- Выпуск системной библиотеки Glibc 2.33
- [Анализ и проектирование систем, Ненормальное программирование, Программирование, Системное программирование] История двух стандартных библиотек Си (перевод)
- Выпуск системной библиотеки Glibc 2.32
- В состав Glibc включено исправление уязвимости в memcpy, подготовленное разработчиками ОС Аврора
- [Программирование, Разработка под Linux] Как Linux'овский sort сортирует строки
Теги для поиска: #_glibc
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Дек 22:51
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library (glibc) 2.35, которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2017. В состав нового выпуска включены исправления от 66 разработчиков. Из реализованных в Glibc 2.35 улучшений можно отметить:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Дек 22:51
Часовой пояс: UTC + 5