Состоялся релиз 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-файл <regexp.h> объявлен устаревшим, и будет удалён в следующем релизе. При использовании теперь выдаётся 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.
- Исправлено множество других ошибок.
>>> Подробности