GNU C Library

Software screenshot:
GNU C Library
Dettagli del software:
Versione: 2.28 Aggiornato
Data di caricamento: 16 Aug 18
Sviluppatore: Roland McGrath
Licenza: Libero
Popolarità: 16

Rating: 3.0/5 (Total Votes: 2)

La GNU C Library è un software di libreria open source, gratuito e potente per qualsiasi distribuzione GNU / Linux. È anche noto come Glibc e richiesto da qualsiasi sistema operativo per computer simile a UNIX. La libreria GNU C è responsabile della definizione delle chiamate di sistema, oltre a varie altre funzionalità di base, come malloc, open, exit, printf, ecc.


Utilizzato di default in tutti i sistemi operativi basati su kernel di Linux

La GNU C Library è installata e utilizzata di default in tutto il sistema operativo Linux basato su kernel, progettato da zero per funzionare come la libreria C principale nei sistemi GNU e qualsiasi altro sistema operativo alimentato dal kernel Linux.


Progettato per essere portatile

Glibc è una libreria C ad alte prestazioni, scritta interamente nel linguaggio di programmazione C. È progettato per essere portatile, internazionalizzato e progettato per supportare tutti gli standard pertinenti, tra cui POSIX.1-2008 e ISO C11.


Supporta le caratteristiche delle ben note varianti UNIX

Mentre GNU C Library ha un'interfaccia completamente internazionalizzata, prova a supportare le caratteristiche delle ben note varianti UNIX, come BSD e System V, grazie alle sue modalità di compatibilità incorporate.

Guida introduttiva alla libreria GNU C

Sebbene GNU C Library sia installata di default in quasi tutti i sistemi operativi GNU / Linux, è anche possibile reinstallarla manualmente usando il pacchetto sorgente distribuito gratuitamente sul suo sito Web o su Softoware. Per iniziare, scarica e salva l'archivio nella tua directory Home.

Decomprimi l'archivio con un'utilità di gestione archivio, apri una finestra di terminale, vai nella posizione in cui sono stati estratti i file di archivio, esegui & lsquo; ./ configure & rsquo; comando per configurare il programma (vedi il comando & lsquo; ./ configure --help & rsquo; comando per varie opzioni di ottimizzazione).

Quindi esegui & lsquo; fai & rsquo; comando per compilare la libreria, che può essere installata a livello di sistema eseguendo una delle & lsquo; installazione & rsquo; o & lsquo; sudo make install & rsquo; comandi, a seconda della tua root o di un utente con privilegi.

Novità di in questa versione:

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

Novità nella versione 2.27:

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

