Dopo sei mesi di sviluppo pubblicato rilascio della libreria di sistema Libreria GNU C (glibc) 2.30, che è pienamente conforme ai requisiti degli standard ISO C11 e POSIX.1-2008. La nuova versione include correzioni di 48 sviluppatori.
Da quelli implementati in Glibc 2.30 miglioramenti puoi notare:
Il linker dinamico fornisce il supporto per l'opzione “--preload” per precaricare oggetti condivisi (analoga alla variabile d'ambiente LD_PRELOAD);
Aggiunta la funzione twalk_r, simile alla funzione twalk già esistente, ma che consente di passare un argomento aggiuntivo a una determinata funzione di callback;
Per Linux sono state aggiunte nuove funzioni getdents64, gettid e tgkill;
Assicurarsi che le funzioni di gestione della memoria malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign e posix_memalign escano con un codice di errore quando la dimensione totale dell'oggetto supera il valore PTRDIFF_MAX. Questa modifica evita un comportamento indefinito quando il risultato della manipolazione del puntatore porta ad un overflow del tipo ptrdiff_t;
Aggiunte funzioni POSIX pthread_cond_clockwait, pthread_mutex_clocklock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock e sem_clockwait, simili agli equivalenti "timed", ma che accettano inoltre un parametro clockid_t per selezionare il timer;
I dati di codifica, le informazioni sul tipo di carattere e le tabelle di traslitterazione sono stati aggiornati per supportare la specifica Unicode 12.1.0;
La libreria librt non fornisce più le funzioni clock_gettime, clock_getres, clock_settime, clock_getcpuclockid e clock_nanosleep per le nuove applicazioni, ma utilizza invece automaticamente le definizioni in libc;
L'opzione "inet6" è stata rimossa da /etc/resolv.conf. Rimossi i flag obsoleti RES_USE_INET6, RES_INSECURE1 e RES_INSECURE2 da resolv.h;
Quando si specifica l'opzione "--enable-bind-now", i programmi installati vengono ora associati utilizzando il flag BIND_NOW;
Il file di intestazione sys/sysctl.h specifico per Linux e la funzione sysctl sono stati deprecati e le applicazioni dovrebbero invece utilizzare lo pseudo-FS /proc;
La compilazione di Glibc ora richiede GCC 6.2 o successivo (qualsiasi compilatore può essere utilizzato per creare applicazioni);
Vulnerabilità risolta CVE-2019-7309 nell'implementazione della funzione memcmp per antiquato sottoarchitettura x32 (da non confondere con x86 IA-32), per cui la funzione potrebbe restituire erroneamente il valore 0 per stringhe non corrispondenti;
Vulnerabilità risolta CVE-2019-9169, che può causare la lettura dei dati da un'area esterna ai limiti del buffer quando vengono elaborate determinate espressioni regolari.