Nakon šest mjeseci razvoja objavljeno izdanje sistemske biblioteke GNU C biblioteka (glibc) 2.32, koji je u potpunosti usklađen sa zahtjevima ISO C11 i POSIX.1-2017. Novo izdanje uključuje popravke od 67 programera.
Implementirano u Glibc 2.32 poboljšanja možete primetiti:
Dodata podrška za Synopsys ARC HS (ARCv2 ISA) procesore. Port zahtijeva najmanje binutils 2.32, gcc 8.3 i Linux kernel 5.1 za pokretanje. Podržane su tri ABI varijante: arc-linux-gnu, arc-linux-gnuhf i arceb-linux-gnu (big-endian);
Učitavanje modula revizije specificiranih u odjeljcima DT_AUDIT i
DT_DEPAUDIT izvršne datoteke.
Za arhitekturu powerpc64le implementirana je podrška za IEEE128 long double tip, koji je omogućen kada se gradi sa opcijom “-mabi=ieeelongdouble”.
Neki API-ji su označeni atributom GCC 'access', koji omogućava generiranje boljih upozorenja kada se kompajliraju u GCC 10 radi otkrivanja mogućih prekoračenja bafera i drugih scenarija izvan granica.
Za Linux sisteme, funkcije pthread_attr_setsigmask_np i
pthread_attr_getsigmask_np, koji aplikaciji daju mogućnost da specificira signalnu masku za niti kreirane pomoću pthread_create.
Podaci o kodiranju, informacije o tipu znakova i tablice transliteracije su ažurirane kako bi podržale Unicode 13.0.0 specifikaciju;
Dodan novi fajl zaglavlja , koji definira varijablu __libc_single_threaded, koja se može koristiti u aplikacijama za jednonitne optimizacije.
Dodane funkcije sigabbrev_np i sigdescr_np koje vraćaju skraćeno ime i opis signala (na primjer, “HUP” i “Hangup” za SIGHUP).
Dodane funkcije strerrorname_np i strerrordesc_np koje vraćaju ime i opis greške (na primjer, "EINVAL" i "Invalid argument" za EINVAL).
Za ARM64 platformu, dodana je zastavica "--enable-standard-branch-protection" (ili -mbranch-protection=standard u GCC-u), koja omogućava mehanizmu ARMv8.5-BTI (Branch Target Indicator) da zaštiti izvršavanje skupova instrukcija koje ne bi trebalo izvršavati grananje prijelaza. Blokiranje prijelaza na proizvoljne dijelove koda implementirano je kako bi se spriječilo stvaranje gadgeta u eksploatacijama koje koriste tehnike programiranja orijentiranog na povratak (ROP - Return-Oriented Programming; napadač ne pokušava smjestiti svoj kod u memoriju, već radi na već postojećim dijelovima strojnih instrukcija koje završavaju povratnom kontrolnom instrukcijom, iz koje se gradi lanac poziva kako bi se dobila željena funkcionalnost).
Izvršeno je veliko čišćenje zastarjelih funkcija, uključujući uklanjanje opcija "--enable-obsolete-rpc" i "--enable-obsolete-nsl", datoteke zaglavlja . Funkcije sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore i sigset, nizovi sys_siglist, _sys_siglist i sys_sigabbrev, simboli sys_errlist, _sys_errlist, sys_nerr i _sys_ss su uvedeni u modul.
ldconfig je po defaultu premješten da koristi novi ld.so.cache format, koji je podržan u glibc-u skoro 20 godina.
Popravljene ranjivosti:
CVE-2016-10228 – Do petlje u uslužnom programu iconv dolazi kada se pokrene s opcijom “-c” kada se obrađuju netačne višebajtne podatke.
CVE-2020-10029 Oštećenje steka prilikom pozivanja trigonometrijskih funkcija sa pseudo-nultim argumentom.
CVE-2020-1752 - Pristup memoriji bez upotrebe u funkciji glob kada se proširuje referenca na početni direktorij (“~korisnik”) u putanjama.
CVE-2020-6096 – Pogrešno rukovanje na ARMv7 platformi negativnih vrijednosti parametara u memcpy() i memmove(), što određuje veličinu kopiranog područja. Omogućuje organizirati izvršavanje koda prilikom obrade podataka formatiranih na određeni način u funkcijama memcpy() i memmove(). Značajno je da je problem ostao neispravljen skoro dva meseca od kada je informacija javno objavljena i pet meseci otkako su Glibc programeri obavešteni.