Релиз системной библиотеки Glibc 2.24

После шести месяцев разработки представлен/a> релиз системной библиотеки GNU C Library (glibc) 2.24, которая полностью следует требованиям стандартов ISO C11 и POSIX.1–2008. В подготовке нового выпуска использованы патчи от 57 разработчиков.

Из добавленных в Glibc 2.24 улучшений можно отметить:

  • В математическую библиотеку libm добавлены новые функции nextupl, nextup, nextupf, nextdownl, nextdown и nextdownf, которые определены в спецификациях TS 18661 и IEEE754–2008. В Glibc данные функции отнесены к расширениям GNU. Функции nextup* возвращают следующее представление числа в направлении положительной бесконечности, а функции nextdown — отрицательной бесконечности;
  • В NSS добавлена поддержка операции слияния (MERGE), упрощающей конфигурацию учётных записей пользователей в крупных распределённых системах. Например, при помощи операции MERGE в локальные файлы, такие как /etc/groups, можно включить содержимое внешних хранилищ параметров пользователей, подобных LDAP. Пример настройки MERGE в /etc/nsswitch.conf: «group: files [SUCCESS=merge] nis»;
  • Подняты требования к минимальной версии ядра Linux. Для работы Glibc на архитектурах, отличных от x86 и x86_64 теперь требуется ядро Linux 3.2 или более новый выпуск. Для систем x86 и x86_64 возможна работа с ядром 2.6.32. Для сборки на любых архитектурах требуются заголовочные файлы от ядра 3.2 или новее;
  • Удалённые или устаревшие возможности:
    • Объявлены устаревшими функции readdir_r и readdir64_r, вместо которых рекомендуется использовать readdir и readdir64;
    • Удалён тип «union wait», который был объявлен устаревшим ещё в начале 1990-х годов и никогда не входил в спецификации POSIX. Вместо «union wait» в приложениях следует использовать тип «int»;
    • Из API удалена устаревшая переменная __malloc_initialize_hook;
    • В утилите localedef прекращена поддержка давно не используемой опции »--old-style», которая уже более 16 лет является ничего не выполняющей заглушкой;
    • Прекращена поддержка локали pap_AN, на смену которой в прошлых выпусках пришли локали pap_AW и pap_CW;
  • Устранённые уязвимости:
    • CVE-2016–3075 — переполнение стека при передаче функции getnetbyname слишком длинного параметра;
    • CVE-2016–3706 — потенциальное переполнение стека в getaddrinfo из-за неполного устранения уязвимости CVE-2013–4458. В новом вызове getaddrinfo переведён на использование кучи вместо стека;
    • CVE-2016–1234 — переполнение стека в функции glob, при её вызове с флагом GLOB_ALTDIRFUNC и передаче слишком длинного имени файла;
    • CVE-2016–4429 — DoS-атака на UDP-клиент Sun RPC путём израсходования всей доступной памяти стека при флуде специально оформленными пактами ICMP и UDP;
    • CVE-2016–5417 — DoS-атака в форме израсходования всей доступной процессу памяти, инициируемая через отправку специально оформленных запросов резолвинга по IPv6.

© OpenNet