Na zes maanden ontwikkeling release van de systeembibliotheek (glibc) , die volledig voldoet aan de eisen van de ISO C11 en POSIX.1-2008 normen. De nieuwe release bevat correcties van 48 ontwikkelaars.
In Glibc 2.30 geïmplementeerd kunnen worden opgemerkt:
- In de dynamische linkloader is ondersteuning toegevoegd voor de optie «—preload» om gedeelde objecten vooraf te laden (vergelijkbaar met de omgevingsvariabele LD_PRELOAD);
- Een functie twalk_r is toegevoegd, die lijkt op de bestaande twalk functie, maar waarmee een extra argument naar de opgegeven callback-functie kan worden doorgegeven;
- Voor Linux zijn nieuwe functies getdents64, gettid en tgkill toegevoegd;
- Het is nu mogelijk dat de functies voor geheugenbeheer malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign en posix_memalign eindigen met een foutcode wanneer de totale grootte van het object groter is dan PTRDIFF_MAX. Deze wijziging voorkomt onvoorspelbaar gedrag wanneer pointermanipulaties leiden tot een overflow van het type ptrdiff_t;
- De in POSIX voorgestelde functies pthread_cond_clockwait, pthread_mutex_clocklock zijn toegevoegd,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock en sem_clockwait, vergelijkbaar met de 'timed' equivalenten, maar met een extra parameter clockid_t voor het selecteren van de timer; - De coderingsgegevens, informatie over lettertypen en transliteratietabellen zijn bijgewerkt ter ondersteuning van specificatie Unicode 12.1.0;
- In de librt-bibliotheek worden de functies clock_gettime, clock_getres, clock_settime, clock_getcpuclockid en clock_nanosleep niet meer aangeboden voor nieuwe applicaties, in plaats daarvan worden automatisch de definities in libc gebruikt;
- De optie «inet6» wordt niet langer ondersteund in /etc/resolv.conf. Verouderde vlaggen RES_USE_INET6, RES_INSECURE1 en RES_INSECURE2 zijn uit resolv.h verwijderd;
- Bij het opgeven van de optie «—enable-bind-now» worden geïnstalleerde programma's nu gebonden met de vlag BIND_NOW;
- De headers sys/sysctl.h en de functie sysctl, specifiek voor Linux, zijn als verouderd gemarkeerd, in plaats daarvan dienen applicaties het pseudo-bestandssysteem /proc te gebruiken;
- Voor de bouw van Glibc is nu GCC 6.2 of een nieuwere versie vereist (voor de bouw van applicaties kunnen alle compilers worden gebruikt);
- Er is een kwetsbaarheid verholpen in de implementatie van de functie memcmp voor subarchitectuur x32 (niet te verwarren met x86 IA-32), waardoor de functie mogelijk ten onrechte de waarde 0 retourneerde voor niet-overeenkomende strings;
- Er is een kwetsbaarheid verholpen , wat kan leiden tot het lezen van gegevens buiten de buffergrenzen bij het verwerken van bepaalde reguliere expressies.
Bron: opennet.ru
