Выпуск системной библиотеки Glibc 2.21
Представлен релиз системной библиотеки GNU C Library (glibc) 2.21, которая полностью следует требованиям стандартов ISO C11 и POSIX.1–2008. В подготовке нового выпуска использованы патчи от 61 разработчика. Из добавленных в Glibc 2.21 улучшений можно отметить:
Задействован новый алгоритм семафоров, реализованный с использованием единого для всех платформ кода на языке Си. Прошлая реализация была написана на ассемблере и испытывала проблемы с проверкой надёжности. Новая реализация поддерживает системы с 32- или 64-разрядными атомарными операциями и используется в функциях sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait и sem_getvalue; До GCC 4.6 повышены требования к минимальной версии компилятора, необходимого для сборки Glibc. Старые версии GCC и другие компиляторы по-прежнему могут использоваться для сборки программ, использующих Glibc; При сборке Glibc по умолчанию включен флаг »-Werror»; Представлен порт Glibc для soft-процессоров Altera Nios II, подготовленный компанией Mentor Graphics; Включена оптимизированная для процессоров powerpc64/powerpc64le реализация функций strcpy, stpcpy, strncpy, stpncpy, strcmp и strncmp; Включена оптимизированная для процессоров AArch64 реализация функций strcpy, stpcpy, strchrnul и strrchr. Реализация функций memcpy для архитектуры i386 оптимизирована с использованием не требующих выравнивания SSE2-инструкций load/store; В реализации мьютексов pthread для процессоров powerpc32, powerpc64le и powerpc64 добавлена поддержка механизма Lock Elision, входящего в состав набора расширений TSX (Transactional Synchronization Extensions), что позволяет увеличить масштабируемость блокировок на системах с поддержкой инструкции HTM. Механизм по умолчанию отключен и требует сборки Glibc с опцией »--enable-lock-elision=yes»; Удалена устаревшая функция sigvec, на смену которой в POSIX.1 пришёл интерфейс sigaction. Добавлена поддержка ABI-расширений MIPS o32 FPXX, FP64A и FP64; Устранены уязвимости: CVE-2015–1472 — может привести к переполнению буфера, о котором было известно с февраля прошлого года. Проблема проявляется из-за некорректного расчёта размера буфера, выделяемого для размещения разобранных аргументов функции wscanf; CVE-2014–7817 — игнорирование флага WRDE_NOCMD в функции wordexp может привести к запуску командной оболочки при обработке определённым образом оформленных входных данных; CVE-2012–3406 — переполнение стека при обработке в printf-подобных функциях слишком большого числа спецификаторов формата; CVE-2014–9402 — бесконечное зацикливание реализации nss_dns-функции getnetbyname при получении DNS-ответа, содержащего некорректные данные в поле PTR; Исправлено более 100 ошибок.
© OpenNet