Versione di a biblioteca di sistema Glibc 2.31

Dopu à sei mesi di sviluppu publicatu liberazione di a biblioteca di u sistema Biblioteca GNU C (glibc) 2.31, chì cumplettamente cumpletu cù i requisiti di i standard ISO C11 è POSIX.1-2008. A nova versione include correzioni da 58 sviluppatori.

Da quelli implementati in Glibc 2.31 migliurà pudete nutà:

  • Aggiunta macro _ISOC2X_SOURCE per attivà e capacità definite in u prugettu di u futuru standard ISO C2X. Queste funziunalità sò ancu attivate quandu si usa a macro _GNU_SOURCE o quandu si custruisce in gcc cù a bandiera "-std=gnu2x";
  • Per e funzioni definite in u schedariu di l'intestazione "math.h" chì arrotondanu i so risultati à un tipu più chjucu, i macros generici currispundenti sò pruposti in u schedariu "tgmath.h", cum'è necessariu da e specificazioni TS 18661-1: 2014 è TS. 18661-3: 2015;
  • A funzione pthread_clockjoin_np() aghjunta, chì aspetta chì u filu sia cumpletu, tenendu in contu u timeout (se u timeout si trova prima di cumpiimentu, a funzione torna un errore). A cuntrariu pthread_timedjoin_np(), in pthread_clockjoin_np () hè pussibule di definisce u tipu di timer per u calculu di u timeout - CLOCK_MONOTONIC (piglia in contu u tempu passatu da u sistema in modu di sonnu) o CLOCK_REALTIME;
  • U resolutore DNS supporta avà l'opzione trust-ad in /etc/resolv.conf è a bandiera RES_TRUSTAD in _res.options, quandu hè stabilitu, a bandiera DNSSEC hè trasmessa in richieste DNS. AD (dati autenticati). In questu modu, a bandiera AD stabilita da u servitore diventa dispunibule per l'applicazioni chì chjamanu funzioni cum'è res_search (). Per automaticamente, se l'opzioni suggeriti ùn sò micca stabiliti, glibc ùn specifica micca a bandiera AD in e dumande è automaticamente sguassate in risposti, chì indicanu chì i cuntrolli DNSSEC sò mancanti;
  • A custruzzione di l'associazioni di chjama di u sistema di travagliu per Glibc ùn hè più bisognu di installà i fugliali di l'intestazione di u kernel Linux. L'eccezzioni hè l'architettura RISC-V 64-bit;
  • Eliminatu vulnerabilità CVE-2019-19126, chì vi permette di passà a prutezzione
    ASLR in i prugrammi cù a bandiera setuid è determina u layout di l'indirizzu in biblioteche caricate attraversu a manipulazione di a variabile d'ambiente LD_PREFER_MAP_32BIT_EXEC.

Cambiamenti chì rompenu a cumpatibilità:

  • totalorder(), totalordermag(), è funzioni simili per altri tipi di virgule flottante avà accettanu puntatori cum'è argumenti per eliminà avvisi nantu à a cunversione di i valori in u statu. NaN, in cunfurmità cù i cunsiglii di TS 18661-1 pruposti per u futuru standard C2X.
    Eseguibili esistenti chì passanu l'argumenti in virgule flottante direttamente continuanu à curriri senza mudificazione;

  • A funzione stime disprecata longu ùn hè più dispunibule per i binari liati à glibc, è a so definizione hè stata eliminata da time.h. Per stabilisce l'ora di u sistema, utilizate a funzione clock_settime. In u futuru, pensemu di sguassà a funzione ftime deprecata, è ancu u schedariu di header sys/timeb.h (gettimeofday o clock_gettime deve esse usatu invece di ftime);
  • A funzione gettimeofday ùn passa più infurmazione nantu à u fusu orariu di u sistema (sta funzione era pertinente in i ghjorni di 4.2-BSD è hè stata deprecata per parechji anni). L'argumentu "tzp" deve esse passatu avà un punteru nulu, è a funzione localtime () deve esse usata per ottene infurmazione di u fusu orariu basatu annantu à l'ora attuale. Chjama gettimeofday cun un argumentu "tzp" micca zero restituverà i campi vacanti tz_minuteswest è tz_dsttime in a struttura di u fusu orariu. A funzione gettimeofday stessa hè deprecata in POSIX (clock_gettime hè cunsigliatu invece di gettimeofday), ma ùn ci hè micca prughjettu di sguassà da glibc;
  • settimeofday ùn supporta più u passaghju simultaneu di parametri per stabilisce l'ora è l'offset di currezzione di u tempu. Quandu chjamà settimeofday, unu di l'argumenti (tempu o offset) deve esse stallatu à null, altrimenti a chjama di a funzione falla cù un errore EINVAL. Cum'è gettimeofday, a funzione settimeofday hè deprecata in POSIX è hè cunsigliatu per esse rimpiazzata da a funzione clock_settime o a famiglia di funzioni adjtime;
  • U supportu per l'architettura SPARC ISA v7 hè stata interrotta (u supportu v8 hè mantenutu per avà, ma solu per i prucessori chì supportanu l'istruzzioni CAS, cum'è i prucessori LEON, micca i prucessori SuperSPARC).
  • Se l'accoppiamentu falla in "lagnusi", in quale u linker ùn cerca micca i simboli di una funzione finu à a prima chjamata à quella funzione, a funzione dlopen forza avà u prucessu per finisce (previamente tornanu NULL in fallimentu);
  • Per l'ABI hard-float MIPS, a pila eseguibile hè ora aduprata, salvu chì a custruzione restringe esplicitamente l'usu di u kernel Linux 4.8+ via u paràmetru "-enable-kernel=4.8.0" (cù kernels finu à 4.8, i crash sò osservatu per alcune cunfigurazioni MIPS);
  • I ligami intornu à e chjama di u sistema in relazione à a manipulazione di u tempu sò stati spustati per utilizà a chjama di u sistema time64, se prisenti (nantu à i sistemi di 32-bit, glibc prima prova novi chjamati di u sistema chì manipulanu u tipu di tempu 64-bit, è s'ellu ùn ci hè nimu, cade. torna à i vechji chjamati 32-bit).

Source: opennet.ru

Add a comment