Rilascio della libreria di sistema Glibc 2.30

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.

Fonte: opennet.ru

Aggiungi un commento