Glibc 2.38 уже выпущен, и это его новости

Glibc

Glibc — это стандартная библиотека времени выполнения для языка GNU C.

После шести месяцев разработки se объявил о выпуске новой версии Glibc 2.38, версия, в которую внесены различные изменения, объявлены и удалены устаревшие функции, интегрированы улучшения безопасности и многое другое.

Тем, кто не знаком с Glibc, следует знать, что это такое. библиотека GNU C, обычно известная как glibc — это стандартная библиотека времени выполнения GNU C. В системах, где она используется, эта библиотека C, которая предоставляет и определяет системные вызовы и другие базовые функции, он используется почти всеми программами. 



Основные новые возможности Glibc 2.38

В представленной новой версии Glibc 2.38 одна из главных новинок, которая выделяется, заключается в том, что добавлены новые функции strlcpy и strlcat, который являются альтернативой функциям strncpy и strncat., которые содержат защиту от переполнения буфера и обязательно устанавливают в конечной строке нулевой байт. Реализация функций выполнялась со времен OpenBSD, и ожидается, что в будущем эти функции будут включены в стандарт POSIX.



Еще одна новинка, которая выделяется в этой новой версии, когда функции C2X включены и базовый аргумент равен 0 или 2, во входных параметрах различных функций, разрешить использование префиксов 0b и 0B для определения двоичных значений, указав режим форматирования через файл «%i. Независимо от включения стандарта C2X, эти функции также поддерживают отдельную опцию формата «%b» для двоичных чисел.

Также подчеркивается, что теперь вы можете использовать новый вариант конфигурации, «—enable-укрепить-источник», для компиляции Glibc с участием «_FORTIFY_SOURCE«, для обнаружения возможных переполнений буфера во время выполнения строковых функций, определенных в заголовочном файле string.h.



Кроме того, сейчасФункции семейства Printf поддерживают модификаторы длины. формата «wN» для аргументов типа intN_t, int_leastN_t, uintN_t и uint_leastN_t и формат «вфн» модификаторы длины для аргументов типа int_fastN_t или uint_fastN_t, как указано в проекте ISO C2X.

Исправлена ​​уязвимость CVE-2023-25139., что вызвало переполнение буфера в функциях семейства printf при записи в буфер строковых представлений чисел с разделителями тысяч, если размер буфера вычисляется без разделителей (например, вывод 1,234,567 2 XNUMX приведет к переполнению на XNUMX байта).

С другой стороны, упоминается, что для архитектуры AArch64 добавлена ​​поддержка векторная математическая библиотека «libmvec«, для которого требуется версия GCC >= 10.1.0. Его можно отключить через «—disable-mathvec«, однако это не поддерживаемая конфигурация, так как она изменяет ABI. Имена символов соответствуют ABI вектора AArch64, объявлены в math.h и должны вызываться вручную на этом этапе.



Что касается ффункции, которые устарели и были удалены в этой новой версии упоминается, например, что устат больше не доступен для недавно связанных двоичных файлов и заголовков были удалены и . 

По умолчанию, либкрипт больше не создается, и теперь рекомендуется использовать «—enable-crypt» строить либкрипт. Похоже, что либкрипт будут удалены в будущем выпуске, поэтому рекомендуется перенести приложения в альтернативу, например libxcrypt.



Из других изменений которые выделяются:

  • Добавлены настройкиglibc.pthread.stack_hugetlb отключить THP (прозрачные огромные страницы) для выделения стека во время pthread_create.
  • Добавлена ​​поддержка x86_64, работающего на Hurd. Этот порт требует как минимум binutils 2.40 и GCC 13.
  • Убраны «варианты»—disable-experimental-malloc» и «—enable-tunables» (внутренняя настройка теперь всегда включена).
  • Макросы C2X PRIB*, PRIB* и SCNb* были добавлены в шапку .
  • В ядре Linux для архитектуры hppa/parisc некоторые константы MADV_XXX были изменены, чтобы иметь те же значения, что и для других архитектур.

Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.




2023-08-15T16:46:41
приложений