Na zes maanden ontwikkeling vrijgave van de systeembibliotheek (glibc) , die volledig voldoet aan de eisen van de ISO C11- en POSIX.1-2008-normen. De nieuwe release bevat oplossingen van 48 ontwikkelaars.
Van degenen die zijn geïmplementeerd in Glibc 2.30 je kunt opmerken:
- De dynamische linker biedt ondersteuning voor de “--preload” optie voor het vooraf laden van gedeelde objecten (analoog aan de omgevingsvariabele LD_PRELOAD);
- Functie twalk_r toegevoegd, vergelijkbaar met de reeds bestaande functie twalk, maar waarmee u een extra argument kunt doorgeven aan een bepaalde callback-functie;
- Nieuwe functies getdents64, gettid en tgkill zijn toegevoegd voor Linux;
- Zorg ervoor dat de geheugenbeheerfuncties malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign en posix_memalign afsluiten met een foutcode wanneer de totale objectgrootte de PTRDIFF_MAX-waarde overschrijdt. Deze wijziging vermijdt ongedefinieerd gedrag wanneer het resultaat van pointermanipulatie leidt tot een overflow van het type ptrdiff_t;
- POSIX-functies pthread_cond_clockwait, pthread_mutex_clocklock, toegevoegd
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock en sem_clockwait, vergelijkbaar met de "timed" equivalenten, maar bovendien een clockid_t parameter accepteren om de timer te selecteren; - Coderingsgegevens, tekentype-informatie en transliteratietabellen zijn bijgewerkt om de Unicode 12.1.0-specificatie te ondersteunen;
- De librt-bibliotheek biedt niet langer de functies clock_gettime, clock_getres, clock_settime, clock_getcpuclockid en clock_nanosleep voor nieuwe toepassingen, maar gebruikt in plaats daarvan automatisch de definities in libc;
- De optie "inet6" is verwijderd uit /etc/resolv.conf. Verouderde vlaggen RES_USE_INET6, RES_INSECURE1 en RES_INSECURE2 verwijderd uit resolv.h;
- Wanneer u de optie "--enable-bind-now" specificeert, worden geïnstalleerde programma's nu gebonden met behulp van de vlag BIND_NOW;
- Het Linux-specifieke headerbestand sys/sysctl.h en de sysctl-functie zijn verouderd, en applicaties zouden in plaats daarvan de /proc pseudo-FS moeten gebruiken;
- Voor het bouwen van Glibc is nu GCC 6.2 of nieuwer vereist (elke compiler kan worden gebruikt om applicaties te bouwen);
- Kwetsbaarheid opgelost bij de implementatie van de memcmp-functie voor x32-subarchitectuur (niet te verwarren met x86 IA-32), waardoor de functie ten onrechte de waarde 0 kon retourneren voor niet-overeenkomende strings;
- Kwetsbaarheid opgelost , waardoor gegevens kunnen worden gelezen uit een gebied buiten de grenzen van de buffer wanneer bepaalde reguliere expressies worden verwerkt.
Bron: opennet.ru
