Pas gjashtë muajsh zhvillimi, është publikuar rrelease i bibliotekës së sistemit GNU C Library 2.42 (glibc), e cila plotëson plotësisht kërkesat e standardeve ISO C23 dhe POSIX.1-2024. Në krijimin e këtij versioni morën pjesë 70 zhvillues.
Disa nga përmirësimet e realizuara në Glibc 2.42 përfshijnë:
- Në funksionin pthread_create është shtuar mbështetje për pagina guard të lehta për mbrojtjen e stack-ut (stack guard page), që do të shkaktojë një përjashtim dhe përfundim të menjëhershëm të procesit (SIGSEGV) nëse përmblidhen. Realizimi është i bazuar në flamurin MADV_GUARD_INSTALL që është i pranuar që nga thirrja e sistemit madvise, e mbështetur që nga bërthama Linux 6.13. Krahasuar me hartimin në modin PROT_NONE, pagina guard janë më efektive për të bllokuar ekzekutimin e kodit jashtë zonës së alokuar të memorjes, pasi krijimi i tyre nuk kërkon alokim të një zone të re të memorjes virtuale.
- Janë shtuar dhe përmendur në skedarin e titujve math.h funksionet e reja të ngritjes në fuqi dhe llogaritjes së rrënjëve compoundn, pown dhe powr, rootn dhe rsqrt, të caktuara në standardin ISO C23. Variantet e funksioneve janë realizuar për tipe float, double, long double, _FloatN dhe _FloatNx, si dhe për tipin e përgjithshëm nga tgmath.h.
- Në platformën Linux është realizuar funksioni pthread_gettid_np, i cili ashtu si funksioni gettid() kthen një identifikues unik të thread-it, por dallohet për kontrollin e zgjeruar të gabimeve (në rast se ndodh sjellje e pasigurt, procesi ndalon).
- Janë shtuar funksione për llogaritjen e vlerave absolute, duke punuar me tipe pa nënshkrim: uabs, ulabs, ullabs dhe uimaxabs. Këto funksione do të përfshihen në standardin e ardhshëm të C.
- Në platformën Linux, në ndërfaqen e programit termios.h, është realizuar mbështetje për vlera të rastit të shpejtësisë së transmetimit. Tipa speed_t është përcaktuar dhe tani është në përputhje me tipus 'unsigned int', si në bërthamën Linux.
- Në cache-në lokale për threads (tcache), e përdorur në funksionin malloc, është shtuar mbështetje për caching të blloqeve të mëdha të memorjes. Madhësia maksimale e bllokut mund të rregullohet përmes cilësimit glibc.malloc.tcache_max, e cila mund të pranojë vlera deri në 4194304. Punimi i cache-t është përshpejtuar për blloqe të vogla.
- NĂ« skenarin e ndĂ«rtimit configure Ă«shtĂ« shtuar opsioni 'âenable-sframe', qĂ« aktivizon mbĂ«shtetje pĂ«r formatin SFrame, tĂ« pĂ«rdorur pĂ«r tĂ« paraqitur informacionin e gjurmimit tĂ« stack-ut dhe tĂ« mbĂ«shtetur nga funksioni backtrace. PĂ«r tĂ« pĂ«rdorur SFrame kĂ«rkohet njĂ« version i paktĂ«n i binutils 2.45.
- Nga projekti CORE-MATH janë transferuar varianta të optimizuara të funksioneve matematike acospif, asinpif, atanpif, atan2pif, cospif, sinpif dhe tanpif.
- Grupi i testeve është zgjeruar ndjeshëm, tani i cili mbulon punën e varianti të ndryshëm të familjeve të funksioneve printf dhe scanf.
- Janë shtuar kode për identifikimin e procesorëve Intel bazuar në mikroarkitekturën Arrow Lake, Panther Lake, Clearwater Forest dhe Diamond Rapids.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r platformĂ«n z17 (brezi i ri i mainframe-ve IBM Z/S390).
- Në cilësimin glibc.rtld.execstack është shtuar mbështetje për modin e përputhshmërisë për të mbështetur programet që kërkojnë një stack të ekzekutueshëm përmes librarive të ngarkuara dinamikisht.
- Përgjimin e skedarit termio.h dhe përcaktimin e strukturës termio nga sys/ioctl.h është hequr. Ndërfaqja e programit termio.h është shpallur obsolet që në POSIX.1 (1988) dhe është zëvendësuar nga termios.h.
- Për ndërtimin e Glibc tani kërkohen të paktën versionet GCC 12.1 dhe GNU Binutils 2.39.
- Identifikuar dobësi:
- CVE-2025-0395 - ekziston një overflow buffer kur ekzekutohet funksioni assert(). Overflow ndodh kur jepet një emër programi tepër i madh (argv[0]). Problemi konsiderohet i pa rrezikshëm, pasi jashtë bufferit shkruhen 4 bajta, përmbajtja e të cilave nuk mund të kontrollohet nga sulmuesi. Megjithatë, është interesante fakti se një vulnerabilitet ndodhi në funksionet e rregullimit që vjen nga një gabim gjatë shfaqjes së emrit të aplikacionit të tanishëm.
- CVE-2025-5702, CVE-2025-5745 - janë vulnerabilitete në realizimin e funksioneve strcmp dhe strncmp për procesorët Power10, që çojnë në dështimin e ruajtjes dhe rikthimit të regjistrave vektorë v20-v31, të cilët duhet të ruhen midis thirrjeve të funksioneve. Vulnerabiliteti mund të përdoret për të rishkruar ose për të përcaktuar përmbajtjen e të dhënave të regjistrave, që përdoren nga funksioni.
- CVE-2025-8058 - është një vulnerabilitet në funksionin regcomp, që çon në një dyfishim të lirimit të memorjes (double-free).
Shtesë mund të përmendet lëshimi i paketës së utilitarëve sistemorë GNU Binutils 2.45, në të cilën përfshihen programe si GNU linker, GNU assembler, nm, objdump, strings, strip.
Në versionin e ri të Binutils:
- NĂ« GNU assembler:
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r zgjerimet e fundit pĂ«r arkitekturat RISC-V, LoongArch dhe AArch64. PĂ«r x86 Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r instruksionet XMODX, tĂ« realizuara nĂ« procesorĂ«t Zhaoxin PadLock. PĂ«r RISC-V Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r instruksionet ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0, supm v1.0, sha v1.0, zce v1.0, smcdeleg v1.0, ssccfg v1.0, svvptc v1.0, zilsd v1.0, zclsd v1.0, smrnmi v1.0, xtheadvdot v1.0, xmipscbop v1.0, xmipscmov v1.0, xmipsexectl v1.0 dhe xmipslsp v1.0.
- ĂshtĂ« siguruar pĂ«rputhshmĂ«ria e gjenerimit tĂ« tĂ« dhĂ«nave nĂ« formatin SFrame me specifikimin SFrame V2. Shtuar mbĂ«shtetje pĂ«r gjenerimin e informacionit mbi gjurmimin e stack-ut (.sframe) nga direktivat CFI nĂ« sistemet 64-bit s390 (s390x).
- Shtuar mbështetje për direktivat .errif dhe .warnif për tregimin e mesazheve diagnostike kur ndodhin kushte të caktuara.
- NĂ« lidhĂ«s, nĂ« opsionin «âstats» Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r argumentin opsional, pĂ«rmes tĂ« cilit mund tĂ« caktohet emri i skedarit pĂ«r ruajtjen e informacionit mbi konsumimin e burimeve nĂ« faza tĂ« ndryshme tĂ« lidhjes. Emri i skedarit gjithashtu mund tĂ« caktohet pĂ«rmes variablit tĂ« mjedisit LD_STATS. PĂ«r sistemet RISC-V, nĂ« lidhĂ«s Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r formate tĂ« reja PLT (Tabela e Lidhjes sĂ« Procedurave).
- Janë bërë përmirësime të ndryshme lidhur me mbështetje për formatin SFrame. Funksionet për punën me SFrame janë transferuar në bibliotekën e versionit libsframe.so.2.
- Në disassembler dhe utilitarin readelf është zgjeruar mbështetje për arkitekturën RISC-V.
Burimi: opennet.ru