Novità della versione nella versione:

  • La versione minima del kernel Linux che questa versione della GNU C Library può utilizzare è la 3.2, eccetto su i [4567] 86 e x86_64, dove è sufficiente la versione del kernel Linux 2.6.32 o successiva (su architetture che hanno già richiesto il kernel versioni più recenti di 3.2, tali requisiti rimangono invariati). Le intestazioni del kernel Linux 3.2 o successive sono richieste su tutte le architetture.
  • La locale pap_AN è stata cancellata. Questo è stato deprecato per molto tempo. È stato sostituito da pap_AW & amp; pap_CW, entrambi sono stati a lungo inclusi nelle versioni precedenti.
  • Le funzioni readdir_r e readdir64_r sono state deprecate. Si consiglia di utilizzare invece readdir e readdir64.
  • Il tipo "unione attesa" è stato rimosso. E 'stato deprecato all'inizio degli anni '90 e mai parte di POSIX. Il codice dell'applicazione deve utilizzare il tipo int anziché "union wait".
  • Viene aggiunta una nuova azione NSS per facilitare l'amministrazione di grandi sistemi distribuiti. L'azione, MERGE, consente agli archivi utente remoti come LDAP di essere uniti in archivi utente locali come / etc / groups al fine di fornire insiemi di credenziali unite facili da usare, aggiornati e gestiti. La nuova azione può essere utilizzata configurandola in /etc/nsswitch.conf: group: files [SUCCESS = merge] nis Implementato da Stephen Gallagher (Red Hat).
  • La variabile __malloc_initialize_hook deprecata è stata rimossa dall'API.
  • L'opzione longedeuse inutilizzata - old-style è stata rimossa. Non ha fatto nulla in oltre 16 anni. Gli script che utilizzano questa opzione possono tranquillamente eliminarlo.
  • nextupl, nextup, nextupf, nextdownl, nextdown e nextdownf vengono aggiunti a libm. Sono definiti da TS 18661 e IEEE754-2008. Le funzioni nextup restituiscono il successivo valore rappresentabile nella direzione di infinito positivo e le funzioni nextdown restituiscono il successivo valore rappresentabile nella direzione dell'infinito negativo. Questi sono attualmente abilitati come estensioni GNU.
  • Modifiche relative alla sicurezza:
  • Una copia dello stack non necessaria in _nss_dns_getnetbyname_r è stata rimossa. Potrebbe verificarsi un overflow dello stack quando getnetbyname è stato chiamato con un nome troppo lungo. (CVE-2016-3075)
  • In precedenza, getaddrinfo ha copiato grandi quantità di dati di indirizzo nello stack, anche dopo che è stata applicata la correzione per CVE-2013-4458, con il conseguente potenziale di overflow dello stack. getaddrinfo ora usa invece un'allocazione dell'heap. Segnalato da Michael Petlan. (CVE-2016-3706)
  • La funzione glob ha sofferto di un overflow del buffer basato sullo stack quando è stato chiamato con il flag GLOB_ALTDIRFUNC e ha incontrato un nome file lungo. Segnalato da Alexander Cherepanov. (CVE-2016-1234)
  • Il client Sun RPC UDP potrebbe esaurire tutto lo spazio disponibile nello stack quando è inondato da messaggi ICMP e UDP creati. Segnalato dal plugin alloca di Aldy Hernandez per GCC. (CVE-2016-4429)
  • Il codice di gestione del server dei nomi IPv6 in libresolv potrebbe causare una perdita di memoria per ogni thread che viene creato, eseguire una ricerca di denominazione in errore ed uscire. Nel corso del tempo, ciò potrebbe comportare un rifiuto di servizio a causa dell'esaurimento della memoria. Segnalato da Matthias Schiffer. (CVE-2016-5417)
  • I seguenti bug sono stati risolti con questa versione:
  • <>[1170] localedata: ne_NP: aggiornamento file di definizione locale Nepali [3629] manual: la descrizione di stpcpy in string.texi si riferisce a MS-DOG anziché MS-DOS. [6527] malloc: [powerpc] Malloc alignment insufficiente per PowerPC [6796] math: fdim () non imposta errno su overflow [10354] libc: posix_spawn dovrebbe usare vfork () in più casi rispetto a adesso [11213] localedata: localedata: aggiungere la dichiarazione di non responsabilità sul copyright ai file locali [12143] localedata: chr_US: nuova localizzazione Cherokee [12450] localedata: sgs_LT: nuova locale [12676] localedata: ln_CD: nuova locale [13237] localedata: LC_ADDRESS.country_name: aggiorna tutti i locali con l'ultimo CLDR data [13304] math: fma, fmaf, fmal producono risultati errati [14259] build: --localedir arg to configure viene ignorato [14499] nptl: posix_spawn invoca i gestori di atfork / usa vfork? [14750] libc: condizioni di gara in posix_spawn utilizzo di vfork vs gestori di segnale [14934] localedata: es_CL: errato primo locale cileno della settimana lavorativa [15262] localedata: LC_MESSAGES.yesexpr / noexpr: uso incoerente di romanizzazione [15263] localedata: LC_MESSAGES.yesexpr / noexpr: uso incoerente di 1/0 e +/- [15264] localedata: LC_MESSAGES.yesstr / nostr: manca in molte localizzazioni [15368] nptl: raise () non è async-signal-safe [15479] matematica: ceil, floor, round e trunc generano un'eccezione inesatta [15578] localedata: kk_KZ: vari aggiornamenti [16003] localedata: pap_AN: punt vecchio locale [16137] localedata: iw_IL: punt vecchio locale [16190] localedata: eo: nuovo esperanto locale [16374] localedata: lv_LV: cambia il simbolo di valuta in LC_MONETARY in euro [16742] malloc: race condition: pthread_atfork () chiamato prima di prima malloc () genera un comportamento di blocco imprevisto / deadlock [16975] localedata: LC_MESSAGES.yesexpr / noexpr: rivisita la maiuscola in tutte le localizzazioni [16983] localedata: postal_fmt non ammette% l e% n modificatori [17565] localedata : pt_PT: inizio settimana (lavoro-) errato [17899] matematica: [powerpc] floorl restituisce zero negativo con FE_DOWNWARD [17950] build: Build fallisce con -msse [18205] localedata: be_BY *: errore first_weekday e first_workday [18433] libc : posix_spawn non ritorna correttamente dopo l'errore di esecuzione [18453] localedata: charmaps / IBM875: codici errati [18712] stringa: bit / stringa2.h incompatibile con -O2 -Werror = packed -Wsystem-headers [18896] localedata: he_IL: miglioramenti per la valuta [18911] localedata: ro_RO: Correzione del nome del giorno della settimana per "Tuesday" nei dati della locale rumena [18960] locale: s390: _nl_locale_subfreeres usa larl opcode sul simbolo disallineato [19056] libc: Deprecate readdir_r [19133] localedata: pt_ *: days & amp; i mesi dovrebbero essere minuscoli in lingua portoghese [19198] localedata: nl_NL: piccoli miglioramenti per la rete Dutch locales [19257]: perdita di memoria per thread in __res_vinit con i server dei nomi IPv6 (CVE-2016-5417) [19269] build: tst-audit4 e tst-audit10 fallimenti con gcc-6 su macchina non avx [19400] locale: lingua mancante in "iso-639.def", soluzione banale nella descrizione [19431] malloc: deadlock tra fflush, getdelim e fork [19505] libc: Verifiche di validità dei descrittori di file errati in posix_spawn_file_actions_add {open, close, dup2} [19509] dynamic-link: dlsym, dlvsym non riportano errori tramite dlerror quando si utilizza RTLD_NEXT [19512] locale: Stale `#ifndef HAVE_BUILTIN_EXPECT 'in` intl / {gettextP , loadinfo}.h '[19534] libc: execle, execlp può usare malloc [19568] localedata: * _CH: localizzazione svizzera hanno inizio incoerente della rete [19573]: res_nclose e __res_maybe_init non sono d'accordo sull'inizializzazione del server dei nomi, rottura di Esiodo [19575] localedata: Status di GB18030 tables [19581] localedata: sr_ * date_fmt stringa contiene ulteriori newline [19583] stringa: SSSE3_Fast_Copy_Backward flag deve essere abilitato per AMD Excavator core [19592] matematica: [ldbl-128ibm] ceill non corretto nelle modalità di arrotondamento non predefinite [19593 ] matematica: [ldbl-128ibm] truncl non corretto nelle modalità di arrotondamento non predefinite [19594] matematica: [ldbl-128ibm] roundl non corretto nelle modalità di arrotondamento non predefinito [19595] matematica: [ldbl-128ibm] fmodl non corretto per i risultati in subnormale doppia scala [19602] matematica: [ldbl-128ibm] gestione di fmodl di argomenti uguali con basso numero di parti errato [19603] matematica: [ldbl-128ibm] remainderl, remquol gestione errata dei segni nei test di uguaglianza [19610] dynamic-link: ldconfig - X rimuove i collegamenti simbolici stantii [19613] libc: s390x Espansione macro (64 bit) WCOREDUMP e altri [19633] locale: strfmon_l applica impostazioni internazionali globali alla rete di formattazione numeri [19642]: Perdita di memoria in getnameinfo [19648] libc: test-skeleton.c: Non impostare RLIMIT_DATA [19653] libc: Potenziale per il puntatore NULL dereferenziazione (CWE-476) in glibc-2.22 [19654] matematica: [x86_64] Need testcase per BZ # 19590 fix [19671] localedata: Missing Sanity Check per malloc () in 'tst-fmon.c' & amp; 'tst-numeric.c' [19674] matematica: [ldbl-128ibm] powl errato trattamento di overflow [19677] matematica: [ldbl-128ibm] remainderl test di uguaglianza errato per zero parte bassa [19678] matematica: [ldbl-128ibm] nextafterl , nexttowardl segno non corretto di risultato zero [19679] dynamic-link: gcc-4.9.3 Gestione delle eccezioni C ++ interrotta a causa di stack non allineato [19726] locale: Conversione di UCS4LE in INTERNAL con iconv () non aggiorna i puntatori e le lunghezze in caso di errore . [19727] locale: la conversione da / a UTF-xx con iconv () non riporta sempre errori sui valori dei surrogati UTF-16.[19755] nscd: nscd assertion failure in gc [19758] dynamic-link: Typo in EXTRA_LD_ENVVARS per x86-64 [19759] libc: mempcpy non dovrebbe essere inlined [19762] dynamic-link: HAS_CPU_FEATURE / HAS_ARCH_FEATURE sono facili da abusare [ 19765] libc: s390 ha bisogno di un mempcpy ottimizzato [19779] glob: glob: overflow del buffer con GLOB_ALTDIRFUNC a causa dell'errata assunzione del limite NAME_MAX (CVE-2016-1234) [19783] build: benchtests non supportano --enable-hardcoded-path -in-tests [19787] network: controlli di troncamento mancanti e errati in getnameinfo [19790] matematica: [ldbl-128ibm] nearbyintl non corretto nelle modalità di arrotondamento non predefinite [19791] network: errore di asserzione in res_query.c con nome non collegabile indirizzi server [19792] libc: MIPS: backtrace restituisce infinito backtrace con makecontext [19822] math: libm.quindi installa clobbers vecchia versione [19825] network: resolv: send_vc può restituire dati non inizializzati in seconda risposta a getaddrinfo [19830] network: nss_dns: dovrebbe controllare la lunghezza RDATA rispetto alla lunghezza del buffer [19831] network: nss_dns: getaddrinfo restituisce dati non inizializzati di fronte a Record A / AAAA di dimensione non valida [19837] nss: nss_db: Nessun tentativo per alcune linee lunghe con un buffer più grande [19848] matematica: powl (10, n) per n = -4, -5, -6, -7 è off di più di 1 ULP [19853] stdio: la stampa di IBM lunga doppia in decimale con alta precisione è talvolta errata [19860] build: x86_64: errori di compilazione per tst-audit10 e tst-auditmod10b [19861] nptl: libpthread resolver IFUNC per fork può portare a crash [19862] network: resolv, nss_dns: rimuove il logging rimanente dei tipi di record imprevisti [19865] network: Assertion failure o memory leak in _nss_dns_getcanonname_r [19868] network: nss_dns: il codice net non ignora i record non PTR [ 19879] network: nss_dns: overflow dello stack in getnetbyname implementa (CVE-2016-3075) [19881] string: Improve x86-64 memset [19907] stringa: errati memcpy test [19916] dynamic-link: S390: fprs / vrs non vengono salvati / ripristinati durante la risoluzione dei simboli [19925] libc : termios.h XCASE namespace [19928] stringa: memmove-vec-unaligned-erms.S è lento con grandi dimensioni dei dati [19929] libc: limits.h Spazio dei nomi NL_NMAX [19931] stdio: Perdita di memoria in vfprintf [19957] libc: clone (CLONE_VM) accesso memoria genitore non valida [19963] localedata: en_IL: Nuova localizzazione [19989 ] stdio: stdio.h spazio dei nomi cuserid [19994] network: getaddrinfo non ripristina RES_USE_INET6 flag in gethosts [19996] locale: langinfo.h nl_langinfo_l namespace [20005] stdio: fflush su un file aperto con fmemopen reimposta la posizione su 0 [20010] network: getaddrinfo: overflow dello stack nella traduzione dell'hostent (CVE-2016-3706) [20012] stdio: libio: fmemopen append mode failure [20014] stdio: stdio.h namespace per pre-thread POSIX [20017] network: resolv: use gmtime_r invece di gmtime in p_secstodate [20023] libc: fcntl.h timespec spazio dei nomi [20024] matematica: [x86_64] vettorizzati sincos trashes lo stack [20031] network: nss_hesiod: overflow dell'heap in get_txt_records [20041] time: sys / time.h timespec namespace [20043] libc: unistd.h mancante cuserid per UNIX98 e prima di [20044] libc: unistd .h mancante pthread_atfork per UNIX98 [20051] libc: ttyslot nell'intestazione errata in condizioni sbagliate [20054] libc: gethostname non dichiarato per XPG4 [20055] libc: termios.h mancante tcgetsid per XPG4 [20072] dynamic-link: x86 init_cpu_features viene chiamato due volte in eseguibile statico [20073] libc: sys / stat.h fchmod namespace [20074] libc: stdlib.h rand_r namespace [20076] libc: sys / stat .h mancante S_IFSOCK, S_ISSOCK per XPG4 [20094] libc: stdlib.h non dovrebbe dichiarare grantpt, ptsname, unlockpt per XPG3 [20111] libc: struct sockaddr_storage non può essere aggregato-copiato [20112] network: sunrpc: stack (frame) overflow in Sun RPC clntudp_call (CVE-2016-4429) [20115] stringa: Allineamento extra in memset-vec-unaligned-erms.S [20119] libc: Maschera errata per il tipo di livello del processore da CPUID [20139] dynamic-link: Parte superiore di zmm viene azzerato se Glibc è costruito con AS che non supporta AVX512 [20151] matematica: [ldbl-128 / ldbl-128ibm] j0l, j1l, y0l, y1l restituiscono sNaN per l'argomento sNaN [20153] matematica: [ldbl-128ibm] sqrtl (sNaN) restituisce sNaN [20156] matematica: [ldbl-128ibm] ceill, rintl etc. restituisce sNaN per l'argomento sNaN [20157] matematica: [powerpc] fabsl (sNaN) genera erroneamente "non valido" [20160] matematica: [p owerpc] ceil, rint ecc.return sNaN per sNaN input [20178] libc: posix_spawn {p} non dovrebbe chiamare exit [20191] stdio: libio: vtables hardening [20195] string: FMA4 detection richiede CPUID esecuzione con registro eax = 0x80000001 [20198] libc: quick_exit distrugge in modo errato Oggetti thread C ++ 11. [20205] matematica: [i386 / x86_64] nextafterl subnormali incrementali non incrementali errati [20212] math: acos (sNaN) restituisce sNaN [20213] math: asin (sNaN) restituisce sNaN [20214] network: sync di intestazione Linux con linux / in6. h e ipv6.h di nuovo.[20218] matematica: [i386] asinhl (sNaN) restituisce sNaN [20219] matematica: [i386] atanhl (sNaN) restituisce sNaN [20222] stdio: fopencookie: puntatori di funzione Mangle [20224] matematica: [i386] cbrtl (sNaN) restituisce sNaN [20225] matematica: ldexp, scalbn, scalbln restituisce sNaN per input sNaN [20226] matematica: [i386 / x86_64] expl, exp10l, expm1l restituisce sNaN per input sNaN [20227] matematica: [i386 / x86_64] logl (sNaN restituisce sNaN [20228] matematica: [i386 / x86_64] log10l (sNaN) restituisce sNaN [20229] matematica: [i386 / x86_64] log1pl (sNaN) restituisce sNaN [20232] matematica: [ldbl-128] expm1l (sNaN) restituisce sNaN [20233] matematica: [ldbl-128ibm] expm1l (sNaN) restituisce sNaN [20234] matematica: [ldbl-128ibm] log1pl (sNaN) restituisce sNaN [20235] matematica: [i386 / x86_64] log2l (sNaN) restituisce sNaN [ 20237] nss: nss_db: get * ent segfaults senza precedente set * ent [20240] math: modf (sNaN) restituisce sNaN [20248] libc: debug / tst-longjump_chk2 chiama printf da un gestore di segnale [20250] matematica: frexp (sNaN ) restituisce sNaN [20252] matematica: atan2 (sNaN, qNaN) non riesce a generare "non valido" [20255] ma th: [i386] fdim, fdimf restituisce con eccesso di gamma e precisione / doppio arrotondamento [20256] matematica: [i386 / x86_64] fdiml restituisce sNaN per l'input sNaN [20260] stringa: ../sysdeps/x86/bits/string.

    h: 1092: 3: errore: array subscript è al di sotto dei limiti dell'array [-Werror = array-bounds] [20262] nis: _nss_nis_initgroups_dyn restituisce sempre NSS_STATUS_NOTFOUND [20263] nptl: deadlock solido del mutex se altre richieste di thread hanno timedlock (solo braccio / linux) [20277] libc: $ dp non è inizializzato correttamente in sysdeps / hppa / start.S [20284] malloc: malloc: L'evitamento di arena corrotto causa inutili fallimenti di mmap [20296] matematica: [i386 / x86_64] scalbl restituisce sNaN per input sNaN, mancate eccezioni "non valide" [20314] nptl: make [4]: ​​*** [/usr/include/stdlib.h] Errore 1 [20316] localedata: id_ID: Februari invece di Pebruari [20327] stringa: POWER8 strcasecmp restituisce un risultato errato [20347] matematica: Errore: Test: j0_downward (0xap + 0) [20348] libc: FAIL: misc / tst-preadvwritev64 [20349] libc: il valore a 64 bit viene passato in modo diverso in p {readv, writev} {64} [20350] libc: Non esiste un test per la matematica p {read, write} 64 [20357]: Risultato cos non corretto per 1.5174239687223976 [20384] build: Non eseguire test libmvec-sincos-avx * su non avx m acchine

Novità nella versione 2.23:

  • CVE-2015-7547: glibc getaddrinfo () overflow del buffer basato su stack - Risolto sul ramo di sviluppo per la versione 2.23 di glibc.

Novità nella versione 2.21:

  • I seguenti bug sono stati risolti con questa versione: 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 In determinate condizioni wscanf può allocare troppo poca memoria per gli argomenti da scannerizzare e traboccare il buffer allocato. L'implementazione ora calcola correttamente la dimensione del buffer richiesta quando si usa malloc.
  • Un nuovo algoritmo semaforo è stato implementato nel codice C generico per tutte le macchine. Le precedenti implementazioni del semaforo sull'assemblaggio personalizzato erano difficili da ragionare o garantire che fossero sicure. La nuova versione di semaforo supporta le macchine con operazioni atomiche a 64 bit o 32 bit. Il nuovo algoritmo semaforo è utilizzato da sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait e sem_getvalue.
  • Port to Altera Nios II è stato contribuito da Mentor Graphics.
  • Implementazioni ottimizzate per strcpy, stpcpy, strncpy, stpncpy, strcmp e strncmp per powerpc64 / powerpc64le. Implementato da Adhemerval Zanella (IBM).
  • Aggiunto il supporto per elisione di blocco TSX di mutex pthread su powerpc32, powerpc64 e powerpc64le. Ciò potrebbe migliorare il ridimensionamento del blocco di programmi esistenti su sistemi con capacità HTM. Il codice di blocco elision è abilitato solo con --enable-lock-elision = yes. Inoltre, l'implementazione elision di TSX lock per powerpc emetterà un interruzione di transazione su ogni syscall per evitare che gli effetti collaterali siano visibili al di fuori delle transazioni.
  • Implementazioni ottimizzate per strcpy, stpcpy, strchrnul e strrchr per AArch64. Contribuito da ARM Ltd.
  • funzioni memcpy i386 ottimizzate con carico / archivio non allineato SSE2
  • CVE-2104-7817 La funzione wordexp potrebbe ignorare il flag WRDE_NOCMD in determinate condizioni di input, causando l'esecuzione di una shell per la sostituzione del comando quando l'applicazione non lo ha richiesto. L'implementazione ora controlla WRDE_NOCMD immediatamente prima dell'esecuzione della shell e restituisce l'errore WRDE_CMDSUB come previsto.
  • Le funzioni in stile printf di CVE-2012-3406 potrebbero essere eseguite in overflow dello stack durante l'elaborazione di stringhe di formato con un numero elevato di specificatori di formato.
  • CVE-2014-9402 L'implementazione nss_dns di getnetbyname poteva essere eseguita in un ciclo infinito se la risposta DNS conteneva un record PTR di un formato imprevisto.
  • La versione GCC minima che può essere utilizzata per creare questa versione della libreria GNU C è GCC 4.6. Le versioni GCC precedenti e i compilatori non GNU possono ancora essere utilizzati per compilare programmi utilizzando la libreria GNU C.
  • La libreria GNU C ora è costruita con -Werror di default. Questo può essere disabilitato configurando con --disable-werror.
  • Nuove localizzazioni: tu_IN, bh_IN, raj_IN, ce_RU.
  • La funzione obsoleta sigvec è stata rimossa. Questa è stata l'interfaccia originale di 4.2BSD che ha ispirato l'interfaccia di sigaction POSIX.1, che i programmi hanno usato per circa 25 anni. Naturalmente, la compatibilità ABI per i vecchi binari che utilizzano sigvec rimane intatta.
  • Unita gettext 0.19.3 nella sottodirectory intl. Questo risolve la costruzione con le versioni più recenti di bisonte.
  • Supporto per estensioni ABI MIPS o32 FPXX, FP64A e FP64. L'ABI hard-float originale MIPS o32 richiede una FPU in cui i registri a doppia precisione sovrappongono due registri di precisione singola consecutivi. MIPS32R2 ha introdotto una nuova modalità FPU (FR = 1) in cui i registri a doppia precisione estendono i corrispondenti registri a precisione singola che sono incompatibili con l'ABI hard-float o32. Il MIPS SIMD ASE e l'architettura MIPSR6 richiedono entrambi l'uso di FR = 1 rendendo necessaria una transizione. Le nuove estensioni ABI o32 consentono agli utenti di migrare nel tempo dall'ABI originale o32 all'ADI FP64 aggiornato o32. Per ottenere ciò, il linker dinamico ora traccia l'ABI di qualsiasi oggetto caricato e verifica che i nuovi oggetti siano compatibili. Anche le transizioni di modalità verranno richieste come richiesto e gli oggetti non sostituibili verranno rifiutati. I controlli ABI includono sia ABI soft e hard float per o32, n32 e n64.

Commenti a GNU C Library

I commenti non trovato
Aggiungi commento
Accendere le immagini!