Релиз Glibc 2.22

Состоялся релиз Glibc 2.22.

Основные изменения:

  • Таблица символов и ctype обновлена до спецификации Unicode 7.0.0. За новый скрипт генератора скажем спасибо Pravin Satpute и Mike FABIAN из Red Hat! Это изменение должно быть заметно пользователю, например исправление бага 17998.
  • Добавлена библиотека libmvec для работы с векторами. В ней есть следующие векторные x86_64-операции: cos, cosf, sin, sinf, sincos, sincosf, log, logf, exp, expf, pow, powf. Библиотека зависит от GCC ≥4.9, параметров сборки -fopenmp и -ffast-math, и оптимизации ≥-O1. Shared-библиотека libmvec.so линкуется с параметром -lm (нет необходимости указывать -lmvec).
  • Новая реализация fmemopen для совместимости с POSIX. Это нововведение исправляет множество многолетних багов: 6544, 11216, 12836, 13151, 13152 и 14292. Старая реализация не удалена для совместимости со старыми бинарными файлами.
  • Header-файл объявлен устаревшим, и будет удалён в следующем релизе. При использовании теперь выдаётся Warning. Разработчикам программ необходимо обновить код приложений.

Малопопулярные архитектуры CPU

  • Для архитектуры s390 добавлен опрос информации о кэше с помощью функции sysconf(). Например с аргументом _SC_LEVEL1_ICACHE_SIZE.
  • Оптимизации TLS для архитектур powerpc и powerpc64. Это оптимизации дескрипторов LD и GD, ранее существовавшие для x86 и x86_64. Для задействования необходимы binutils ≥2.24
  • Для архитектуры SPARC 32-bit исправлен ABI sigaction, который был непреднамеренно сломан в Glibc 2.20. Теперь ABI работает как в Glibc 2.19. Бинарники, собранные с Glibc 2.20–2.21, необходимо пересобрать.
  • Native Client портирован на ARMv7-A (--host=arm-nacl). Скажем спасибо Roland McGrath (Google)!

Исправления ошибок

  • Исправлено переполнение буфера через gethostbyname_r, а также связанных с ней функций, осуществляющих запросы DNS. (CVE-2015–1781)
  • Исправлена ошибка, при которой NSS сообщает внутреннее состояние getXXent и getXXbyYY в одну и ту же базу данных, что может привести к состоянию denial-of-service в некоторых приложениях (CVE-2014–8121)
  • Улучшения «защиты от дурака» в парсер файлов timezone (на случай использования файлов, созданных кустарно). А именно исправлено возможное переполнение буфера при использовании переменных tzh_ttisstdcnt и tzh_ttisgmtcnt, а также переполнение стека при использовании огромного Data-файла Zone.
  • Исправлено множество других ошибок.

 glibc, libc

©  Linux.org.ru