GNU C Library

Logiciel capture d'écran:
GNU C Library
Détails logiciels:
Version: 2.28 Mise à jour
Date de transfert: 16 Aug 18
Développeur: Roland McGrath
Licence: Gratuit
Popularité: 16

Rating: 3.0/5 (Total Votes: 2)

La bibliothèque GNU C est un logiciel de bibliothèque libre, puissant et gratuit pour toute distribution GNU / Linux. Il est également connu sous le nom de Glibc et requis par tout système d'exploitation informatique de type UNIX. La bibliothèque GNU C est chargée de définir les appels système, ainsi que diverses autres fonctionnalités de base, telles que malloc, open, exit, printf, etc.


Utilisé par défaut dans tous les systèmes d'exploitation basés sur le noyau Linux

La bibliothèque GNU C est installée et utilisée par défaut dans tous les systèmes d’exploitation basés sur le noyau Linux, conçue pour servir de bibliothèque principale dans les systèmes GNU et tout autre système d’exploitation alimenté par le noyau Linux.


Conçu pour être portable

Glibc est une bibliothèque C hautes performances, entièrement écrite en langage de programmation C. Il est conçu pour être portable, internationalisé et conçu pour prendre en charge toutes les normes pertinentes, y compris POSIX.1-2008 et ISO C11.


Prend en charge les fonctionnalités des variantes UNIX bien connues

Bien que la bibliothèque GNU C possède une interface entièrement internationalisée, elle essaie de prendre en charge les fonctionnalités de variantes UNIX bien connues, telles que BSD et System V, grâce à ses modes de compatibilité intégrés.

Premiers pas avec la bibliothèque GNU C

Bien que la bibliothèque GNU C soit installée par défaut dans presque tous les systèmes d’exploitation GNU / Linux, vous pouvez également la réinstaller vous-même en utilisant gratuitement le paquet source distribué sur son site Web ou Softoware. Pour commencer, téléchargez et enregistrez l’archive dans votre répertoire personnel.

