Glibc 2.38 zostało już wydane, a to są jego nowości

glibc

Glibc to standardowa biblioteka uruchomieniowa dla języka GNU C.

Po sześciu miesiącach rozwoju se ogłosił wydanie nowej wersji Glibc 2.38, wersja, w której wprowadzono różne zmiany, zadeklarowano i usunięto przestarzałe funkcje, zintegrowano ulepszenia bezpieczeństwa i nie tylko.

Dla tych, którzy nie są zaznajomieni z Glibc, powinni wiedzieć, co to jest biblioteka GNU C, powszechnie znana jako glibc to standardowa biblioteka uruchomieniowa GNU C. W systemach, w których jest używany, ta biblioteka C, która udostępnia i definiuje wywołania systemowe i inne podstawowe funkcje, jest używany przez prawie wszystkie programy. 

Główne nowe funkcje Glibc 2.38

W prezentowanej nowej wersji Glibc 2.38 jedną z głównych nowości, która się wyróżnia, jest to, że dodano nowe funkcje strlcpy i strlcat, który są alternatywami dla funkcji strncpy i strncat, które zawierają ochronę przed przepełnieniem bufora i koniecznie ustawiają końcowy ciąg na bajt zerowy. Implementacja funkcji została wykonana od OpenBSD i oczekuje się, że w przyszłości funkcje te zostaną włączone do standardu POSIX.

Kolejna nowość, która wyróżnia się w tej nowej wersji, gdy funkcje C2X są włączone, a argumentem podstawowym jest 0 lub 2, w parametrach wejściowych różnych funkcji, pozwalają na użycie przedrostków 0b i 0B do definiowania wartości binarnych, określając tryb formatowania za pomocą pliku „%i. Niezależnie od włączenia standardu C2X, funkcje te obsługują również oddzielną opcję formatu „%b” dla liczb binarnych.

Podkreślono również, że teraz możesz użyć nowa opcja konfiguracji"--enable-fortify-source", skompilować Glibc z "_FORTIFY_SOURCE", aby wykryć możliwe przepełnienie bufora podczas wykonywania funkcji łańcuchowych zdefiniowanych w pliku nagłówkowym string.h.

Oprócz tego terazFunkcje z rodziny Printf obsługują modyfikatory długości formatu «wN» dla argumentów typu intN_t, int_leastN_t, uintN_t i uint_leastN_t i format «wfN» modyfikatory długości dla argumentów typu int_fastN_t lub uint_fastN_t, jak określono w projekcie ISO C2X.

Naprawiono lukę CVE-2023-25139, co spowodowało przepełnienie bufora w funkcjach rodziny printf podczas zapisywania w buforze ciągów reprezentacji liczb z separatorami tysięcy, jeśli rozmiar bufora jest obliczany bez ograniczników (na przykład wyjście 1,234,567 2 XNUMX spowoduje przepełnienie XNUMX-bajtowe).

Z drugiej strony jest o tym mowa dla architektury AArch64 dodano obsługę biblioteka wektorów matematycznych «libmvec", co wymaga wersji GCC >= 10.1.0. Można go wyłączyć za pomocą «--disable-mathvec”, jednak nie jest to obsługiwana konfiguracja, ponieważ zmienia ABI. Nazwy symboli są zgodne z ABI wektora AArch64, są zadeklarowane w math.h i muszą być wywołane ręcznie w tym momencie.

Jeśli chodzi o ffunkcje, które zostały wycofane i usunięte w tej nowej wersji wspomniano na przykład, że ustat nie jest już dostępny dla nowo połączonych plików binarnych i nagłówków zostały usunięte I . 

Domyślnie, biblioteka libcrypt nie jest już tworzony i teraz zaleca się użycie „--enable-crypt" budować biblioteka libcrypt. Jest prawdopodobne, że biblioteka libcrypt zostanie usunięty w przyszłej wersji, dlatego zaleca się przeniesienie aplikacji do alternatywy, takiej jak biblioteka libxcrypt.

Z innych zmian które wyróżniają się:

  • Dodano ustawienian glibc.pthread.stack_hugetlb aby wyłączyć THP (Transparent Huge Pages) dla alokacji stosu podczas pthread_create.
  • Dodano obsługę architektury x86_64 działającej w systemie Hurd. Ten port wymaga co najmniej binutils 2.40 i GCC 13.
  • Usunięto „opcje”--disable-experimental-malloc" i "--enable-tunables" (ustawienie wewnętrzne jest teraz zawsze włączone).
  • Makra C2X PRIb*, PRIB* i SCNb* zostały dodane do nagłówka .
  • W jądrze Linuksa dla architektury hppa/parisc niektóre stałe MADV_XXX zostały zmienione, aby miały takie same wartości jak inne architektury.

Na koniec, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.