După șase luni de dezvoltare lansarea bibliotecii de sistem (glibc) , care respectă pe deplin standardele ISO C11 și POSIX.1-2008. În noua versiune sunt incluse corecții de la 48 de dezvoltatori.
Realizate în Glibc 2.30 se pot menționa:
- În linker-ul dinamic a fost adăugată suportul pentru opțiunea „—preload” pentru preîncărcarea obiectelor partajate (analog cu variabila de mediu LD_PRELOAD);
- A fost adăugată funcția twalk_r, similară cu funcția existentă twalk, dar care permite transmiterea unui argument suplimentar către funcția callback specificată;
- Pentru Linux au fost adăugate funcțiile noi getdents64, gettid și tgkill;
- A fost asigurat un final cu cod de eroare pentru funcțiile de gestionare a memoriei malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign și posix_memalign, în situația în care dimensiunea totală a obiectului depășește valoarea PTRDIFF_MAX. Această modificare ajută la evitarea comportamentului nedefinit atunci când rezultatul manipulărilor cu pointerii duce la o depășire a tipului ptrdiff_t;
- Au fost adăugate funcțiile posibile în POSIX pthread_cond_clockwait, pthread_mutex_clocklock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock și sem_clockwait, similar cu echivalentele „timed”, dar acceptând suplimentar parametrul clockid_t pentru alegerea temporizatorului; - Datele de codificare, informațiile despre tipurile de caractere și tabelele de transliterare au fost actualizate pentru a suporta specificația Unicode 12.1.0;
- În librăria librt, pentru noile aplicații nu mai sunt furnizate funcțiile clock_gettime, clock_getres, clock_settime, clock_getcpuclockid și clock_nanosleep, în schimb fiind folosite automat definițiile din libc;
- În /etc/resolv.conf suportul pentru opțiunea „inet6” a fost eliminat. Flag-urile învechite RES_USE_INET6, RES_INSECURE1 și RES_INSECURE2 au fost eliminate din resolv.h;
- Când este specificată opțiunea „—enable-bind-now”, programele instalate se leagă acum folosind flag-ul BIND_NOW;
- Au fost declarate învechite fișierul de antet specific Linux sys/sysctl.h și funcția sysctl, în locul cărora aplicațiile ar trebui să folosească pseudo-sistemul de fișiere /proc;
- Pentru a construi Glibc acum se necesită GCC 6.2 sau o versiune mai nouă (oricare compilator poate fi utilizat pentru a construi aplicații);
- A fost remediată vulnerabilitatea în implementarea funcției memcmp pentru x32 (nu se confundă cu x86 IA-32), rezultând astfel că funcția putea returna incorect valoarea 0 pentru șiruri necorespunzătoare;
- A fost remediată vulnerabilitatea , care poate duce la citirea datelor din afara limitei bufferului atunci când sunt procesate anumite expresii regulate.
Sursa: opennet.ro
