Accueil Astuces et Informations Glibc 2.38 est déjà sorti et voici ses nouveautés

Glibc 2.38 est déjà sorti et voici ses nouveautés

2
0
Glibc

Glibc est la bibliothèque d’exécution standard pour le langage GNU C.

Après six mois de développement, la sortie de la nouvelle version de Glibc 2.38 a été annoncée, une version dans laquelle diverses modifications ont été apportées, des fonctions obsolètes ont été déclarées et supprimées, des améliorations de sécurité ont été intégrées, etc.

Pour ceux d’entre vous qui ne connaissent pas Glibc, sachez qu’il s’agit d’ une bibliothèque GNU C, communément appelée glibc est la bibliothèque d’exécution standard du langage GNU C. Sur les systèmes où elle est utilisée, cette bibliothèque C, qui fournit et définit les appels système et autres fonctions de base, est utilisée par presque tous les programmes. 

Principales novedades de Glibc 2.38 est déjà sorti et voici ses nouveautés

Dans cette nouvelle version de Glibc 2.38, l’une de ses principales nouveautés qui ressort est l’ ajout des nouvelles fonctions strlcpy et strlcat , qui sont des alternatives aux fonctions strncpy et strncat , qui contiennent une protection contre le débordement de tampon et définissent nécessairement la chaîne finale sur un octet nul. L’implémentation des fonctions a été faite depuis OpenBSD et il est prévu que ces fonctions soient incluses dans le standard POSIX à l’avenir.

Autre nouveauté qui se démarque dans cette nouvelle version, lorsque les fonctionnalités C2X sont activées et que l’argument de base est 0 ou 2, dans les paramètres d’entrée des différentes fonctions, elles permettent l’utilisation des préfixes 0b et 0B pour définir des valeurs binaires, par en spécifiant le mode de formatage via le “%i. Indépendamment de l’activation de la norme C2X, ces fonctions prennent également en charge une option de format “%b” distincte pour les nombres binaires.

Il est également à noter qu’une nouvelle option de configuration , « –enable-fortify-source », peut désormais être utilisée pour compiler Glibc avec « _FORTIFY_SOURCE », afin de détecter d’éventuels débordements de tampon lors de l’exécution de fonctions de chaîne définies dans le fichier. .h.

De plus, les fonctions de la famille Printf supportent désormais les modificateurs de longueur au format « wN » pour les arguments de type intN_t, int_leastN_t, uintN_t et uint_leastN_t et les modificateurs de longueur au format « wfN » pour les arguments de type int_fastN_t ou uint_fastN_t, comme spécifié dans le projet ISO C2X.

Correction de la vulnérabilité CVE-2023-25139 , qui provoquait un débordement de tampon dans les fonctions de la famille printf lors de l’écriture dans le tampon des représentations de chaînes de nombres avec des séparateurs de milliers, si la taille du tampon est calculée sans délimiteurs (par exemple, la sortie 1 234 567 entraînera un 2- débordement d’octets).

Por otra parte, se menciona que para la arquitectura AArch64 se ha agregado compatibilidad con la biblioteca matemática vectorial «libmvec«, la cual requiere la versión GCC >= 10.1.0. Se puede deshabilitar a través de «–disable-mathvec«, sin embargo, esa no es una configuración compatible, ya que cambia la ABI. Los nombres de los símbolos siguen el ABI del vector AArch64, se declaran en math.h y deben llamarse manualmente en este punto.

En cuanto a las funciones que se declararon obsoletas y que fueron eliminadas en esta nueva versión, se menciona por ejemplo que «ustat» ya no está disponible para los binarios recién vinculados y se han eliminado los encabezados y <sys/ustat.h>. 

De forma predeterminada, libcrypt ya no se crea y ahora se recomienda usar la opción «–enable-crypt» para construir libcrypt. Es probable que libcrypt se elimine en una versión futura, por lo que se recomienda que las aplicaciones se transfieran a una alternativa como libxcrypt.

De los demás cambios que se destacan:

  • Se agregó la configuración glibc.pthread.stack_hugetlb para deshabilitar THP (Páginas enormes transparentes) para la asignación de pilas durante pthread_create.
  • Se agregó soporte para x86_64 ejecutándose en Hurd. Este port requiere como mínimo binutils 2.40 y GCC 13.
  • Suppression des options « –disable-experimental-malloc » et « –enable-tunables » (la configuration interne est désormais toujours activée).
  • Les macros C2X PRIb*, PRIB* et SCNb* ont été ajoutées à l’en-tête .
  • Dans le noyau Linux pour l’architecture hppa/parisc, certaines des constantes MADV_XXX ont été modifiées pour avoir les mêmes valeurs que les autres architectures.

Enfin, si vous souhaitez en savoir plus, vous pouvez consulter les détails dans le lien suivant.