Glibc 2.38 ja va ser alliberat i aquestes són les seves novetats

glibc

Glibc és la biblioteca de temps d'execució estàndard del llenguatge C del GNU

Després de sis mesos de desenvolupament si va donar a conèixer el llançament de la nova versió de Glibc 2.38, versió en què s'han realitzat diversos canvis, s'han declarat i eliminat funcions obsoletes, s'han integrat millores de seguretat i més.

Per als qui desconeixen de Glibc, han de saber que és una biblioteca GNU C, comunament coneguda com glibc és la biblioteca de temps d'execució estàndard de el llenguatge C de GNU. En els sistemes en què es fa servir, aquesta biblioteca de C que proporciona i defineix les trucades a sistema i altres funcions bàsiques, és utilitzada per gairebé tots els programes. 

Principals novetats de Glibc 2.38

En aquesta nova versió que es presenta de Glibc 2.38, una de les principals novetats que es destaca, és que s'han afegit les noves funcions strlcpy i strlcat, Les quals són alternatives a les funcions strncpy i strncat, que contenen protecció contra desbordament de memòria intermèdia i necessàriament configuren la cadena final en un byte nul. La implementació de les funcions s'ha realitzat des de l'OpenBSD i s'espera que aquestes funcions s'incloguin a l'estàndard POSIX en el futur.

Una altra de les novetats que es destaca d'aquesta nova versió, quan les característiques de C2X estan habilitades i l'argument base és 0 o 2, als paràmetres d'entrada de diferents funcions, permeten l'ús dels prefixos 0b i 0B per definir valors binaris, quan especifiqueu el mode de format a través de l'especificador «%i. Independentment de l'activació de l'estàndard C2X, aquestes funcions també admeten una opció de format %b separada per a números binaris.

També es destaca que ara, es pot utilitzar la una nova opció de configuració, "–enable-fortify-source«, per compilar Glibc amb «_FORTIFY_SOURCE«, per detectar possibles desbordaments de memòria intermèdia durant l'execució de funcions de cadena definides al fitxer de capçalera string.h.

A més, ara les funcions de la família Printf admeten els modificadors de longitud del format «wN» per a arguments de tipus intN_t, int_leastN_t, uintN_t i uint_leastN_t i el format «wfN» modificadors de longitud per a arguments de tipus int_fastN_t o uint_fastN_t, com especificat a l'esborrany ISO C2X.

Es va corregir la vulnerabilitat CVE-2023-25139, que provocava un desbordament del memòria intermèdia en les funcions de la família printf en escriure al memòria intermèdia representacions de cadenes de nombres amb separadors de milers, si la mida del memòria intermèdia es calcula sense delimitadors (per exemple, la sortida 1,234,567 donarà com a resultat un desbordament de 2 bytes).

D'altra banda, s'esmenta que per a l'arquitectura AArch64 s'ha afegit compatibilitat amb la biblioteca matemàtica vectorial «libmvec«, que requereix la versió GCC >= 10.1.0. Es pot deshabilitar a través de «–disable-mathvec«No obstant, aquesta no és una configuració compatible, ja que canvia l'ABI. Els noms dels símbols segueixen l'ABI del vector AArch64, es declaren a math.hy s'han de trucar manualment en aquest punt.

Pel que fa a les funcions que es van declarar obsoletes i que van ser eliminades en aquesta nova versió, s'esmenta per exemple que «ustat» ja no està disponible per als binaris recent vinculats i s'han eliminat les capçaleres i . 

Per defecte, libcrypt ja no es crea i ara es recomana fer servir l'opció «–enable-crypt» per construir libcrypt. És probable que libcrypt s'elimini en una versió futura, per la qual cosa es recomana que les aplicacions es transfereixin a una alternativa com libxcrypt.

Dels altres canvis que es destaquen:

  • S'ha afegit la configuración glibc.pthread.stack_hugetlb per deshabilitar THP (Pàgines enormes transparents) per a l'assignació de piles durant pthread_create.
  • S'ha afegit suport per a x86_64 executant-se a Hurd. Aquest port requereix com a mínim binutils 2.40 i GCC 13.
  • Es van eliminar les opcions «–disable-experimental-malloc» i «–enable-tunables» (la configuració interna ara està sempre habilitada).
  • les macros PRIb*, PRIB* i SCNb* de C2X s'han afegit a la capçalera .
  • Al nucli de Linux per a l'arquitectura hppa/parisc, algunes de les constants MADV_XXX es van canviar per tenir els mateixos valors que les altres arquitectures.

Finalment si estàs interessat en poder conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.