Lansarea bibliotecii sistemului Glibc 2.30

După șase luni de dezvoltare publicat lansarea bibliotecii de sistem GNU C Library (glibc) 2.30, 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 îmbunătățiri 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 CVE-2019-7309 în implementarea funcției memcmp pentru subarhitectura învechită 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 CVE-2019-9169, care poate duce la citirea datelor din afara limitei bufferului atunci când sunt procesate anumite expresii regulate.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster