После шести месяцев разработки представлен/a> релиз системной библиотеки GNU C Library (http://ftp.gnu.org/gnu/glibc/) (glibc) 2.24 (http://sourceware.org/glibc/wiki/Release/2.24), которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2008. В подготовке нового выпуска использованы патчи от 57 разработчиков.
Из добавленных в Glibc 2.24 улучшений (http://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;h...) можно отметить:
- В математическую библиотеку libm добавлены новые функции nextupl, nextup, nextupf, nextdownl, nextdown и nextdownf, которые определены в спецификациях TS 18661 и IEEE754-2008 (https://ru.wikipedia.org/wiki/IEEE_754-2008). В Glibc данные функции отнесены к расширениям GNU. Функции nextup* возвращают следующее представление числа в направлении положительной бесконечности (https://ru.wikipedia.org/wiki/%D0%A0%D0%...), а функции 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 (https://security-tracker.debian.org/tracker/CVE-2016-3075) - переполнение стека при передаче функции getnetbyname слишком длинного параметра;
- CVE-2016-3706 (https://security-tracker.debian.org/tracker/CVE-2016-3706) - потенциальное переполнение стека в getaddrinfo из-за неполного устранения уязвимости CVE-2013-4458. В новом вызове getaddrinfo переведён на использование кучи вместо стека;
- CVE-2016-1234 (https://security-tracker.debian.org/tracker/CVE-2016-1234) - переполнение стека в функции glob, при её вызове с флагом GLOB_ALTDIRFUNC и передаче слишком длинного имени файла;
- CVE-2016-4429 (https://security-tracker.debian.org/tracker/CVE-2016-4429) - DoS-атака на UDP-клиент Sun RPC путём израсходования всей доступной памяти стека при флуде специально оформленными пактами ICMP и UDP;
- CVE-2016-5417 (https://security-tracker.debian.org/tracker/CVE-2016-5417) - DoS-атака в форме израсходования всей доступной процессу памяти, инициируемая через отправку специально оформленных запросов резолвинга по IPv6.
URL: https://sourceware.org/ml/libc-alpha/2016-08/msg00212.html
Новость: http://www.opennet.dev/opennews/art.shtml?num=44919