Efter seks måneders udvikling udgivelse af systembibliotek (glibc) , som fuldt ud overholder kravene i standarderne ISO C11 og POSIX.1-2008. Den nye version inkluderer rettelser fra 48 udviklere.
Blandt de implementerede funktioner i Glibc 2.30 Der er tilføjet makro _ISOC2X_SOURCE for at inkludere funktioner defineret i udkastet til den fremtidige ISO-standard
- I den dynamiske linker er støtte til indstillingen «—preload» tilføjet for forudindlæsning af delte objekter (som svarer til miljøvariablen LD_PRELOAD);
- Funktionen twalk_r er tilføjet, som ligner den eksisterende funktion twalk, men muliggør at sende et ekstra argument til den angivne callback-funktion;
- Der er tilføjet nye funktioner getdents64, gettid og tgkill for Linux;
- Der er sikret afslutning med fejlkod for hukommelseshåndteringsfunktionerne malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign og posix_memalign, når den samlede objektstørrelse overstiger værdien PTRDIFF_MAX. Denne ændring forhindrer udefineret adfærd, når pointermanipulation resulterer i overløb af typen ptrdiff_t;
- De i POSIX foreslåede funktioner pthread_cond_clockwait, pthread_mutex_clocklock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock og sem_clockwait er tilføjet, som ligner de «timed» ækvivalenter, men som yderligere modtager parameteren clockid_t til valg af timer; - Kodningsdata, information om tegnarter og translittereringstabeller er opdateret for at understøtte Unicode-specifikationen 12.1.0;
- I biblioteket librt tilbydes de tidligere funktioner clock_gettime, clock_getres, clock_settime, clock_getcpuclockid og clock_nanosleep ikke længere for nye applikationer; i stedet anvendes definitioner i libc automatisk;
- I /etc/resolv.conf er understøttelse af indstillingen «inet6» ophørt. Uudnyttede flag RES_USE_INET6, RES_INSECURE1 og RES_INSECURE2 er fjernet fra resolv.h;
- Når indstillingen «—enable-bind-now» angives, bindes installerede programmer nu med brug af flaget BIND_NOW;
- Den Linux-specifikke headerfil sys/sysctl.h og funktionen sysctl er blevet erklæret forældede, og applikationer bør i stedet bruge pseudo-filsystemet /proc;
- For at bygge Glibc kræves nu GCC 6.2 eller en nyere version (alle kompilatorer kan bruges til at bygge applikationer);
- Sikkerhedsfejl rettet i implementeringen af funktionen memcmp for subarkitekturen x32 (forveksles ikke med x86 IA-32), hvilket kan resultere i, at funktionen fejlagtigt returnerer værdien 0 for uoverensstemmende strenge;
- Sikkerhedsfejl rettet , som kan føre til læsning af data fra områder uden for buffergrænserne, når visse regulære udtryk behandles.
Kilde: opennet.ru
