Выпуск системной библиотеки Glibc 2.34

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
02-Авг-2021 13:30

После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library (glibc) 2.34, которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2017. В состав нового выпуска включены исправления от 66 разработчиков.
Из реализованных в Glibc 2.34 улучшений можно отметить:
  • В основной состав libc интегрированы библиотеки libpthread, libdl, libutil и libanl, использование функциональности которых в приложениях отныне не требует связывания при помощи флагов -lpthread, -ldl, -lutil и -lanl. Проведена подготовка к интеграции libresolv в libc. Интеграция позволит добиться более цельного процесса обновления glibc и упростит реализацию runtime. Для обеспечения обратной совместимости с приложениями, собранными со старыми версиями glibc, предоставлены библиотеки-заглушки. Из-за расширения числа предоставляемых в glibc структур и функций не исключено появление проблем в приложениях, в которых наблюдается пересечение имён c ранее не использованными библиотеками libpthread, libdl, libutil, libresolv и libanl.
  • Предоставлена возможность использования 64-разрядного типа time_t в конфигурациях, в которых традиционно использовался 32-разрядный тип time_t. В подобных конфигурациях, например, на системах x86, по умолчанию пока остаётся 32-разрядный time_t, но данное поведение теперь можно изменить при помощи макроса "_TIME_BITS". Возможность доступна только на системах с ядром Linux как минимум версии 5.1.
  • Добавлена функций _Fork, замена функции fork, соответствующая требованиям "async-signal-safe", т.е. допускающая безопасный вызов из обработчиков сигналов. В процессе выполнения _Fork, формируется минимальное окружение, достаточное для вызова функций в обработчиках сигналов, таких как raise и execve, без задействования возможностей, которые могут привести к изменению блокировок или внутреннего состояния. Вызов _Fork будет определён в будущей версии стандарта POSIX, но пока включён в число расширений GNU.
  • Для платформы Linux реализована функция execveat, позволяющая запустить исполняемый файл из открытого файлового дескриптора. Новая функция также используется в реализации вызова fexecve не требующего при запуске наличия примонтированной псевдо-ФС /proc.
  • Добавлена функция timespec_getres, определённая в черновике стандарта ISO C2X и дополняющая функцию timespec_get возможностями, похожими на POSIX-функцию clock_getres.
  • Добавлена функция close_range(), позволяющая процессу разом закрыть целый диапазон открытых файловых дескрипторов. Функция доступна на системах с ядром Linux, как минимум версии 5.9.
  • Добавлены функции closefrom и posix_spawn_file_actions_addclosefrom_np, позволяющие закрыть разом все файловые дескрипторы, номер которых больше или равен указанному значению.
  • В режимах "_DYNAMIC_STACK_SIZE_SOURCE" и "_GNU_SOURCE" значения
    PTHREAD_STACK_MIN, MINSIGSTKSZ и SIGSTKSZ теперь не являются константами, что позволяет обеспечить поддержку наборов регистров динамического размера, например, предоставляемых в расширении ARM SVE.
  • В компоновщике реализована опция "--list-diagnostics" для вывода информации, связанной с операциями определения IFUNC (indirect function) и выбора подкаталога glibc-hwcaps.
  • Реализован макрос __STDC_WANT_IEC_60559_EXT__, предназначенный для проверки наличия функций, определённых в приложении "F" спецификации ISO C2X.
  • Для систем powerpc64* реализована опция "--disable-scv", позволяющая собрать glibc без поддержки инструкции scv.
  • В файле gconv-modules оставлен только минимальный набор основных модулей gconv, а остальные перемещены в дополнительный файл gconv-modules-extra.conf, размещённый в каталоге gconv-modules.d.
  • Для платформы Linux реализован параметр glibc.pthread.stack_cache_size, который может использоваться для настройки размера кэша стека pthread.
  • Объявлена устаревшей функция inet_neta из заголовочного файла <arpa/inet.h>, а также различные редко применяемые функции из <resolv.h> (dn_count_labels, fp_nquery, fp_query,
    fp_resstat, hostalias, loc_aton, loc_ntoa, p_cdname, p_cdnname,
    p_class, p_fqname, p_fqnname, p_option, p_query, p_rcode, p_time,
    p_type, putlong, putshort, res_hostalias, res_isourserver,
    res_nameinquery, res_queriesmatch, res_randomid, sym_ntop, sym_ntos,
    sym_ston) и
    <arpa/nameser.h> (ns_datetosecs,
    ns_format_ttl, ns_makecanon, ns_parse_ttl, ns_samedomain, ns_samename,
    ns_sprintrr, ns_sprintrrf, ns_subdomain). Вместо данных функций рекомендовано использовать отдельные библиотеки для работы с DNS.
  • Объявлены устаревшими функции pthread_mutex_consistent_np, thread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np и pthread_yield
    вместо которых следует использовать pthread_mutex_consistent, thread_mutexattr_getrobust, hread_mutexattr_setrobust и sched_yield.
  • Прекращено использование символических ссылок для привязки устанавливаемых разделяемых объектов к версии Glibc. Подобные объекты теперь устанавливаются как есть (например, libc.so.6 теперь является файлом, а не ссылкой на libc-2.34.so).
  • По умолчанию отключены отладочные возможности в malloc, такие как MALLOC_CHECK_ (glibc.malloc.check), mtrace() и mcheck(), которые вынесены в отдельную библиотеку libc_malloc_debug.so, в которую также перемещены устаревшие функции malloc_get_state и malloc_set_state.
  • В Linux для работы функций, подобных shm_open и sem_open, теперь требуется наличие устройства /dev/shm.
  • Устранены уязвимости:
    • CVE-2021-27645:
      крах процесса nscd (nameserver caching daemon) из-за двойного вызова функции free при обработке специально оформленных netgroup-запросов.
    • CVE-2021-33574: обращение к уже освобождённой области памяти (use-after-free) в функции
      mq_notify при использовании типа уведомлений SIGEV_THREAD с атрибутом потока, для которого выставлена альтернативная маска привязки к CPU. Проблема может привести к краху, но не исключаются и другие варианты атак.
    • CVE-2021-35942: переполнение размера параметра в функции wordexp может привести к краху приложения.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_glibc
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 27-Апр 20:13
Часовой пояс: UTC + 5