Décompressez l'archive avec un utilitaire de gestionnaire d'archives, ouvrez une fenêtre de terminal, accédez à l'emplacement où les fichiers d'archive ont été extraits, exécutez le fichier & lsquo; commande pour configurer le programme (voir la commande & lsquo; configure --help & eacute; pour diverses options d'optimisation).

Ensuite, lancez le & lsquo; commande pour compiler la librairie, qui peut être installée dans tout le système en lançant soit le "make install"; ou "sudo make install" commandes, selon que votre racine ou un utilisateur privilégié.

Nouveautés dans cette version:

  • https://sourceware.org/ml/libc-announce/2018/msg00000.html

Quoi de neuf dans la version 2.27:

  • https://sourceware.org/ml/libc-announce/2018/msg00000.html

Nouveautés dans la version:

  • La version minimale du noyau Linux avec laquelle cette version de la bibliothèque GNU C peut être utilisée est 3.2, sauf sur i [4567] 86 et x86_64, où la version 2.6.32 ou ultérieure du noyau Linux est suffisante (sur les architectures nécessitant déjà versions plus récentes que 3.2, ces exigences restent inchangées). Les en-têtes du noyau Linux 3.2 ou ultérieur sont requis sur toutes les architectures.
  • La locale de pap_AN a été supprimée. Ceci est obsolète depuis longtemps. Il a été remplacé par pap_AW & amp; pap_CW, tous deux inclus depuis longtemps dans les versions précédentes.
  • Les fonctions readdir_r et readdir64_r sont obsolètes. Il est recommandé d’utiliser readdir et readdir64 à la place.
  • Le type "union wait" a été supprimé. Il a été déconseillé au début des années 1990 et ne fait jamais partie de POSIX. Le code de l'application doit utiliser le type int au lieu de "union wait".
  • Une nouvelle action NSS est ajoutée pour faciliter l’administration d’un grand système distribué. L'action MERGE permet aux magasins d'utilisateurs distants tels que LDAP d'être fusionnés dans des magasins d'utilisateurs locaux tels que / etc / groups afin de fournir des ensembles d'informations d'identification fusionnées faciles à utiliser, mis à jour et gérés. La nouvelle action peut être utilisée en la configurant dans /etc/nsswitch.conf: group: files [SUCCESS = merge] nis Implémenté par Stephen Gallagher (Red Hat).
  • La variable obsolète __malloc_initialize_hook a été supprimée de l’API.
  • L'option long inutilisée localedef --old-style a été supprimée. Il n'a rien fait depuis plus de 16 ans. Les scripts utilisant cette option peuvent le déposer en toute sécurité.
  • nextupl, nextup, nextupf, nextdownl, nextdown et nextdownf sont ajoutés à libm. Ils sont définis par TS 18661 et IEEE754-2008. Les fonctions nextup renvoient la prochaine valeur représentable dans la direction de l'infini positif et les fonctions nextdown renvoient la prochaine valeur représentable dans la direction de l'infini négatif. Ceux-ci sont actuellement activés en tant qu'extensions GNU.
  • Modifications liées à la sécurité:
  • Une copie de pile inutile dans _nss_dns_getnetbyname_r a été supprimée. Cela peut entraîner un débordement de pile lorsque getnetbyname a été appelé avec un nom trop long. (CVE-2016-3075)
  • Auparavant, getaddrinfo copiait de grandes quantités de données d'adresse dans la pile, même après l'application du correctif pour CVE-2013-4458, ce qui pouvait entraîner un débordement de pile. getaddrinfo utilise maintenant une allocation de tas. Rapporté par Michael Petlan. (CVE-2016-3706)
  • La fonction glob a souffert d’un débordement de la pile lorsqu’elle a été appelée avec l’indicateur GLOB_ALTDIRFUNC et qu’elle a rencontré un nom de fichier long. Rapporté par Alexander Cherepanov. (CVE-2016-1234)
  • Le client Sun RPC UDP peut épuiser tout l’espace de pile disponible lorsqu'il est inondé de messages ICMP et UDP spécialement conçus. Rapporté par le plugin alloca d'Aldy Hernandez pour GCC. (CVE-2016-4429)
  • Le code de gestion du serveur de noms IPv6 dans libresolv peut entraîner une fuite de mémoire pour chaque thread créé, effectuer une recherche de dénomination défaillante et quitter. Avec le temps, cela pourrait entraîner un déni de service en raison de l'épuisement de la mémoire. Rapporté par Matthias Schiffer. (CVE-2016-5417)
  • Les bogues suivants sont résolus avec cette version:
  • [1170] localedata: ne_NP: mise à jour du fichier de définition des paramètres régionaux Nepali [3629] manual: la description stpcpy dans string.texi fait référence à MS-DOG au lieu de MS-DOS. [6527] malloc: [powerpc] Alignement Malloc insuffisant pour PowerPC [6796] math: fdim () ne définit pas errno sur débordement [10354] libc: posix_spawn doit utiliser vfork () dans plus de cas que maintenant [11213] localedata: localedata: ajout de la clause de non-responsabilité aux fichiers de paramètres régionaux [12143] localedata: chr_US: nouvelle locale Cherokee [12450] localedata: sgs_LT: nouvelle locale [12676] localedata: ln_CD: nouvelle locale [13237] localedata: LC_ADDRESS.country_name: mise à jour de tous les paramètres locaux data [13304] math: fma, fmaf, fmal produisent des résultats incorrects [14259] build: --localedir arg à configurer est ignoré [14499] nptl: Est-ce que posix_spawn appelle des gestionnaires atfork / use vfork? [14750] libc: Condition de course dans l'utilisation de vpx vs gestionnaires de signaux posix_spawn [14934] localedata: es_CL: faux premier lieu de la semaine chilienne [15262] localedata: LC_MESSAGES.yesexpr / noexpr: utilisation incohérente de la romanisation [15263] localedata: LC_MESSAGES.yesexpr / noexpr: utilisation incohérente de 1/0 et +/- [15264] localedata: LC_MESSAGES.yesstr / nostr: manque de nombreux paramètres régionaux [15368] nptl: raise () n'est pas asynchrone-safe [15479] math: ceil, floor, round et trunc soulève une exception inexacte [15578] localedata: kk_KZ: mises à jour diverses [16003] localedata: pap_AN: punt ancienne locale [16137] localedata: iw_IL: punt ancienne locale [16190] localedata: eo: nouvelle locale esperanto [16374] localedata: lv_LV: changer le symbole monétaire de LC_MONETARY en euro [16742] () appelé avant le premier malloc () entraîne un comportement de verrouillage / blocages inattendu [16975] localedata: LC_MESSAGES.yesexpr / noexpr: revisite la capitalisation dans tous les paramètres régionaux [16983] localedata: postal_fmt n'autorise pas les modificateurs% l et% n : pt_PT: début de semaine (de travail) incorrect [17899] math: [powerpc] floorl renvoie un zéro négatif avec FE_DOWNWARD [17950] build: la construction échoue avec -msse [18205] localedata: be_BY *: first_weekday et first_workday incorrect [18433] : posix_spawn ne retourne pas correctement en cas d'échec de l'exécution de [18453] localedata: charmaps / IBM875: codes incorrects [18712] chaîne: bits / chaîne2.h incompatible avec -O2 -Werror = compact -Wsystem-headers [18896] localedata: he_IL: améliorations pour currency [18911] localedata: ro_RO: correction du nom du jour de semaine pour "Tuesday" dans les paramètres régionaux roumains [18960] locale: s390: _nl_locale_subfreeres utilise l'opcode larl sur un symbole mal aligné [19056] libc: Déprécie readdir_r [19133] localedata: pt_ *: days & amp; les mois doivent être en minuscule en portugais [19198] localedata: nl_NL: petites améliorations pour les paramètres régionaux en néerlandais [19257] network: fuite de mémoire par thread dans __res_vinit avec les serveurs de noms IPv6 (CVE-2016-5417) [19269] build: tst-audit4 et tst-audit10 échecs avec gcc-6 sur une machine non-avx [19400] locale: langue manquante dans "iso-639.def", correctif trivial dans la description [19431] malloc: blocage entre fflush, getdelim et fork [19505] libc: Vérifications incorrectes de la validité du descripteur de fichier dans posix_spawn_file_actions_add {open, close, dup2} [19509] dynamic-link: dlsym, dlvsym ne signale aucune erreur via dlerror lors de l'utilisation de l'environnement local RTLD_NEXT [19512]: Stale `#ifndef HAVE_BUILTIN_EXPECT ' , loadinfo}.h '[19534] libc: execle, execlp peut utiliser malloc [19568] localedata: * _CH: les locales suisses ont un début de semaine incohérent [19573] network: res_nclose et __res_maybe_init ne sont pas d'accord sur l'initialisation du serveur de noms des tables GB18030 [19581] localedata: sr_ * date_fmt chaîne contient une nouvelle ligne supplémentaire [19583] chaîne: le drapeau SSSE3_Fast_Copy_Backward doit être activé pour le noyau AMD Excavator [19592] math: [ldbl-128ibm] ceill ] math: [ldbl-128ibm] truncl incorrect dans les modes d'arrondi non par défaut [19594] math: [ldbl-128ibm] roundl incorrect dans les modes d'arrondi par défaut [19595] math: [ldbl-128ibm] fmodl incorrect pour les résultats en subnormal double range [19602] math: [ldbl-128ibm] traitement fmodl des arguments égaux avec le bas zéro partie incorrect [19603] math: [ldbl-128ibm] demeurederl, remquol manipulation incorrecte des signes dans les tests d'égalité [19610] dynamic-link: ldconfig - X supprime les liens symboliques périmés [19613] libc: s390x Extension de macro (64 bits) WCOREDUMP et autres [19633] Paramètres régionaux: strfmon_l applique les paramètres régionaux globaux au formatage des nombres [19642] network: Fuite de mémoire dans getnameinfo [19648] libc: test-skeleton.c: Ne définissez pas RLIMIT_DATA [19653] libc: Possibilité de déréférencement du pointeur NULL (CWE-476) dans glibc-2.22 [19654] math: [x86_64] Testcase for BZ # 19590 fix [19671] () dans 'tst-fmon.c' & amp; 'tst-numeric.c' [19674] math: [ldbl-128ibm] gestion incorrecte du débordement de powl [19677] math: [ldbl-128ibm] test d'égalité de restederl incorrect pour la partie basse nulle [19678] math: [ldbl-128ibm] nextafterl , nexttowardl signe incorrect de résultat nul [19679] dynamic-link: gcc-4.9.3 gestion des exceptions C ++ interrompue en raison de la pile non alignée [19726] locale: la conversion de UCS4LE en INTERNAL avec iconv () ne met pas à jour les pointeurs et les longueurs en cas d'erreur . [19727] locale: La conversion de / vers UTF-xx avec iconv () ne rapporte pas toujours les erreurs sur les valeurs de substitution UTF-16.[19755] nscd: échec de l'assertion nscd dans gc [19758] dynamic-link: typo dans EXTRA_LD_ENVVARS pour x86-64 [19759] libc: mempcpy ne doit pas être inséré [19762] dynamic-link: HAS_CPU_FEATURE / HAS_ARCH_FEATURE 19765] libc: s390 a besoin d'un mempcpy optimisé [19779] glob: glob: dépassement de tampon avec GLOB_ALTDIRFUNC en raison d'une hypothèse de limite NAME_MAX incorrecte (CVE-2016-1234) [19783] build: les tests de référence ne prennent pas en charge --enable-hardcoded-path -in-tests [19787] network: vérifications de troncature manquantes et incorrectes dans getnameinfo [19790] math: [ldbl-128ibm] nearbyintl incorrect dans les modes d'arrondi non par défaut [19791] network: échec d'assertion dans res_query.c avec nom non connectable adresses de serveur [19792] libc: MIPS: backtrace donne une trace infinie avec makecontext [19822] math: libm.installez donc clobbers old version [19825] network: resolv: send_vc peut renvoyer des données non initialisées en seconde réponse au réseau getaddrinfo [19830]: nss_dns: doit vérifier la longueur RDATA par rapport à la longueur du tampon [19831] network: nss_dns: getaddrinfo renvoie des données non initialisées Enregistrements A / AAAA de taille non valide [19837] nss: nss_db: Aucune tentative pour certaines lignes longues avec un tampon plus grand [19848] math: powl (10, n) pour n = -4, -5, -6, -7 est désactivée par plus de 1 ULP [19853] stdio: l'impression longue double IBM en décimal avec une grande précision est parfois incorrecte [19860] build: x86_64: erreur de compilation pour tst-audit10 et tst-auditmod10b [19861] nptl: résolveur IFUNC de libpthread pour fork peut conduire à un crash [19862] network: resolv, nss_dns: Supprimer la journalisation restante des types d'enregistrement inattendus [19865] network: Echec d'assertion ou fuite de mémoire dans le réseau _nss_dns_getcanonname_r [19868]: nss_dns: le code netent ne passe pas par 19879] réseau: nss_dns: débordement de la pile dans getnetbyname implementa tion (CVE-2016-3075) [19881] chaîne: Améliorer x86-64 memset [19907] chaîne: tests memcpy incorrects [19916] lien-dynamique: S390: les fichiers fprs / vrs ne sont pas enregistrés / restaurés lors de la résolution des symboles [19925] libc : termios.h Espace de noms XCASE [19928] chaîne: memmove-vec-unaligned-erms.S est lent avec une grande taille de données [19929] libc: limits.h Espace de noms NL_NMAX [19931] stdio: fuite de mémoire dans vfprintf [19957] libc: clone (CLONE_VM) accès mémoire parent non valide [19963] localedata: en_IL: nouvelle locale [19989 ] stdio: stdio.h espace de noms cuserid [19994] network: getaddrinfo ne restaure pas l'indicateur RES_USE_INET6 dans les paramètres régionaux gethosts [19996]: langinfo.h espace de noms nl_langinfo_l [20005] réseau: getaddrinfo: débordement de la pile dans la traduction hostent (CVE-2016-3706) [20012] stdio: libio: fmemopen échec du mode ajout [20014] stdio: stdio.h espace de noms pour les pré-threads POSIX [20017] réseau: resolv: utilise gmtime_r au lieu de gmtime dans p_secstodate [20023] libc: fcntl.h timespec namespace [20024] math: [x86_64] vectorisés sincos supprime le réseau stack [20031]: nss_hesiod: débordement de tas dans get_txt_records [20041] espace de noms [20043] libc: unistd.h cuserid manquant pour UNIX98 et avant [20044] libc: unistd .h manquant pthread_atfork pour UNIX98 [20051] libc: ttyslot dans un mauvais en-tête dans de mauvaises conditions [20054] libc: gethostname non déclaré pour XPG4 [20055] libc: termios.h tcgetsid manquant pour XPG4 [20072] dynamic-link: x86 init_cpu_features est appelé deux fois dans l'exécutable statique [20073] libc: sys / stat.h espace de noms fchmod [20074] libc: stdlib.h espace de noms rand_r [20076] libc: sys / stat .h manquant S_IFSOCK, S_ISSOCK pour XPG4 [20094] libc: stdlib.h ne doit pas déclarer grantpt, ptsname, déverrouillé pour XPG3 [20111] libc: struct sockaddr_storage ne peut pas être copié par agrégat [20112] network: sunrpc: stack (frame) overflow dans Sun RPC clntudp_call (CVE-2016-4429) [20115] chaîne: Alignement supplémentaire dans memset-vec-unaligned-erms.S [20119] libc: masque incorrect pour le type de niveau de processeurs de CPUID [20139] dynamic-link: partie supérieure de zmm est mis à zéro si Glibc est construit avec AS ne prenant pas en charge AVX512 [20151] math: [ldbl-128 / ldbl-128ibm] j0l, j1l, y0l, y1l retourne sNaN pour l'argument sNaN [20153] math: [ldbl-128ibm] (sNaN) retourne sNaN [20156] math: [ldbl-128ibm] ceill, rintl etc. retourne sNaN pour l'argument sNaN [20157] math: [powerpc] fabsl (sNaN) déclenche à tort des maths "invalides" [20160]: [p owerpc] ceil, rint etc.return sNaN pour l'entrée sNaN [20178] libc: posix_spawn {p} ne doit pas appeler exit [20191] stdio: libio: vtables durcissement [20195] chaîne: la détection FMA4 requiert une exécution CPUID avec le registre eax = 0x80000001 [20198] libc: quick_exit détruit de manière incorrecte Objets threads C ++ 11. [20205] math: [i386 / x86_64] nextafterl sous-normales négatives incrémentées incorrectes [20212] math: acos (sNaN) retourne sNaN [20213] math: asin (sNaN) retourne sNaN [20214] réseau: synchronisation de l'en-tête Linux avec linux / in6. h et ipv6.h encore.[20218] math: [i386] asinhl (sNaN) renvoie sNaN [20219] math: [i386] atanhl (sNaN) renvoie sNaN [20222] stdio: fopencookie: pointeurs de la fonction Mangle [20224] math: [i386] cbrtl (sNaN) renvoie sNaN [20225] math: ldexp, scalbn, scalbln return sNaN pour l'entrée sNaN [20226] math: [i386 / x86_64] expl, exp10l, expm1l renvoie sNaN pour l'entrée sNaN [20227] math: [i386 / x86_64] logl (sNaN ) renvoie sNaN [20228] math: [i386 / x86_64] log10l (sNaN) renvoie sNaN [20229] math: [i386 / x86_64] log1pl (sNaN) renvoie sNaN [20232] math: [ldbl-128] expm1l (sNaN) renvoie sNaN [20233] math: [ldbl-128ibm] expm1l (sNaN) renvoie sNaN [20234] math: [ldbl-128ibm] log1pl (sNaN) renvoie sNaN [20235] math: [i386 / x86_64] log2l (sNaN) renvoie sNaN [ 20237] nss: nss_db: get * ent segfaults sans précédent * ent [20240] math: modf (sNaN) renvoie sNaN [20248] libc: debug / tst-longjump_chk2 appelle printf depuis un gestionnaire de signaux [20250] math: frexp (sNaN ) renvoie sNaN [20252] math: atan2 (sNaN, qNaN) ne parvient pas à déclencher "invalide" [20255] ma th: [i386] fdim, retour de fdimf avec une portée et une précision excessives / arrondi double [20256] math: [i386 / x86_64] fdiml renvoie sNaN pour une entrée sNaN [20260] chaîne: ../sysdeps/x86/bits/string.

    h: 1092: 3: erreur: indice de tableau inférieur aux limites de tableau [-Werror = limites de tableau] [20262] nis: _nss_nis_initgroups_dyn renvoie toujours NSS_STATUS_NOTFOUND [20263] nptl: interblocages de mutex robustes / linux) [20277] libc: $ dp n'est pas initialisé correctement dans sysdeps / hppa / start.S [20284] malloc: malloc: l'évitement de l'arène corrompue entraîne des repli de mmap inutiles [20296] math: [i386 / x86_64] Entrée sNaN, exceptions "invalides" manquantes [20314] nptl: make [4]: ​​*** [/usr/include/stdlib.h] Erreur 1 [20316] localedata: id_ID: Februari au lieu de Pebruari [20327] chaîne: POWER8 strcasecmp renvoie un résultat incorrect [20347] math: Failure: Test: j0_downward (0xap + 0) [20348] libc: FAIL: misc / tst-preadvwritev64 [20349] libc: la valeur 64 bits est transmise différemment dans p {readv, writev} {64} [20350] libc: il n'y a pas de test pour p {lecture, écriture} 64 [20357] math: résultat cos incorrect pour 1.5174239687223976 [20384] build: Ne pas exécuter les tests libmvec-sincos-avx * sur non avx m achines

Nouveautés dans la version 2.23:

  • CVE-2015-7547: débordement de mémoire tampon basé sur la pile glibc getaddrinfo () - Correction de la branche de développement pour la version 2.23 de glibc.

Nouveautés dans la version 2.21:

  • Les bogues suivants sont résolus avec cette version: 6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498, 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16576, 16617, 16618, 16619, 16657, 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17582, 17583, 17584, 17585, 17589, 17594, 17601, 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653, 17657, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17801, 17803, 17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885, 17892.
  • CVE-2015-1472 Sous certaines conditions, wscanf peut allouer trop peu de mémoire pour les arguments à analyser et dépasser le tampon alloué. L'implémentation calcule maintenant correctement la taille de tampon requise lors de l'utilisation de malloc.
  • Un nouvel algorithme de sémaphore a été implémenté dans le code C générique pour toutes les machines. Les implémentations précédentes de l'assemblage personnalisé de sémaphore étaient difficiles à raisonner ou à s'assurer qu'elles étaient sûres. La nouvelle version de sémaphore prend en charge les machines avec des opérations atomiques 64 bits ou 32 bits. Le nouvel algorithme de sémaphore est utilisé par sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait et sem_getvalue.
  • Le port vers Altera Nios II a été fourni par Mentor Graphics.
  • Implémentations optimisées de strcpy, stpcpy, strncpy, stpncpy, strcmp et strncmp pour powerpc64 / powerpc64le. Mis en œuvre par Adhemerval Zanella (IBM).
  • Ajout de la prise en charge de l’élimination du verrouillage TSX des mutex pthread sur powerpc32, powerpc64 et powerpc64le. Cela peut améliorer la mise à l'échelle du verrouillage des programmes existants sur les systèmes compatibles HTM. Le code d'élision de verrouillage n'est activé qu'avec l'option --enable-lock-elision = yes. En outre, l’implémentation TSX lock elision pour powerpc émettra une transaction annulée à chaque appel système pour éviter que les effets secondaires ne soient visibles en dehors des transactions.
  • Implémentations optimisées de strcpy, stpcpy, strchrnul et strrchr pour AArch64. Contribution de ARM Ltd.
  • Fonctions i386 memcpy optimisées avec le chargement / le stockage non aligné SSE2.
  • CVE-2104-7817 La fonction wordexp pourrait ignorer l'indicateur WRDE_NOCMD dans certaines conditions d'entrée entraînant l'exécution d'un shell pour la substitution de commandes lorsque l'application ne le demandait pas. L'implémentation vérifie maintenant WRDE_NOCMD immédiatement avant d'exécuter le shell et renvoie l'erreur WRDE_CMDSUB comme prévu.
  • CVE-2012-3406 Lors du traitement de chaînes de format avec un grand nombre de spécificateurs de format, les fonctions de type printf peuvent se produire dans un débordement de pile.
  • CVE-2014-9402 L'implémentation nss_dns de getnetbyname pourrait se dérouler dans une boucle infinie si la réponse DNS contenait un enregistrement PTR d'un format inattendu.
  • La version minimale de GCC qui peut être utilisée pour construire cette version de la bibliothèque GNU C est GCC 4.6. Les anciennes versions de GCC et les compilateurs non GNU peuvent toujours être utilisés pour compiler des programmes en utilisant la bibliothèque GNU C.
  • La bibliothèque GNU C est maintenant construite avec -Werror par défaut. Cela peut être désactivé en configurant avec --disable-werror.
  • Nouveaux paramètres régionaux: tu_IN, bh_IN, raj_IN, ce_RU.
  • La fonction sigvec obsolète a été supprimée. C'était l'interface originale de 4.2BSD qui a inspiré l'interface de sigaction POSIX.1, que les programmes utilisent depuis environ 25 ans. Bien entendu, la compatibilité ABI pour les anciens binaires utilisant sigvec reste intacte.
  • Fusion de gettext 0.19.3 dans le sous-répertoire intl. Cela corrige la construction avec les nouvelles versions de bison.
  • Prise en charge des extensions MIPS o32 FPXX, FP64A et FP64 ABI. L'ABI d'origine MIPS o32 hard-float nécessite un FPU où les registres à double précision superposent deux registres à simple précision consécutifs. MIPS32R2 a introduit un nouveau mode FPU (FR = 1) dans lequel les registres à double précision étendent les registres à simple précision correspondants, ce qui est incompatible avec l’ABI à flottabilité o32. Les MIPS SIMD ASE et MIPSR6 nécessitent tous deux l'utilisation de FR = 1, ce qui nécessite une transition. Les nouvelles extensions o32 ABI permettent aux utilisateurs de migrer progressivement de l’ABI o32 d’origine vers l’ABI o32 mis à jour. Pour cela, l'éditeur de liens dynamique suit l'ABI de tout objet chargé et vérifie que les nouveaux objets sont compatibles. Les transitions de mode seront également demandées au besoin et les objets non supportables seront rejetés. Les vérifications ABI incluent à la fois les ABI flottants et les ABI flottants pour o32, n32 et n64.

Commentaires à GNU C Library

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!