Представлен (https://sourceware.org/ml/libc-alpha/2015-02/msg00119.html) релиз системной библиотеки GNU C Library (http://ftp.gnu.org/gnu/glibc/) (glibc) 2.21 (http://sourceware.org/glibc/wiki/Release/2.21), которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2008. В подготовке нового выпуска использованы патчи от 61 разработчика.
Из добавленных в Glibc 2.21 улучшений (http://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;h... можно отметить:
- Задействован новый алгоритм семафоров, реализованный с использованием единого для всех платформ кода на языке Си. Прошлая реализация была написана на ассемблере и испытывала проблемы с проверкой надёжности. Новая реализация поддерживает системы с 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-процессоров (https://ru.wikipedia.org/wiki/Soft-%D0%BC%D0&... Altera Nios II (http://www.altera.com/devices/processor/nios2/ni2-index.html), подготовленный компанией 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 - может привести к переполнению буфера, о котором было известно (https://sourceware.org/bugzilla/show_bug.cgi?id=16618) с февраля прошлого года. Проблема проявляется из-за некорректного расчёта размера буфера, выделяемого для размещения разобранных аргументов функции wscanf;
- CVE-2014-7817 - игнорирование флага WRDE_NOCMD в функции wordexp может привести к запуску командной оболочки при обработке определённым образом оформленных входных данных;
- CVE-2012-3406 - переполнение стека при обработке в printf-подобных функциях слишком большого числа спецификаторов формата;
- CVE-2014-9402 - бесконечное зацикливание реализации nss_dns-функции getnetbyname при получении DNS-ответа, содержащего некорректные данные в поле PTR;
- Исправлено более 100 ошибок.
URL: https://sourceware.org/ml/libc-alpha/2015-02/msg00119.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=41623