Après six mois de développement publié version de la bibliothèque système Bibliothèque GNU C (glibc) 2.30, qui est entièrement conforme aux exigences des normes ISO C11 et POSIX.1-2008. La nouvelle version comprend des correctifs de 48 développeurs.
Parmi ceux implémentés dans la Glibc 2.30 améliorations vous pouvez noter:
L'éditeur de liens dynamique prend en charge l'option « --preload » pour précharger les objets partagés (analogue à la variable d'environnement LD_PRELOAD) ;
Ajout de la fonction twalk_r, similaire à la fonction twalk déjà existante, mais permettant de passer un argument supplémentaire à une fonction de rappel donnée ;
De nouvelles fonctions getdents64, gettid et tgkill ont été ajoutées pour Linux ;
Assurez-vous que les fonctions de gestion de la mémoire malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign et posix_memalign se terminent avec un code d'erreur lorsque la taille totale de l'objet dépasse la valeur PTRDIFF_MAX. Ce changement évite un comportement indéfini lorsque le résultat d'une manipulation du pointeur conduit à un débordement de type ptrdiff_t ;
Ajout des fonctions POSIX pthread_cond_clockwait, pthread_mutex_clocklock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock et sem_clockwait, similaires aux équivalents "timed", mais acceptant en plus un paramètre clockid_t pour sélectionner la minuterie ;
Les données d'encodage, les informations sur les types de caractères et les tables de translittération ont été mises à jour pour prendre en charge la spécification Unicode 12.1.0 ;
La bibliothèque librt ne fournit plus les fonctions clock_gettime, clock_getres, clock_settime, clock_getcpuclockid et clock_nanosleep pour les nouvelles applications, mais utilise à la place automatiquement les définitions de la libc ;
L'option "inet6" a été supprimée de /etc/resolv.conf. Suppression des indicateurs obsolètes RES_USE_INET6, RES_INSECURE1 et RES_INSECURE2 de resolv.h ;
Lorsque vous spécifiez l'option "--enable-bind-now", les programmes installés sont désormais liés à l'aide de l'indicateur BIND_NOW ;
Le fichier d'en-tête sys/sysctl.h et la fonction sysctl spécifiques à Linux sont obsolètes, et les applications doivent plutôt utiliser le pseudo-FS /proc ;
Construire Glibc nécessite désormais GCC 6.2 ou une version plus récente (n'importe quel compilateur peut être utilisé pour créer des applications) ;
Vulnérabilité corrigée CVE-2019-7309 dans l'implémentation de la fonction memcmp pour dépassé Sous-architecture x32 (à ne pas confondre avec x86 IA-32), à la suite de laquelle la fonction pourrait renvoyer de manière incorrecte la valeur 0 pour les chaînes qui ne correspondent pas ;
Vulnérabilité corrigée CVE-2019-9169, ce qui peut entraîner la lecture de données à partir d'une zone en dehors des limites du tampon lorsque certaines expressions régulières sont traitées.